from machine import Pin, PWM
import time
servo1 = PWM(Pin(21), freq=50)
ANGULO_MAX = 270 # Servo de 270 grados
def mover_servo(servo, grados):
min_us = 500
max_us = 2500
# Protección de límites
if grados < 0:
grados = 0
if grados > ANGULO_MAX:
grados = ANGULO_MAX
pulso = min_us + (grados / ANGULO_MAX) * (max_us - min_us)
duty = int(pulso / 20000 * 65535)
servo.duty_u16(duty)
# Secuencia (grados, pausa en segundos)
secuencia = [
(30, 2),
(45, 4),
(80, 3),
(270, 2),
(0, 2)
]
while True:
for grados, pausa in secuencia:
mover_servo(servo1, grados)
time.sleep(pausa)