日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python控制步进电机驱动器_树莓派操作案例1-使用python GPIO+TB6612驱动步进电机

發布時間:2024/7/5 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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驱动步进电机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。