python код для ожидания нажатия кнопки pu sh - PullRequest
1 голос
/ 05 августа 2020

Я использую 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_button1 or push_button2 не нажимается, он перейдет к следующему коду. Так что есть способ заставить python ждать ввода через кнопку пу sh? Спасибо

1 Ответ

2 голосов
/ 05 августа 2020

Вы можете использовать while для этого:

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

https://arduino.stackexchange.com/questions/15844/pause-code-untill-a-button-is-pressed

...