我在Raspberry Pi 2上运行Raspbian Stretch。我正在尝试构建一个基本的避障漫游车并遇到电机问题。 原理图如下:
我没有DC-DC转换器,我有一个LED,其中一个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
我运行了代码,我的LED眨了两下,第一个电机(motora)向前和向后移动,但第二个电机(motorb)根本没有移动。我运行了终端命令" gpio readall"并发现我的第二台电机正在运行的引脚(BCM 5,6)被设置为" IN"两者都设置为" 1"。
gpio readall的终端输出
我尝试使用GPIO.setup命令将引脚5和6更改为输出引脚,但它仍然保持不变。我也尝试使用terminal命令将引脚输出从高电平变为低电平但没有任何反应。 GPIO引脚似乎卡在此模式下。
有没有办法解决这些卡住的GPIO引脚?我在这种情况下做的是正确的吗?
非常感谢任何帮助!!
答案 0 :(得分:0)
您的代码通过
设置电机A.motora = Motor(27, 22)
但是马达B由
设置motorb = (5, 6).
不应该由
类似地设置motorb = Motor(5, 6)?