关于stepper类控制步进电机的问题
买了28BYJ-48与ULN2003芯片,然后用stepper类来驱动电机,但电机只能单向旋转,为什么?我去查资料,资料说stepper类可以正反转啊,为什么? 接线问题吧 两两换一下接线顺序看看 ^︵^驱动板⊙﹏⊙http://app.qlogo.cn/mbloghead/2cabb7a4a71b3c0da710 新手买东西还是要到有技术支持的店铺购买。好的店家是手把手教会你。给你的资料肯定可以运行的。不要为了贪便宜。说白了,技术支持才是最重要。不然会绕很多弯路,这样子兴趣的没有了,还能继续玩这个吗? 328522073 发表于 2013-5-25 23:22 static/image/common/back.gif接线问题吧 两两换一下接线顺序看看
可以肯定不是接线问题,因为用自己写的库是可以正反转的,但是自带库不行 遇到同样的问题,肯定不是接线的问题。 买来的电机线序有错误,我的是2、3线接反了。正确的顺序应该是:蓝黄粉橙红 我也有同样问题,同型号,库文件中的控制程序与该电机不符合
库文件是针对4拍的,28BYJ-48为8拍,解决方案:
打开Stepper.cpp
找到void stepMotor(。。。。)
先是上面,stepMotor(this->step_number % 4);改为stepMotor(this->step_number % 8);
将if(this->pin_count==4)代码段内改为
switch (thisStep) {
case 0:
digitalWrite(motor_pin_1,LOW);
digitalWrite(motor_pin_2,LOW);
digitalWrite(motor_pin_3,LOW);
digitalWrite(motor_pin_4,HIGH);
break;
case 1:
digitalWrite(motor_pin_1,LOW);
digitalWrite(motor_pin_2,LOW);
digitalWrite(motor_pin_3,HIGH);
digitalWrite(motor_pin_4,HIGH);
break;
case 2:
digitalWrite(motor_pin_1,LOW);
digitalWrite(motor_pin_2,LOW);
digitalWrite(motor_pin_3,HIGH);
digitalWrite(motor_pin_4,LOW);
break;
case 3:
digitalWrite(motor_pin_1,LOW);
digitalWrite(motor_pin_2,HIGH);
digitalWrite(motor_pin_3,HIGH);
digitalWrite(motor_pin_4,LOW);
break;
case 4:
digitalWrite(motor_pin_1,LOW);
digitalWrite(motor_pin_2,HIGH);
digitalWrite(motor_pin_3,LOW);
digitalWrite(motor_pin_4,LOW);
break;
case 5:
digitalWrite(motor_pin_1,HIGH);
digitalWrite(motor_pin_2,HIGH);
digitalWrite(motor_pin_3,LOW);
digitalWrite(motor_pin_4,LOW);
break;
case 6:
digitalWrite(motor_pin_1,HIGH);
digitalWrite(motor_pin_2,LOW);
digitalWrite(motor_pin_3,LOW);
digitalWrite(motor_pin_4,LOW);
break;
case 7:
digitalWrite(motor_pin_1,HIGH);
digitalWrite(motor_pin_2,LOW);
digitalWrite(motor_pin_3,LOW);
digitalWrite(motor_pin_4,HIGH);
break;
}
28BYJ-48文档 pipihua 发表于 2013-7-19 16:42 static/image/common/back.gif
买来的电机线序有错误,我的是2、3线接反了。正确的顺序应该是:蓝黄粉橙红
果然是接反了,谢谢!
页:
[1]