from machine import Pin, ADC, PWM
from time import sleep
# setup
pot = ADC(Pin(35)) # potentiometer on GPIO 35
pot.atten(ADC.ATTN_11DB) # full range: 0-3.3V
servo = PWM(Pin(26), freq=50) # servo on GPIO 26, 50Hz
def set_servo_angle(angle):
# Map angle (0-180) to duty for 0.5ms-2.5ms pulse
duty = int((angle / 180) * 102 + 26) # range ~26-128
servo.duty(duty)
while True:
val = pot.read() # 0 to 4095
angle = int(val * 180 / 4095) # scale to 0-180
set_servo_angle(angle)
print("Analog:", val, "=> Angle:", angle)
sleep(0.1)