等待按下按钮的python代码
我正在使用python控制arduino。我希望python代码等待按钮按下,然后移到下一行。在我的当前代码中,代码休眠x秒,并检查按钮是否已按下,如果按钮未按下,则跳过它。 这是我当前的代码:等待按下按钮的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_
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 smallsleep()
:
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>)中添加这个?