P0=0X01delay()//0001
P0=0X02delay()//0010
P0=0X04delay()//0100
P0=0X08delay()//1000
那么反转就是:
P0=0X08delay()
P0=0X04delay()
P0=0X02delay()
P0=0X01delay()
如果要增加驱动力矩,可以同时两线供电,正转赋值如下(应该能看懂吧):
0X03//0011
0X06//0110
0XC0//1100
0X09//1001
第二个问题,能,程序可以略作修改,改为4线即可,当然,程序完全不动也可以让他转起来,只是速度不稳定。
控制四个步进电机就要四个ULN2003A,#include <reg52.h>
unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10}//正转表格
unsigned char code B_Rotation[4]={0x10,0x08,0x040,0x02}//反转表格
void Delay(unsigned int i)//延时
{
while(--i)
}
main()
{
unsigned char i
while(1)
{
for(i=0i<4i++) //4相
{
P1=B_Rotation[i] //输出对应的相 可以自行换成反转表格
Delay(500) //改变这个参数可以调整电机转速
}
}
}
这是单个步进电机的程序,控制四个,分别改一下其中的“P1”就可以了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)