电子商务网站的建设,wordpress可视化插件,艺术风格网站,杭州省建设厅网站原理图:接口说明A控制信号输入------PWMA VM ------电机驱动电压输入端(4.5V-15V)A电机输入端2 ------AIN2 VCC ------逻辑电平输入端(2.7V-5.5V)A电机输入端1 ------AIN1 GND ------ 接地正常工作/待机状态控制端------STBY …原理图:接口说明A控制信号输入------PWMA VM ------电机驱动电压输入端(4.5V-15V)A电机输入端2 ------AIN2 VCC ------逻辑电平输入端(2.7V-5.5V)A电机输入端1 ------AIN1 GND ------ 接地正常工作/待机状态控制端------STBY AO1 ------- A电机输出端1B电机输入端1------BIN1 AO2 ------ A电机输出端2B电机输入端2------BIN2 BO2 ------ B电机输出端2B控制信号输入端------PWMB BO1 ------ B电机输出端1接地------GND GND ------- 接地该实验的基础是两块并联在一起的驱动模块,所以和单独一个驱动模块有些许差别。其他关于该驱动模块的介绍详见百度。不多说,上代码。importRPi.GPIO as GPIOimporttimePWMA 18AIN1 22AIN2 27PWMB 23BIN1 25BIN2 24#该驱动模块调速区间为[0-100]#前进deft_up(speed,t_time):L_Motor.ChangeDutyCycle(speed)GPIO.output(AIN2,False)#AIN2GPIO.output(AIN1,True) #AIN1R_Motor.ChangeDutyCycle(speed)GPIO.output(BIN2,False)#BIN2GPIO.output(BIN1,True) #BIN1time.sleep(t_time)#停止deft_stop(t_time):L_Motor.ChangeDutyCycle(0)GPIO.output(AIN2,False)#AIN2GPIO.output(AIN1,False) #AIN1R_Motor.ChangeDutyCycle(0)GPIO.output(BIN2,False)#BIN2GPIO.output(BIN1,False) #BIN1time.sleep(t_time)#后退deft_down(speed,t_time):L_Motor.ChangeDutyCycle(speed)GPIO.output(AIN2,True)#AIN2GPIO.output(AIN1,False) #AIN1R_Motor.ChangeDutyCycle(speed)GPIO.output(BIN2,True)#BIN2GPIO.output(BIN1,False) #BIN1time.sleep(t_time)#左转deft_left(speed,t_time):L_Motor.ChangeDutyCycle(speed)GPIO.output(AIN2,True)#AIN2GPIO.output(AIN1,False) #AIN1R_Motor.ChangeDutyCycle(speed)GPIO.output(BIN2,False)#BIN2GPIO.output(BIN1,True) #BIN1time.sleep(t_time)#右转deft_right(speed,t_time):L_Motor.ChangeDutyCycle(speed)GPIO.output(AIN2,False)#AIN2GPIO.output(AIN1,True) #AIN1R_Motor.ChangeDutyCycle(speed)GPIO.output(BIN2,True)#BIN2GPIO.output(BIN1,False) #BIN1time.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/