from machine import Pin, PWM
import time
# Set GPIO15 as a PWM pin
servo = PWM(Pin(15))
servo.freq(50) # Standard servo frequency
def set_angle(angle):
# Convert angle (0–180) to duty cycle (1638 to 8192)
min_duty = 1638 # 0.5 ms pulse
max_duty = 8192 # 2.5 ms pulse
duty = int(min_duty + (angle / 180) * (max_duty - min_duty))
servo.duty_u16(duty)
while True:
for angle in range(0, 181, 10):
set_angle(angle)
time.sleep(0.05)
for angle in range(180, -1, -10):
set_angle(angle)
time.sleep(0.05)