from machine import Pin, PWM, ADC
from time import sleep
# Servo setup
servo = PWM(Pin(15), freq=50)
# Potentiometer setup
pot = ADC(Pin(34))
pot.atten(ADC.ATTN_11DB) # Full range: 0-3.3V
pot.width(ADC.WIDTH_10BIT) # 10-bit resolution: 0-1023
# Function to set servo angle (0-180)
def set_servo_angle(angle):
min_duty = 1638 # ~0.5 ms
max_duty = 8192 # ~2.5 ms
duty = int(min_duty + (angle / 180) * (max_duty - min_duty))
servo.duty_u16(duty)
while True:
val = pot.read() # Read potentiometer (0-1023)
angle = int((val / 1023) * 180) # Map to 0-180°
set_servo_angle(angle)
print("Pot:", val, "→ Angle:", angle)
sleep(0.1)