按下按钮时在循环中退出

时间:2018-08-06 21:27:37

标签: python python-3.x raspberry-pi

我目前正在开发带有一些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()

1 个答案:

答案 0 :(得分:0)

您有倒退的逻辑;当您得到按键26时,您想退出。另外,break 必须必须位于循环内 :您的函数处于关闭状态,您可以“破坏”该函数。相反...

def check():
    input_state = GPIO.input(26)
    return input_state

while True:
    GPIO.output(6,GPIO.HIGH)
    if check():
        break
...