关于步进电机时序问题,用的是UDN2916驱动器,四线双极性步进电机

PH1 = 0; //PH1为0 则A线圈为反向电流
I01 = 0;
I11 = 0; //以最大电流输出
PH2 = 0; //PH2为0 则B线圈为反向电流
I02 = 1;
I12 = 1; //输出0
delay(speed);
PH1 = 0; //PH1为0 则A线圈为反向电流
I01 = 1; //输出0
I11 = 1;PH2 = 1;
//PH2为1 则B线圈为正电流
I02 = 0; //以最大电流输出
I12 = 0;
delay(speed);
PH1 = 1; //PH1为1 则A线圈为正向电流
I01 = 0; //以最大电流输出
I11 = 0;
PH2 = 1; //PH2为1 则B线圈为正向电流
I02 = 1; //输出0
I12 = 1;
delay(speed);
PH1 = 1; //PH1为1 则A线圈为正向电流
I01 = 1;
I11 = 1;
PH2 = 0; //PH2为0 则B线圈为反向电流
I02 = 0;
I12 = 0;
delay(speed)
void delay(int time)
{ int i,j;
for(j=0; j <= time; j++)
for(i =0 ; i <= 120; i++);
}void main()
{ while(1)
{ Go(); //步进电机运行
}
}
我想问一下当B输出电流为0,那么它的电流方向重要吗?PH2为0还是1都一样吗
我用的时候发现当PH2为0和为一时效果不一样(电流输出都是设置为0,也就是IO2=1,II2=1)

第1个回答  2014-08-01
应该是跟电流方向没有关系,你说的效果不一样是什么意思?追问

就是劲更大了,好像电流增大了一样

追答

那可能是电流没有降低到0,导致两相同时通电,你这样再验证一下是不是和方向有关

追问

谢谢了,ULN2003为什么不能驱动双极性步进,四个输出端接步进四个输入端,给每两个10和给01不就模拟出正方向电流了吗?

追答

可以驱动,但是它的电流小,输出转矩小,带不了负载,你可以把频率调慢点试试

追问

谢谢了

本回答被提问者采纳

两相四线步进电机接线问题。 我用的是udn2916芯片控制的电机就是不...
先用4个51欧电阻代替电机的4个绕组,连接到电路板。用示波器观测波形有没有及频率、电压幅度等。电压应为5V左右,频率10-几百赫兹;太高了电机转不起来的。如果没波形或频率不正常,检查程序吧!

相似回答