import uasyncio as asyncio
from machine import Pin
# Inisialisasi pin LED dan tombol
green_led, yellow_led, red_led = Pin(17, Pin.OUT), Pin(16, Pin.OUT), Pin(15, Pin.OUT)
button_pin = Pin(27, Pin.IN, Pin.PULL_UP)
# Interval waktu dalam milidetik
green_interval, yellow_interval, red_interval, button_red_interval = 3000, 1000, 3000, 5000
async def traffic_light():
while True:
for led, duration in [(green_led, green_interval), (yellow_led, yellow_interval), (red_led, red_interval)]:
green_led.value(led == green_led)
yellow_led.value(led == yellow_led)
red_led.value(led == red_led)
await asyncio.sleep_ms(duration)
async def button_handler():
while True:
if button_pin.value() == 0:
green_led.value(0); yellow_led.value(0); red_led.value(1)
await asyncio.sleep_ms(button_red_interval)
await asyncio.sleep_ms(100)
async def main():
await asyncio.gather(traffic_light(), button_handler())
asyncio.run(main())