Вы можете попробовать следующее:
import RPi.GPIO as GPIO
from time import sleep
in1 = 17
in2 = 27
en = 25
temp1 = 1
GPIO.setmode(GPIO.BCM)
GPIO.setup(in1, GPIO.OUT)
GPIO.setup(in2, GPIO.OUT)
GPIO.setup(en, GPIO.OUT)
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
p = GPIO.PWM(en, 1000)
p.start(25)
print("\n")
print("The default speed & direction of motor is LOW & Forward.....")
print("r-run s-stop f-forward b-backward l-low m-medium h-high e-exit")
print("\n")
while True:
x = raw_input()
if x == 'r':
print("run")
if (temp1 == 1):
GPIO.output(in1, GPIO.HIGH)
GPIO.output(in2, GPIO.LOW)
print("forward")
x = 'z'
else:
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.HIGH)
print("backward")
x = 'z'
elif x == 's':
print("stop")
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
x = 'z'
elif x == 'f':
print("forward")
GPIO.output(in1, GPIO.HIGH)
GPIO.output(in2, GPIO.LOW)
temp1 = 1
x = 'z'
elif x == 'b':
print("backward")
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.HIGH)
temp1 = 0
x = 'z'
elif x == 'l':
print("low")
p.ChangeDutyCycle(25)
x = 'z'
elif x == 'm':
print("medium")
p.ChangeDutyCycle(50)
x = 'z'
elif x == 'h':
print("high")
p.ChangeDutyCycle(75)
x = 'z'
elif x == 'e':
GPIO.cleanup()
break
else:
print("<<< wrong data >>>")
print("please enter the defined data to continue.....")
Если вы внимательно посмотрите на код, вы легко поймете, как это работает. Запустите скрипт.
Вы получите сообщение о скорости и направлении двигателя по умолчанию. Далее следует список команд, которые вы должны использовать для управления двигателем. Эти команды приведены ниже.
- r - запустить (запустить или запустить двигатель)
- s - остановить (остановить двигатель)
- f - перейти вперед(для запуска двигателя в прямом направлении) - направление по умолчанию
- b - назад (для изменения направления вращения)
- l - низкий (для снижения скорости до 25%) - скорость по умолчанию
- м - средний (для запуска двигателя на средней скорости 50%)
- ч - высокий (для повышения скорости до уровня 75%)
- е - выход (доостановите двигатель и выйдите из Python)
Источник - Raspberry Pi L298N Интерфейс Учебное пособие