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)
就是劲更大了,好像电流增大了一样
追答那可能是电流没有降低到0,导致两相同时通电,你这样再验证一下是不是和方向有关
追问谢谢了,ULN2003为什么不能驱动双极性步进,四个输出端接步进四个输入端,给每两个10和给01不就模拟出正方向电流了吗?
追答可以驱动,但是它的电流小,输出转矩小,带不了负载,你可以把频率调慢点试试
追问谢谢了
本回答被提问者采纳两相四线步进电机接线问题。 我用的是udn2916芯片控制的电机就是不...
先用4个51欧电阻代替电机的4个绕组,连接到电路板。用示波器观测波形有没有及频率、电压幅度等。电压应为5V左右,频率10-几百赫兹;太高了电机转不起来的。如果没波形或频率不正常,检查程序吧!