在等待按钮输入时检查键盘输入

0 投票
1 回答
712 浏览
提问于 2025-04-17 17:19

我在写脚本的时候遇到了一些问题。我想实现一个功能,就是可以用一个字符串来关闭我的脚本。问题是,我不想等着用户输入,而是想在脚本等待按下按钮的时候,检查一下键盘有没有输入。现在我在玩一个树莓派,我把一个LED灯连接到了GPIO上,还连接了一个开关来点亮这个LED。

这是我现在能用的代码:

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(8, GPIO.IN)
GPIO.setup(10, GPIO.OUT)

while Truue:
    value = GPIO.input(8)

    if value == False:
        GPIO.output(10, GPIO.HIGH)
        print("Button pressed")

        while value == False:
            value = GPIO.input(8)
    else:
        GPIO.output(10, GPIO.LOW)

当按钮被按下时,LED灯会亮起;当按钮松开时,灯会熄灭。这个代码在一个无限循环中等待按钮的响应。我想要的功能是,当脚本在等待按钮输入的时候,如果我在键盘上输入“exit”,脚本就能停止运行。

1 个回答

0

看起来你在用Python 3,所以:

exit = False
while not exit:
    value = GPIO.input(8)
    entered = input('type exit to stop: ')
    if not value:
        print("Button Pressed")
        GPIO.output(10, GPIO.HIGH)
    if entered == 'exit':
        break

在写条件判断时,使用 not exitexit == False 更符合Python的习惯。

如果你在用Python 2.x的话,你应该用内置的函数 raw_input,而不是 input

撰写回答