我正在尝试效仿this的例子。使用以下两行代码,一切工作正常
pir.when_motion = led.on
pir.when_no_motion = led.off但是,当我将事件处理程序分配给pir.when_motion时,事情就停止了
我可以看到function、turnOnLed和turnOffLed被调用,但看不到发光二极管的打开和关闭。
下面是我的代码。我错过了什么吗?
from gpiozero import MotionSensor , LED
from signal import pause
import time
pir = MotionSensor(4)
led = LED(16)
def logMessage(msg):
print(msg)
def turnOnLed():
logMessage('About to turn on LED...')
led.on
logMessage('LED turned on...')
def turnOffLed():
logMessage('About to turn off LED...')
led.off
logMessage('LED turned off...')
def myfun():
logMessage('Motion detected...')
pir.when_motion = led.on #If I replace led.on with event handler trunOnLed, I cant see LED switching on.
pir.when_no_motion = led.off
logMessage('Before pause')
pause()此外,我注意到,即使有一个连续的运动,pir.when_no_motion事件也会在pir.when_motion大约4秒后立即触发。有什么不对劲的地方吗?
发布于 2020-08-18 11:40:38
这是一个非常小的错误。
在函数turnOnLed中,我应该已经调用了函数led.on
通过使用led.on()替换led.on修复了问题
https://stackoverflow.com/questions/63460634
复制相似问题