Raspberry pi gpio pin卡在" in"和"高"模式

时间:2018-04-23 05:06:24

标签: python raspberry-pi gpio gpiozero

我在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引脚?我在这种情况下做的是正确的吗?

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:0)

您的代码通过

设置电机A.
motora = Motor(27, 22)

但是马达B由

设置
motorb = (5, 6).

不应该由

类似地设置
motorb = Motor(5, 6)?