今天要講的是步進(jìn)電機(jī)的驅(qū)動例程,硬件電路中采用的是ULN2003A來進(jìn)行步進(jìn)電機(jī)的驅(qū)動。下面就來看一下今天的例程吧!
一、硬件電路
電路很簡單,最右側(cè)是步進(jìn)電機(jī),使用ULN2003A進(jìn)行驅(qū)動。最左下角的三個(gè)按鍵時(shí)用來控制步進(jìn)電機(jī)正反轉(zhuǎn)及停止的。KEY1控制步進(jìn)電機(jī)順時(shí)針旋轉(zhuǎn);KEY2控制步進(jìn)電機(jī)逆時(shí)針旋轉(zhuǎn);KEY3控制步進(jìn)電機(jī)的停止。
二、軟件程序
C程序:
#include < reg51.h >
#include < absacc.h >
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
#define UP 20
#define DOWN 30
#define STOP 40
void delay()//延時(shí)程序
{
unsigned i,j,k;
for(i=0;i< 0x02;i++)
for(j=0;j< 0x02;j++)
for(k=0;k< 0xff;k++);
}
main()
{
unsigned char temp;
while(1)
{
if(p10==0)
{
temp=UP;//控制正轉(zhuǎn)
P2=0X00;
delay();
}
if(p11==0)
{
temp=DOWN;//控制反轉(zhuǎn)
P2=0X00;
delay();
}
if(p12==0)
{
temp=STOP;//控制停止
}
switch(temp)
{
case DOWN : P2=0X01;//控制反轉(zhuǎn) //0011
delay();
delay();
P2=0X02;//0110
delay();
delay();
P2=0X04;//1100
delay();
delay();
P2=0X08;//1001
delay();
delay();
break;
case UP : P2=0X08;//控制正轉(zhuǎn)
delay();
delay();
P2=0X04;
delay();
delay();
P2=0X02;
delay();
delay();
P2=0X01;
delay();
delay();
break;
case STOP ://控制停止
P2=0X00;
delay();
delay();
break;
}
}
}
三、仿真展示
程序很簡單,小伙伴們可以根據(jù)需要自己修改程序,然后進(jìn)行驗(yàn)證哦!
-
電機(jī)驅(qū)動
+關(guān)注
關(guān)注
60文章
1216瀏覽量
86746 -
步進(jìn)電機(jī)
+關(guān)注
關(guān)注
150文章
3110瀏覽量
147475 -
硬件電路
+關(guān)注
關(guān)注
39文章
243瀏覽量
29228 -
ULN2003A
+關(guān)注
關(guān)注
0文章
7瀏覽量
8038
發(fā)布評論請先 登錄
相關(guān)推薦
評論