我爲我的覆盆子pi做了蜂鳴器程序。我希望程序能夠保證安全:如果我的門打開時間過長(我的門上有一個磁性傳感器),蜂鳴器會發出嗡嗡聲。一旦門關閉,蜂鳴器將停止。然而,我注意到蜂鳴器在蜂鳴器鳴響之前需要一段時間(time.sleep(10))。看起來好像我的代碼在if語句停止之前循環。一旦門關閉,我想讓蜂鳴器停下來。有人可以用我的代碼幫助我嗎?如果其他語句在Pi中的蜂鳴器系統
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