51单片机控制步进电机驱动器:使用8051单片机控制步进电机
51单片机控制步进电机驱动器:使用8051单片机控制步进电机C语言代码:电路原理图半步驱动模式:在这种模式下,两个线圈通电,首先一个线圈通电,然后下一线圈通电,然后再下一个线圈通电,以此类推。8051无法提供足够的电流来驱动线圈,因此需要使用一个电流驱动IC。ULN2003A是NPN达林顿晶体管,也可以用L293D芯片代替ULN2003A作为电流放大芯片。电路原理图:
8051单片机控制步进电机
步进电机是无刷直流电动机,它能以固定的步距角旋转。步进电机一般采用200步完成360度旋转,即每步旋转1.8度。可以通过适当的指令将步进电机旋转到任何特定的角度,因此步进电机可以用于许多需要精确旋转运动的设备,如机器人,自动控制等。
步进电机基本上有两种类型:单极步进电机和双极步进电机。单极步进电机一般有五或六线,其中四根导线是四个定子线圈的一端(A B C D),四个线圈的另一端连接在一起,代表第五根导线,这称为公共端。单极步进电机由于其使用方便而非常普及。
整步驱动模式:在这个模式下,两个线圈同时通电产生高扭矩,功耗较高。
Steps | A | B | C | D |
1 | 1 | 1 | 0 | 0 |
2 | 0 | 1 | 1 | 0 |
3 | 0 | 0 | 1 | 1 |
4 | 1 | 0 | 0 | 1 |
半步驱动模式:在这种模式下,两个线圈通电,首先一个线圈通电,然后下一线圈通电,然后再下一个线圈通电,以此类推。
Steps | A | B | C | D |
1 | 1 | 0 | 0 | 0 |
2 | 1 | 1 | 0 | 0 |
3 | 0 | 1 | 0 | 0 |
4 | 0 | 1 | 1 | 0 |
5 | 0 | 0 | 1 | 0 |
6 | 0 | 0 | 1 | 1 |
7 | 0 | 0 | 0 | 1 |
8 | 1 | 0 | 0 | 1 |
8051无法提供足够的电流来驱动线圈,因此需要使用一个电流驱动IC。ULN2003A是NPN达林顿晶体管,也可以用L293D芯片代替ULN2003A作为电流放大芯片。
电路原理图:
电路原理图
C语言代码:
// drive Mode 1
#include<reg51.h>
void msdelay(unsigned int time)
{
unsigned i j ;
for(i=0;i<time;i )
for(j=0;j<1275;j );
}
void main()
{
while(1)
{
P2=0x01; // 0001 P2_0=1 P2_1=0 P2_2=0 P2_3=0
msdelay(1);
P2=0x02; //0010
msdelay(1);
P2=0x04; //0100
msdelay(1);
P2=0x08; //1000
msdelay(1);
}
}
// drive Mode 2
#include<reg51.h>
void msdelay(unsigned int time)
{
unsigned i j ;
for(i=0;i<time;i )
for(j=0;j<1275;j );
}
void main()
{
while(1)
{
P2 = 0x03; //0011 P2_0=1 P2_1=1 P2_2=0 P2_3=0
msdelay(1);
P2 = 0x06; //0110
msdelay(1);
P2 = 0x0C; //1100
msdelay(1);
P2 = 0x09; //1001
msdelay(1);
}
}