Штыри Raspberry pi gpio застряли в режиме "in" и "high"
Я использую 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
Я запустил код, и мой светодиод дважды мигнул, первый мотор (мотор) двигался вперед и назад, но второй мотор (мотор) вообще не двигался. Я выполнил команду терминала "gpio readall" и обнаружил, что контакты, на которых работает мой второй двигатель (BCM 5, 6), были установлены на "IN", и оба были установлены на "1".
терминальный вывод gpio readall
Я попытался с помощью команды GPIO.setup изменить вывод 5 и 6 на выходной, но он остался прежним. Я также попытался использовать команду терминала, чтобы изменить вывод выводов с высокого на низкий, но ничего не произошло. В этом режиме контакты GPIO застряли.
Есть ли способ исправить эти застрявшие контакты GPIO? И правильно ли я поступаю в этом случае?
Любая помощь будет принята с благодарностью!
1 ответ
Ваш код настраивает мотор А
motora = Motor(27, 22)
Но Мотор B настроен
motorb = (5, 6).
Разве это не должно быть аналогичным
motorb = Motor(5, 6)?