我在python脚本中有一个函数,它检测两个振动传感器,问题是传感器非常敏感,所以通常当一个传感器被击中时,它们都被检测到,这给了我一个错误的读数。我怎样才能阻止他们同时被发现呢?我想查出哪个是第一个。这就是我试过的-
#!/usr/bin/env python
import RPi.GPIO as GPIO
from time import sleep
def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(KnockPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(ShockPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def shock():
print('shock')
def knock():
print('knock')
def register_callbacks():
if GPIO.add_event_detect(ShockPin, GPIO.FALLING, callback=shock, bouncetime=5000):
sleep(5)
elif GPIO.add_event_detect(KnockPin, GPIO.FALLING, callback=knock, bouncetime=5000):
sleep(5)
if __name__ == '__main__':
try:
setup()
register_callbacks()
只是一个建议,我没有测试它的设置。保存最后一个事件的时间(使用datetime),然后检查最后一个事件是否早于5秒。你知道吗
相关问题 更多 >
编程相关推荐