Rapberry Pi中的GPIO不能关闭

时间:2019-09-07 18:26:54

标签: python raspberry-pi gpio

使用python3编写此代码。但是不行。只有继电器打开,但不能关闭。

我需要打开电源并在3秒钟后关闭电源。

这是我的代码:

import RPi.GPIO as GPIO
import time

channel = 23

# GPIO setup
GPIO.setmode(GPIO.BCM)
GPIO.setup(channel, GPIO.OUT)


def motor_on(pin): 
    GPIO.output(pin, GPIO.HIGH)  # Turn motor on


def motor_off(pin):
    GPIO.output(pin, GPIO.LOW)  # Turn motor off


if __name__ == '__main__':
    try:
        motor_on(channel)
        time.sleep(2)
        motor_off(channel)
        time.sleep(2)

        GPIO.cleanup()

        motor_on(channel)
        time.sleep(2)
        motor_off(channel)
        time.sleep(2)

    GPIO.cleanup()
    except KeyboardInterrupt:
    GPIO.cleanup()

enter image description here

1 个答案:

答案 0 :(得分:0)

一般来说,您的代码有几个问题-最后的缩进应该像这样

    try:
        motor_on(channel)
        time.sleep(2)
        motor_off(channel)
        time.sleep(2)

        GPIO.cleanup()

        motor_on(channel)
        time.sleep(2)
        motor_off(channel)
        time.sleep(2)

        GPIO.cleanup()
    except KeyboardInterrupt:
        GPIO.cleanup()

以及如上所述,如果您不先再次运行motor_on()motor_off(),则在GPIO.cleanup()之后运行GPIO.setmode()GPIO.setup()会给您错误-但是在修复了这些问题之后,您的代码可以很好地工作以打开和关闭LED,因此电路可能存在问题。