使用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()
答案 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,因此电路可能存在问题。