等待按下按钮的python代码

等待按下按钮的python代码,python,arduino,Python,Arduino,我正在使用python控制arduino。我希望python代码等待按钮按下,然后移到下一行。在我的当前代码中,代码休眠x秒,并检查按钮是否已按下,如果按钮未按下,则跳过它。 这是我当前的代码: if bool(push_button2.read()): print('Please press any button when done') sleep(2) if bool(push_button1.read()) or bool(push_

我正在使用python控制arduino。我希望python代码等待按钮按下,然后移到下一行。在我的当前代码中,代码休眠x秒,并检查按钮是否已按下,如果按钮未按下,则跳过它。 这是我当前的代码:

    if bool(push_button2.read()):
        print('Please press any button when done')
        sleep(2)
        if bool(push_button1.read()) or bool(push_button2.read()):
问题是如果没有按下
push_按钮1或push_按钮2
,它将进入下一个代码。那么有没有办法让python通过按钮等待输入?
谢谢

您可以在的同时使用:

while(!push_button2.read())
    pass
或者您甚至可以在此处添加s small
sleep()

while(!push_button2.read())
    sleep(0.01)
最后,您可以编写自己的函数:

# wait for one button
def wait_for_button(button):
    while(!button.read())
        pass

# wait for any button from a set
# usage: wait_for_any_button(button1, button2)
def wait_for_any_button(*args):
    while !any(map(lambda b: b.read(), args)):
        pass

# if you need a button index
def wait_for_any_button_i(*args):
    while True:
        for i, button in enumerate(args):
            if button.read():
                return i

是否可以这样做:即:
等待按钮(按钮1)打印('1')等待按钮(按钮2)打印('2')
这是这样的,如果按下按钮1,它打印'1'。如果按下按钮2,它打印'2'。这个功能的问题是,参考上面的代码,如果在按钮1之前按下按钮2,则不会打印任何内容。总之,函数是这样的:按钮1必须在按钮2之前按下,这样它才能执行。有没有一种方法没有这种流程?但真的支持你,伙计,很棒的代码!当然,这就是为什么我添加了
wait\u for\u any\u button\u I
函数。它可以告诉你一个被按下按钮的索引。这样您就可以写:
pressed=等待任何按钮(按钮0,按钮1);if pressed==0:print('Button 0 pressed!')else print('Button 1 pressed!')
我还想在if int(round(time.time())-now==5:buzz_pin.write(1)sleep(5)buzz_pin.write(0)break(/code>)中添加这个