首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gpiozero -> MotionSensor和发光二极管

gpiozero -> MotionSensor和发光二极管
EN

Stack Overflow用户
提问于 2020-08-18 09:29:42
回答 1查看 141关注 0票数 0

我正在尝试效仿this的例子。使用以下两行代码,一切工作正常

代码语言:javascript
复制
pir.when_motion = led.on
pir.when_no_motion = led.off

但是,当我将事件处理程序分配给pir.when_motion时,事情就停止了

我可以看到function、turnOnLedturnOffLed被调用,但看不到发光二极管的打开和关闭。

下面是我的代码。我错过了什么吗?

代码语言:javascript
复制
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秒后立即触发。有什么不对劲的地方吗?

EN

回答 1

Stack Overflow用户

发布于 2020-08-18 11:40:38

这是一个非常小的错误。

在函数turnOnLed中,我应该已经调用了函数led.on

通过使用led.on()替换led.on修复了问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63460634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档