from machine import ADC, Pin, PWM
from time import sleep
# Potentiometer on ADC0 (GP26)
pot = ADC(28)
# Servo on GP15
servo = PWM(Pin(27))
servo.freq(50)
# Function to set servo angle
def set_angle(angle):
# Convert angle to duty cycle for 0.5ms to 2.5ms pulse width
duty = int(((angle / 180) * 2 + 0.5) / 20 * 65535)
servo.duty_u16(duty)
# Main loop
while True:
pot_val = pot.read_u16() # Read potentiometer (0-65535)
angle = int(pot_val * 180 / 65535) # Convert to angle (0-180)
print("Pot Value:", pot_val, "| Angle:", angle) # Display values
set_angle(angle) # Move servo
sleep(0.05)