python控制步进电机驱动器_树莓派操作案例1-使用python GPIO+TB6612驱动步进电机
原理圖:
接口說明
A控制信號輸入------PWMA ? ? ? ? ? ? ? VM ------電機驅動電壓輸入端(4.5V-15V)
A電機輸入端2 ------AIN2 ? ? ? ? ? ? ? ?VCC ------邏輯電平輸入端(2.7V-5.5V)
A電機輸入端1 ------AIN1 ? ? ? ? ? ? ? ?GND ------ 接地
正常工作/待機狀態控制端------STBY ? ? ? ? ? ? ? ? AO1 ------- A電機輸出端1
B電機輸入端1------BIN1 ? ? ? ? ? ? ? ?AO2 ------ A電機輸出端2
B電機輸入端2------BIN2 ? ? ? ? ? ? ? ?BO2 ------ B電機輸出端2
B控制信號輸入端------PWMB ? ? ? ? ? ? ? ?BO1 ------ B電機輸出端1
接地------GND ? ? ? ? ? ? ? ?GND ------- 接地
該實驗的基礎是兩塊并聯在一起的驅動模塊,所以和單獨一個驅動模塊有些許差別。
其他關于該驅動模塊的介紹詳見百度。
不多說,上代碼。
importRPi.GPIO as GPIOimporttime
PWMA= 18AIN1= 22AIN2= 27PWMB= 23BIN1= 25BIN2= 24
#該驅動模塊調速區間為[0-100]
#前進
deft_up(speed,t_time):
L_Motor.ChangeDutyCycle(speed)
GPIO.output(AIN2,False)#AIN2
GPIO.output(AIN1,True) #AIN1
R_Motor.ChangeDutyCycle(speed)
GPIO.output(BIN2,False)#BIN2
GPIO.output(BIN1,True) #BIN1
time.sleep(t_time)
#停止deft_stop(t_time):
L_Motor.ChangeDutyCycle(0)
GPIO.output(AIN2,False)#AIN2
GPIO.output(AIN1,False) #AIN1
R_Motor.ChangeDutyCycle(0)
GPIO.output(BIN2,False)#BIN2
GPIO.output(BIN1,False) #BIN1
time.sleep(t_time)
#后退deft_down(speed,t_time):
L_Motor.ChangeDutyCycle(speed)
GPIO.output(AIN2,True)#AIN2
GPIO.output(AIN1,False) #AIN1
R_Motor.ChangeDutyCycle(speed)
GPIO.output(BIN2,True)#BIN2
GPIO.output(BIN1,False) #BIN1
time.sleep(t_time)
#左轉deft_left(speed,t_time):
L_Motor.ChangeDutyCycle(speed)
GPIO.output(AIN2,True)#AIN2
GPIO.output(AIN1,False) #AIN1
R_Motor.ChangeDutyCycle(speed)
GPIO.output(BIN2,False)#BIN2
GPIO.output(BIN1,True) #BIN1
time.sleep(t_time)
#右轉deft_right(speed,t_time):
L_Motor.ChangeDutyCycle(speed)
GPIO.output(AIN2,False)#AIN2
GPIO.output(AIN1,True) #AIN1
R_Motor.ChangeDutyCycle(speed)
GPIO.output(BIN2,True)#BIN2
GPIO.output(BIN1,False) #BIN1
time.sleep(t_time)
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(AIN2,GPIO.OUT)
GPIO.setup(AIN1,GPIO.OUT)
GPIO.setup(PWMA,GPIO.OUT)
GPIO.setup(BIN1,GPIO.OUT)
GPIO.setup(BIN2,GPIO.OUT)
GPIO.setup(PWMB,GPIO.OUT)
L_Motor= GPIO.PWM(PWMA,100)
L_Motor.start(0)
R_Motor= GPIO.PWM(PWMB,100)
R_Motor.start(0)try:whileTrue:
t_up(50,3)
t_down(50,3)
t_left(50,3)
t_right(50,3)
t_stop(3)exceptKeyboardInterrupt:
GPIO.cleanup()
需要注意的是由于該電機模塊的峰值電流能達到2A/3A,如果發現代碼運行一段時間出現了電機停止運行,那么很有可能是電壓不夠導致了PWM復位。
代碼參考:http://bildr.org/2012/04/tb6612fng-arduino/
總結
以上是生活随笔為你收集整理的python控制步进电机驱动器_树莓派操作案例1-使用python GPIO+TB6612驱动步进电机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql数据库用户的创建_mysql创
- 下一篇: python导出项目所依赖的所有的库文件