我目前正在开发带有一些LED和一个开关的Python / Raspberry Pi游戏。我试图在按下按钮时退出循环,看看哪个LED保持打开状态,问题是我现在的操作方式不起作用。有按钮输入时如何退出循环的任何想法。
编辑:我希望脚本处于休眠状态时可以退出循环。
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(19,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
GPIO.setup(6,GPIO.OUT)
GPIO.setup(26,GPIO.IN,pull_up_down = GPIO.PUD_UP)
def check():
input_state = GPIO.input(26)
if input_state == False:
break
while True:
GPIO.output(6,GPIO.HIGH)
check()
time.sleep(0.5)
check()
GPIO.output(6,GPIO.LOW)
GPIO.output(19,GPIO.HIGH)
check()
time.sleep(0.5)
check()
GPIO.output(19,GPIO.LOW)
GPIO.output(13,GPIO.HIGH)
check()
time.sleep(0.5)
check()
GPIO.output(13,GPIO.LOW)
GPIO.cleanup()
答案 0 :(得分:0)
您有倒退的逻辑;当您做得到按键26时,您想退出。另外,break
必须必须位于循环内 :您的函数处于关闭状态,您可以“破坏”该函数。相反...
def check():
input_state = GPIO.input(26)
return input_state
while True:
GPIO.output(6,GPIO.HIGH)
if check():
break
...