from machine import Pin, PWM
from time import sleep
servo = PWM(Pin(15)) # GPIO15
servo.freq(50) # Standard servo PWM frequency (50 Hz)
def set_angle(angle):
# Map 0–180° to duty cycle range (~0.5ms–2.5ms pulse width)
duty = int((angle / 180) * 6500 + 1500)
servo.duty_u16(duty)
while True:
for angle in range(0, 181, 10):
set_angle(angle)
sleep(0.1)
for angle in range(180, -1, -10):
set_angle(angle)
sleep(0.1)