from machine import Pin, PWM
import time
# Set up servo on GP15
servo = PWM(Pin(15))
servo.freq(50)
# Map angle (0-180) to duty cycle (0.5ms to 2.5ms pulse width)
def set_angle(angle):
duty = int((angle / 180) * 1000 + 500)
servo.duty_u16(int(duty * 65535 / 20000))
# Wait 5 seconds before starting sweep
time.sleep(5)
# Infinite loop to sweep back and forth
while True:
# 0° to 180°
for angle in range(0, 181, 1):
set_angle(angle)
time.sleep(0.01) # Adjust speed (smaller = faster)
# 180° to 0°
for angle in range(180, -1, -1):
set_angle(angle)
time.sleep(0.01)