from machine import Pin, PWM, ADC
import time
# ----- Setup -----
pot = ADC(Pin(26))
# RGB LED
red = Pin(14, Pin.OUT)
green = Pin(13, Pin.OUT)
blue = Pin(12, Pin.OUT)
# Servo (PWM)
servo = PWM(Pin(15))
servo.freq(50)
# ----- Servo Function -----
def set_angle(angle):
duty = int(1638 + (angle / 180) * (8192 - 1638))
servo.duty_u16(duty)
# ----- Main Loop -----
while True:
potvalue = pot.read_u16()
print(potvalue)
# Convert potentiometer value → angle (0–180)
angle = (potvalue / 65535) * 180
set_angle(angle)
# LED control based on value
if potvalue <= 23000:
red.on()
green.off()
blue.off()
elif potvalue <= 60000:
red.off()
green.on()
blue.off()
else:
red.off()
green.off()
blue.on()
time.sleep(0.1)