私のラズベリーパイのブザープログラムを作成しました。私はセキュリティのためのプログラムを望んでいる:私のドアが長すぎる(私のドアが磁気センサーを持っている)場合、ブザーが鳴ります。ドアが閉じられるとブザーが止まります。しかし、ブザーが鳴る前に、ブザーに時間がかかる(time.sleep(10))ことがわかった。私のコードが停止する前にifステートメントをループするようです。ドアが閉まるとすぐにブザーを止めて欲しい。誰かが私のコードを教えてくれますか?Piのブザーシステムでelse文を入力した場合
import time
import RPi.GPIO as gpio
buzzer = 11
door = 3
gpio.setmode(gpio.BOARD)
gpio.setwarnings(False)
gpio.setup(buzzer, gpio.OUT)
gpio.setup(door, gpio.IN, pull_up_down=gpio.PUD_UP)
while True:
if gpio.output(door):
time.sleep(10)
gpio.output(buzzer, True)
else:
gpio.output(buzzer, False)
gpio.cleanup()
10秒の遅延の目的は何ですか? – jacoblaw
@jacoblawアラームが消える10秒前。それはセキュリティシステムであるはずです。 – Draenokh
これがあなたが望むものであることを確認できますか?ドアが開いている場合は、10秒間タイマーを開始します。その後、10秒後にアラーム音が鳴ります。ドアが閉じている場合は、アラームをオフにします。永遠に繰り返す。 – jacoblaw