私は2つの振動センサーを検出するPythonスクリプトでこの機能を持っていますが、問題はセンサーが非常に敏感であるためです。どのように私はそれらの両方が同時に検出されるのを止めるだろうか?私はどちらが最初であったかを検出したい。これは私が試したことです -pythonで2つのセンサーが同時に検出されないようにスクリプトを一時停止するにはどうすればよいですか?
#!/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()
スニペットがうまく見えます。あなたのコードは動作しますか?そうでない場合は、エラーメッセージまたは望ましくない動作は何ですか? –
両方のセンサーが同時に検出することを除いて、Yaコードが機能します。どちらか一方を検出したいだけです。 –
最後のイベントの時間を節約する変数を追加し、最後のイベントが5秒以上前であればノック/ショックをチェックインするのはどうですか? –