Python 在另一个按钮调用的函数中,如何检测gpiozero按钮按下?
我需要从按下按钮触发继电器,等待信号,然后释放继电器。在下面的示例代码中,该信号为b2。我对Python和Pi还不熟悉,但玩得很开心!:)Python 在另一个按钮调用的函数中,如何检测gpiozero按钮按下?,python,raspberry-pi3,gpiozero,Python,Raspberry Pi3,Gpiozero,我需要从按下按钮触发继电器,等待信号,然后释放继电器。在下面的示例代码中,该信号为b2。我对Python和Pi还不熟悉,但玩得很开心!:) 当按钮调用的现有功能仍在运行时,如何检测按钮按下?在此解决方案中,您只需打开和关闭输出 from gpiozero import Button from signal import pause import time pin = #Set a pin r = LED(pin) b1 = Button(23) b1.when_pressed = r.on b
当按钮调用的现有功能仍在运行时,如何检测按钮按下?在此解决方案中,您只需打开和关闭输出
from gpiozero import Button
from signal import pause
import time
pin = #Set a pin
r = LED(pin)
b1 = Button(23)
b1.when_pressed = r.on
b2 = Button(24)
b2.when_pressed = r.off
pause()
这里有一个线程开始执行以下操作:
from gpiozero import Button
from signal import pause
import time
import _thread
run = False
def do_stuff():
while run: #do stuff...
time.sleep(1)
print("waiting...")
def first_button():
global run
print("First Pressed")
run = True
_thread.start_new_thread(do_stuff)
def second_button():
global run
print("Second Pressed")
run = False
b1 = Button(23)
b1.when_pressed = first_button
b2 = Button(24)
b2.when_pressed = second_button
pause()
这是有意义的,尽管看起来_thread已经被threading模块替换了,所以我需要更改代码来运行它。“ImportError:没有名为_thread的模块”您正在运行哪个版本?在3.7之前,它是一个可选模块
from gpiozero import Button
from signal import pause
import time
import _thread
run = False
def do_stuff():
while run: #do stuff...
time.sleep(1)
print("waiting...")
def first_button():
global run
print("First Pressed")
run = True
_thread.start_new_thread(do_stuff)
def second_button():
global run
print("Second Pressed")
run = False
b1 = Button(23)
b1.when_pressed = first_button
b2 = Button(24)
b2.when_pressed = second_button
pause()