Возможно ли, чтобы сценарий python приостановился, когда вы удерживаете кнопку нажатой, а затем запускаете, когда вы отпустите эту кнопку? (У меня есть кнопка, подключенная к контактам GPIO на моей малине Pi)Как подождать, пока вы отпустите кнопку в python
1
A
ответ
1
Я предполагаю, что кнопка, которую вы используете, находится в GPIO18, поэтому вы можете использовать этот код.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
input_state = GPIO.input(18)
while not input_state:
# as soon as your button is pressed you
# will be inside this loop
print('Button is being pressed')
В качестве альтернативы вы можете также попробовать:
import time
import RPi.GPIO as GPIO
PIN = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
GPIO.wait_for_edge(PIN, GPIO.FALLING)
print "Pressed"
# your code
Я думаю, что второй цели более точно ваш запрос.
0
Вы посмотрели gpiozero? Он значительно упрощает взаимодействие с GPIO.
from gpiozero import Button
button = Button(2)
button.wait_for_press()
button.wait_for_release()
print("Button was pressed and released")
Вот ссылка на класс Button: https://gpiozero.readthedocs.io/en/v1.3.1/api_input.html#gpiozero.Button.wait_for_release
И примеры того, как использовать его: https://gpiozero.readthedocs.io/en/v1.3.1/recipes.html#button
у вас есть какой-либо код до сих пор? – lmiguelvargasf
Да, это возможно. – kalenpw