gpt4 book ai didi

python - GPIO 设置错误和键盘中断 - Python

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:43 25 4
gpt4 key购买 nike

我编写了一段代码来打开继电器 2 秒,然后关闭,但我遇到了问题。

第一个程序运行时出现以下错误,但 GPIO 已设置:

`Traceback (most recent call last):
File "relay_control.py", line 16, in <module>
GPIO.output(2, GPIO.HIGH)
RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)`

我的第二个问题是我想设置KeyboardInterrupt,但是当我使用 except KeyboardInterrupt:时,我收到错误并且没有任何运行,如果我忽略它,它就会通过一个循环并退出(如预期):

    File "relay_control.py", line 30
except KeyboardInterrupt:
^
SyntaxError: invalid syntax

我不确定哪里出了问题,完整代码如下:

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BCM)

# Set relay pins as output
GPIO.setup(2, GPIO.OUT)
GPIO.setup(3, GPIO.OUT)
GPIO.setup(4, GPIO.OUT)
GPIO.setup(17, GPIO.OUT)

while (True):

# Turn all relays ON
GPIO.output(2, GPIO.HIGH)
GPIO.output(3, GPIO.HIGH)
GPIO.output(4, GPIO.HIGH)
GPIO.output(17, GPIO.HIGH)
# Sleep for 5 seconds
sleep(2)
# Turn all relays OFF
GPIO.output(2, GPIO.LOW)
GPIO.output(3, GPIO.LOW)
GPIO.output(4, GPIO.LOW)
GPIO.output(17, GPIO.LOW)
# Sleep for 5 seconds
sleep(2)

except KeyboardInterrupt:
print "Quit"
GPIO.cleanup()

最佳答案

以某种方式修复键盘中断不会给出任何错误:

import RPi.GPIO as GPIO
from time import sleep

# The script as below using BCM GPIO 00..nn numbers
GPIO.setmode(GPIO.BCM)

# Set relay pins as output
GPIO.setup(2, GPIO.OUT)
GPIO.setup(3, GPIO.OUT)
GPIO.setup(4, GPIO.OUT)
GPIO.setup(17, GPIO.OUT)

try:
while (True):

# Turn all relays ON
GPIO.output(2, GPIO.HIGH)
GPIO.output(3, GPIO.HIGH)
GPIO.output(4, GPIO.HIGH)
GPIO.output(17, GPIO.HIGH)
# Sleep for 5 seconds
sleep(2)
# Turn all relays OFF
GPIO.output(2, GPIO.LOW)
GPIO.output(3, GPIO.LOW)
GPIO.output(4, GPIO.LOW)
GPIO.output(17, GPIO.LOW)
# Sleep for 5 seconds
sleep(2)

except KeyboardInterrupt:
print "Quit"
GPIO.cleanup()

关于python - GPIO 设置错误和键盘中断 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43679399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com