gpt4 book ai didi

python - TraceBack(最后一次调用)和 GPIO.setmode(GPIO.BOARD) 或 GPIO.setmode(GPIO.BCM) 错误

转载 作者:太空狗 更新时间:2023-10-30 02:19:30 29 4
gpt4 key购买 nike

我一直在努力编写一个脚本,该脚本将 Pi 的 BCM 引脚 17、27 和 10 打开 1 秒,然后关闭 1 秒,连续 100 次。当我运行脚本时,LED1 会亮起然后熄灭,程序因以下错误而关闭:

Traceback (most recent call last):
File "LedBlink.py", line 47, in <module>
LED2Blink()
File "LedBlink.py", line 27, in LED2Blink
GPIO.setup(LED2, GPIO.OUT)
RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)

import RPi.GPIO as GPIO
import time

LED1 = 17
LED2 = 27
LED3 = 10

GPIO.setmode(GPIO.BCM)

def LED1Blink():
GPIO.setup(LED1, GPIO.OUT)
GPIO.output(LED1,True)
time.sleep(1)
GPIO.output(LED1,False)
time.sleep(1)
GPIO.cleanup()

def LED2Blink():
GPIO.setup(LED2, GPIO.OUT)
GPIO.output(LED2,True)
time.sleep(1)
GPIO.output(LED2,False)
time.sleep(1)
GPIO.cleanup()

def LED3Blink():
GPIO.setup(LED3, GPIO.OUT)
GPIO.output(LED3,True)
time.sleep(1)
GPIO.output(LED3,False)
time.sleep(1)
GPIO.cleanup()

i = 0
while i < 100:
LED1Blink()
LED2Blink()
LED3Blink()
i + 1
else:
print "finished loop"

最佳答案

问题是您在每个方法的末尾调用 GPIO.cleanup()。如 documentation 中所述, 注意 GPIO.cleanup() 也会清除正在使用的管脚编号系统。 你想要的是 GPIO.cleanup(channel) 而不是,其中 channel 对应于 脚本中的 LED1、LED2、LED3

最佳做法是设置清理 channel ONLY ONCE,例如

import RPi.GPIO as GPIO
import time

LED1 = 17
LED2 = 27
LED3 = 10

GPIO.setmode(GPIO.BCM)
GPIO.setup(LED1, GPIO.OUT)
GPIO.setup(LED2, GPIO.OUT)
GPIO.setup(LED3, GPIO.OUT)

def LED1Blink():
GPIO.output(LED1,True)
time.sleep(1)
GPIO.output(LED1,False)
time.sleep(1)

def LED2Blink():
GPIO.output(LED2,True)
time.sleep(1)
GPIO.output(LED2,False)
time.sleep(1)

def LED3Blink():
GPIO.output(LED3,True)
time.sleep(1)
GPIO.output(LED3,False)
time.sleep(1)

i = 0
if i < 100:
LED1Blink()
LED2Blink()
LED3Blink()
i + 1
else:
GPIO.cleanup()
print "finished loop"

关于python - TraceBack(最后一次调用)和 GPIO.setmode(GPIO.BOARD) 或 GPIO.setmode(GPIO.BCM) 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29478216/

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