今天要講的是步進(jìn)電機的驅(qū)動例程,硬件電路中采用的是ULN2003A來進(jìn)行步進(jìn)電機的驅(qū)動。下面就來看一下今天的例程吧!
一、硬件電路
電路很簡單,最右側(cè)是步進(jìn)電機,使用ULN2003A進(jìn)行驅(qū)動。最左下角的三個按鍵時用來控制步進(jìn)電機正反轉(zhuǎn)及停止的。KEY1控制步進(jìn)電機順時針旋轉(zhuǎn);KEY2控制步進(jìn)電機逆時針旋轉(zhuǎn);KEY3控制步進(jìn)電機的停止。
二、軟件程序
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()//延時程序
{
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)行驗證哦!
-
電機驅(qū)動
+關(guān)注
關(guān)注
60文章
1308瀏覽量
87809 -
步進(jìn)電機
+關(guān)注
關(guān)注
152文章
3165瀏覽量
149690 -
硬件電路
+關(guān)注
關(guān)注
39文章
254瀏覽量
29782 -
ULN2003A
+關(guān)注
關(guān)注
0文章
7瀏覽量
8123
發(fā)布評論請先 登錄
ULN2003A的使用問題
ULN2003A驅(qū)動步進(jìn)電機
ULN2003A驅(qū)動步進(jìn)電機的原理圖
ULN2003A達(dá)林頓管有哪些基本功能?
使用uln2003模塊驅(qū)動步進(jìn)電機
用AT89C51的中斷和ULN2003A來分別控制跑馬燈和步進(jìn)電機
ULN2002A,ULN2003A,ULN2003AI,UL
基于ULN2003及單片機驅(qū)動步進(jìn)電機的應(yīng)用案例

基于ULN2003A達(dá)林頓管的步進(jìn)電機驅(qū)動設(shè)計

基于ULN2003的步進(jìn)電機驅(qū)動

基于定時器中斷的ULN2003驅(qū)動器/步進(jìn)電機驅(qū)動程序

ESP32設(shè)備驅(qū)動-ULN2003步進(jìn)電機驅(qū)動

評論