from machine import ADC, Pin, PWM
import time
# ---------- Street Light ----------
ldr = ADC(26) # LDR on ADC0 (GP26)
street_led = PWM(Pin(15)) # Streetlight LED
street_led.freq(1000)
THRESHOLD = 30000
brightness = 0
# ---------- Traffic Lights ----------
red = Pin(2, Pin.OUT)
yellow = Pin(3, Pin.OUT)
green = Pin(4, Pin.OUT)
def traffic_cycle():
red.on()
yellow.off()
green.off()
time.sleep(5)
red.off()
yellow.on()
time.sleep(2)
yellow.off()
green.on()
time.sleep(5)
green.off()
# ---------- Main Loop ----------
while True:
# ---- Street Light Control ----
ldr_value = ldr.read_u16()
print("LDR:", ldr_value)
if ldr_value < THRESHOLD:
if brightness < 65535:
brightness += 1200
street_led.duty_u16(brightness)
else:
if brightness > 0:
brightness -= 1200
street_led.duty_u16(brightness)
# ---- Traffic Signal ----
traffic_cycle()