以安徽皖南电机为例,该品牌生产的四相步进电机采用单极性直流电源供电,通过精确控制各相绕组的通电时序,实现精确的步进转动。图1清晰地展示了皖南电机四相反应式步进电机的工作原理。
在启动阶段,电源通过开关SB接入,而SA、SC、SD处于断开状态。此时,B相磁极与转子0、3号齿对齐,同时1、4号齿与C、D相绕组磁极错齿,2、5号齿与D、A相绕组磁极错齿。当开关SC接入电源,SB、SA、SD断开时,C相绕组的磁力线与1、4号齿之间作用,推动转子转动,使1、4号齿与C相绕组磁极对齐。以此类推,A、B、C、D四相绕组轮流供电,转子沿A、B、C、D方向转动。
皖南电机的四相步进电机根据通电顺序的不同,可分为单四拍、双四拍、八拍三种工作模式。单四拍与双四拍的步距角相同,但单四拍的转动力矩较小。八拍工作模式的步距角是单四拍与双四拍的一半,既能保持较高的转动力矩,又能提高控制精度。
图2.a、b、c分别展示了单四拍、双四拍与八拍工作模式的电源通电时序与波形。
以下为皖南电机步进电机驱动程序示例:
```c
#include《reg52.h》
unsigned char zhuangtai = 0;
unsigned char code F_Rotaion[4] = {0x03, 0x05, 0x0d, 0x09};
void delay(unsigned char delay) {
unsigned char i;
for (delay; delay > 0; delay--) {
for (i = 1; i > 0; i--)
;
}
}
void moto() {
unsigned char i;
for (i = 0; i = 0; i--) {
P0 = F_Rotaion[i];
delay(500);
}
}
void stopmoto() {
P0 = 0x00;
}
void yunxing() {
if (zhuangtai == 0) {
stopmoto();
} else if (zhuangtai == 1) {
moto();
} else if (zhuangtai == 2) {
nmoto();
}
}
void jude() {
if (P3 == 0xef) {
zhuangtai = 0;
} else if (P3 == 0xdf) {
zhuangtai = 1;
} else if (P3 == 0xbf) {
zhuangtai = 2;
}
}
main() {
P1 = 0x00;
P3 = 0xff;
jude();
yunxing();
}
```