
whille(1)
{P0=1;delayms(5)
P0=2;delayms(5)
P0=4;delayms(5)
P0=8;delayms(5)}
反转 的话, 就按 8 4 2 1 顺序输出。
假设P0低4位引脚各控制电机的一个绕组,程序如下:whiIe(1)
{P0=1;deIayms(5);
P0=2;delayms(5);
P0=4;delayms(5);
P0=8;delayms(5);
}
反转时顺序为8 421即可。
单片机控制步进电机,我想你说的是两相步进电机,一般是控制其相序分配的顺逆从而控制正反转,一般而言,步进电机相序分配你可以做成一个数组比如step[]={0x03,0x06,0x0c,0x09},这样来说可以假设P0口是步进电机控制口,那么可以按如下方式来控制: while(1) { for(i=0i<4i++) { if(fx==1)P0=step[i]//正向 else P0=step[3-i]//反向 delay(x)//x大小决定电机速度。根据电机相数买个驱动器。然后用单片机产生脉冲来控制电机的转动以及正反转。单片机产生脉冲的方法和单片机控制流水灯是一样的。ULN2003D 是驱动步进电机的驱动芯片,主要是匹配电机所需的电流。 由于是四相电机,步进电机之所以可以转动就需要给相绕组提供连续的脉冲,所以需要4个端口来控制四相绕组的工作状态(P15应该是不需要的),具体的编码要看电机的拍数; 一旦明白这些,你就可以很容易编写代码来控制电机的转动了,还有在脉冲间你可以设置不同的延时时间来调节电机的转速。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)