from machine import Pin, PWM
from utime import sleep
# Define LEDs
red = Pin(5, Pin.OUT)
yellow = Pin(4, Pin.OUT)
green = Pin(3, Pin.OUT)
# Define Servo Motor on GPIO 2
servo = PWM(Pin(2))
servo.freq(50) # Set PWM frequency to 50Hz
def set_servo_angle(angle):
min_duty = 1638 # ~5% of 65535
max_duty = 8192 # ~12.5% of 65535
duty = int(min_duty + (angle / 180) * (max_duty - min_duty))
servo.duty_u16(duty)
while True:
# Green Light ON (Servo open)
red.value(0)
yellow.value(0)
green.value(1)
set_servo_angle(0) # Close the servo
print("RED Light ON - Servo Closed")
sleep(1)
# Yellow Light ON
red.value(0)
yellow.value(1)
green.value(0)
print("YELLOW Light ON")
sleep(1)
# Red Light ON (Servo off)
red.value(1)
yellow.value(0)
green.value(0)
set_servo_angle(90) # Open the servo
print("GREEN Light ON - Servo Open")
sleep(3)