Я использую Raspbian Stretch на Raspberry Pi 2. Я пытался построить базовый марсоход для предотвращения препятствий и столкнулся с проблемой с двигателями. Схема находится здесь:
У меня нет преобразователя постоянного тока в постоянный, и у меня есть светодиод с резистором 330 Ом, подключенным к выводу 17.
Я использовал этот код для его запуска:
from gpiozero import LED
from gpiozero import Motor
import RPi.GPIO as GPIO
from time import sleep
# prereqs
GPIO.setmode(GPIO.BCM)
Motorbin = 5
Motorbout = 6
GPIO.setup(Motor2in,GPIO.OUT)
GPIO.setup(Motor2out,GPIO.OUT)
led = LED(17)
for i in range(2):
led.on()
sleep(0.5)
led.off()
sleep(0.5)
# motors are going to start running now
motora = Motor(27, 22)
motora.forward()
sleep(5)
motora.backward()
sleep(5)
motora.stop()
for i in range(2):
led.on()
sleep(0.5)
led.off()
sleep(0.5)
motorb = (5, 6)
motorb.forward()
sleep(5)
motorb.backward()
sleep(5)
motorb.stop()
GPIO.cleanup
Я запустил код, и мой светодиод дважды мигнул, первый двигатель (motora) двигался вперед и назад, а второй двигатель (motorb) вообще не двигался. Я выполнил команду терминала «gpio readall» и обнаружил, что контакты, на которых работает мой второй двигатель (BCM 5, 6), были установлены на «IN», а оба были установлены на «1».
конечный вывод gpio readall
Я попытался использовать команду GPIO.setup, чтобы изменить контакты 5 и 6 на выходные контакты, но они все равно остались прежними. Я также попытался использовать команду терминала, чтобы изменить вывод контактов с высокого на низкий, но ничего не произошло. Контакты GPIO, кажется, застряли в этом режиме.
Есть ли способ исправить эти застрявшие контакты GPIO? И правильно ли я поступаю в этом случае?
Любая помощь будет принята с благодарностью!