0125_12
收到东芝现在,把驱动板用到了我的项目智能小车的步进电机的驱动上。使用arduino的引脚5,6给TB67H451驱动开发板的in1 和in2进行信号传送,试用代码用之前驱动风扇的先进行测试,小车电机驱动履带正转,停,然后反转。 TB67H451驱动板的OUT1,OUT2分别接电机的两极。然后,12V电源给TB67H451驱动板正负极供电。 代码如下: 2. 4. 6. 8. 10. 12. 14. 16. 18. 20. 22. 24. 26. 28. 30. 32. 34. 36. 38. 40. 42. 44. 46. 48. 50. 52. 54. 56. 验证烧录后,小车电机和履带运行正常,前传,停然后反转。 但是,实际在小车的运行过程中,为了控制小车,需要使得东芝TB67H451驱动板和12v电机构成一个步进电机,就要精确的控制电机的运行时间和运行步数,来达到步进精确的目的。由于东芝TB67H451开发板并不是步进驱动板,所以需要结合开发的通讯接口进行运行和停止的反馈信息,达到步进效果。 一般情况下单极电机驱动板是控制两个电机,并且电机是有运行步数和时间的步进电机。 以下代码是对输出和传感器回馈的基本设置,该代码试用于单极四相电机,所以需要做一些修改: 接下来使用arduino的tone()函数产生脉冲信号,引脚引用要避开arduino的pwm引脚3,11 找到了一个简单代码用#define vcc 2 #define dir 4 void setup() { pinMode(vcc,OUTPUT); pinMode(dir,OUTPUT); } digitalWrite(vcc,HIGH); digitalWrite(dir,HIGH); tone(pls,200); 用于东芝驱动板上有PWM引脚,可以通过这个引脚接收arduino 传出的pwm脉冲信号从而达到对双向电机进行步进控制。以下代码是pwm对直流电机的整体控制,包括前进后退,转向和调速控制,这个框架下根据需求进行进一步调整。 int]voidForward(); voidBack(); voidTurn_left(); voidTurn_right(); voidSpeed_up(); voidSlow_down(); voidsetup() { ]pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); } voidloop()] //put your main code here, to run repeatedly: ] Back(); ] Turn_right(); ] Slow_down(); } voidForward(){ //youguys]digitalWrite(9,HIGH); digitalWrite(10,LOW); digitalWrite(5,HIGH); digitalWrite(6,LOW); delay(4000); } voidBack(){ digitalWrite(9,LOW); digitalWrite(10,HIGH); digitalWrite(5,LOW); digitalWrite(6,HIGH); delay(4000); } voidTurn_left(){ digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(5,HIGH); digitalWrite(6,LOW); delay(4000); } voidTurn_right(){ digitalWrite(9,HIGH); digitalWrite(10,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); delay(4000); } voidSpeed_up(){ for(i=0;i<=255;i+=5){ ] analogWrite(10,0); ] analogWrite(6,0); ] }//speed up ]} voidSlow_down(){ for(i=255;i>=0;i-=5){ ] analogWrite(10,0); ] analogWrite(6,0); ] } } 项目下车的最基本的控制代码需要不断的调整和测试,但是要达到精确的步进电机实际效果还是需要进一步的开发,以借助arduino和东芝电机驱动对直流电机进行步进控制。 至此,附件为单边电机的驱动效果和测试效果视频,无须必要下载。
0125_11
|