from machine import Pin, PWM
import utime
led_red = Pin(0, Pin.OUT)
led_yellow = Pin(5, Pin.OUT)
led_green = Pin(9, Pin.OUT)
buzzer = PWM(Pin(28))
button = Pin(16, Pin.IN, Pin.PULL_UP)
def all_off():
led_red.off(); led_yellow.off(); led_green.off()
def beep_fast(times=10):
buzzer.freq(1000)
for _ in range(times):
buzzer.duty_u16(30000)
utime.sleep(0.1)
buzzer.duty_u16(0)
utime.sleep(0.1)
while True:
all_off()
led_green.on()
# Chờ nút nhấn
while button.value() == 1:
utime.sleep(0.05)
# Xanh → Vàng (không tắt ngay)
led_green.off()
led_yellow.on()
utime.sleep(3)
# Vàng → Đỏ
led_yellow.off()
led_red.on()
utime.sleep(1)
# b) Beep nhanh: báo an toàn qua đường
beep_fast(10)
# Thời gian người đi bộ qua
utime.sleep(5)
led_red.off()
led_green.on()
utime.sleep(2)