import RPi.GPIO as GPIO import time # 绑定对应的引脚,来自于图纸 PWMA = 18 AIN1 = 22 AIN2 = 27 PWMB = 23 BIN1 = 25 BIN2 = 24 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) # 设置引脚为输出 GPIO.setup(PWMA, GPIO.OUT) GPIO.setup(AIN1, GPIO.OUT) GPIO.setup(AIN2, GPIO.OUT) GPIO.setup(PWMB, GPIO.OUT) GPIO.setup(BIN1, GPIO.OUT) GPIO.setup(BIN2, GPIO.OUT) # 电机PWM初始化 leftMotor = GPIO.PWM(PWMA, 100) rightMotor = GPIO.PWM(PWMB, 100) leftMotor.start(0) rightMotor.start(0) def forward(speed, runtime): leftMotor.ChangeDutyCycle(speed) GPIO.output(AIN1, True) # AIN1高电平则正转 GPIO.output(AIN2, False) # 如果为True则翻转 rightMotor.ChangeDutyCycle(speed) GPIO.output(BIN1, True) GPIO.output(BIN2, False) time.sleep(runtime) # 维持状态的时间 def backward(speed, backtime): leftMotor.ChangeDutyCycle(speed) GPIO.output(AIN2, True) # AIN2高电平反转 GPIO.output(AIN1, False) # AIN1低电平 rightMotor.ChangeDutyCycle(speed) GPIO.output(BIN2, True) # BIN2高电平反转 GPIO.output(BIN1, False) # BIN1低电平 time.sleep(backtime) if __name__ == '__main__': # 这里去掉了转义字符 try: while True: forward(50, 3) except KeyboardInterrupt: GPIO.cleanup()