运行以下简单代码时,我希望 [while True] 返回与 pir 运动传感器状态相关的 1 和 0 的无穷无尽的流。但是,一旦触发,即使动作结束,我也只能得到 1 秒。如果我做相反的事情(即,将循环放入 when_no_motion),我会得到一串 0... pir.value 似乎没有更新。
有什么线索吗?
提前致谢!
from signal import pause
from gpiozero import MotionSensor
pir = MotionSensor(4, queue_len=1)
def do_motion_detected():
while True:
print(pir.value)
pir.when_motion = do_motion_detected
pause()
还可能值得注意的是,当我尝试使用 GPIOZero Button 而不是 MotionSensor 时,它工作正常,给了我一个 1 和 0 的流,与 Button 值相关......
from signal import pause
from gpiozero import Button
clicker = Button(4)
def do_press_detected():
while True:
print(clicker.value)
clicker.when_pressed = do_press_detected
pause()