from machine import Pin, PWM
import time
# 1. Setup PWM on GPIO 13 with 50Hz frequency (Standard for Servos)
servo = PWM(Pin(13), freq=50)
def set_angle(angle):
# Map 0-180 degrees to 20-120 duty cycle
# Formula: (angle / 180) * (120 - 20) + 20
duty = int((angle / 180) * 100 + 20)
servo.duty(duty)
print("Servo Motor Test: Rotating from 0 to 180 degrees...")
while True:
# Move to 0 degrees
print("Angle: 0")
set_angle(0)
time.sleep(1)
# Move to 90 degrees
print("Angle: 90")
set_angle(90)
time.sleep(1)
# Move to 180 degrees
print("Angle: 180")
set_angle(180)
time.sleep(1)