步进电机将电脉冲信号转化为精确的角位移或线位移,是一种典型的机电转换器。皖南电机价格表 它以脉冲序列为输入,输出则是精确的位移增量或步进动作。皖南电机 在常规运动中,每转一圈固定步数,且连续步进运动时,转速与脉冲频率严格匹配,不受电压波动和负载变化的影响。由于其能够直接接受数字控制,特别适合于微机控制。安徽皖南电机
这款步进电机是一款四相型,使用单极性直流电源供电。通过合理控制各相绕组的通电时序,即可实现步进转动。图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相绕组磁极对齐。此时,0、3号齿与A、B相绕组磁极错齿,2、5号齿与A、D相绕组磁极错齿。皖南电机价格表 依次类推,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 < 4; i++) {
P0 = F_Rotaion[i];
delay(500);
}
}
void nmoto() {
unsigned char i;
for (i = 3; 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();
}
/*void IR_IN() interrupt 0
{
unsigned char j, k, N = 0;
EX0 = 0;
delay(15);
if (IRIN == 1) {
EX0 = 1;
return;
}
while (!IRIN)
delay(1);
for (j = 0; j < 4; j++) {
for (k = 0; k < 8; k++) {
while (IRIN)
delay(1);
while (!IRIN)
delay(1);
while (IRIN) {
delay(1);
N++;
if (N >= 30) {
EX0 = 1;
return;
}
}
IRCOM[j] = IRCOM[j] >> 1;
if (N >= 8)
IRCOM[j] = IRCOM[j] | 0x80;
N = 0;
}
}
if (IRCOM[2] != ~IRCOM[3]) {
EX0 = 1;
return;
}
if (IRCOM[0] != 0x00) {
EX0 = 1;
return;
}
IRCOM[4] = IRCOM[2] & 0x0F;
IRCOM[5] = IRCOM[2] >> 4;
play();
beep();
EX0 = 1;
}
*/