import machine, time
pir = machine.Pin(28, machine.Pin.IN, machine.Pin.PULL_DOWN)
led = machine.Pin(22, machine.Pin.OUT)
# PWM 부저
buzzer = machine.PWM(machine.Pin(21))
buzzer.duty_u16(0)
def alarm_1sec(freq=2000):
# LED + 부저 동시에 켜기
led.value(1)
buzzer.freq(freq)
buzzer.duty_u16(30000)
time.sleep(1)
# LED + 부저 끄기
led.value(0)
buzzer.duty_u16(0)
while True:
# PIR이 감지되는 동안 계속 1초 알람 반복
if pir.value() == 1:
print("Motion detected!")
alarm_1sec() # 1초 켜기
time.sleep(0.05) # 너무 빽빽하지 않게 딜레이
else:
# PIR이 꺼지면 LED/부저 완전히 OFF
led.value(0)
buzzer.duty_u16(0)
time.sleep(0.05)