import machine
import time
# Configura el pin GPIO al que está conectado el servo
servo_pin = machine.Pin(4, machine.Pin.OUT) # Cambia el número de pin según tu conexión
# Crea un objeto PWM para controlar el servo
servo = machine.PWM(servo_pin, freq=50)
# Establece el rango de pulsos del servo (ajústalo según tus necesidades)
min_duty = 40 # Pulsos mínimos para posición 0°
max_duty = 115 # Pulsos máximos para posición 180°
# Función para girar el servo a una posición específica en grados
def set_servo_position(degrees):
if degrees < 0:
degrees = 0
elif degrees > 360:
degrees = 360
# Calcula el valor de duty cycle para la posición deseada
duty = min_duty + (max_duty - min_duty) * degrees / 360
servo.duty(int(duty))
# Define la cantidad de pasos para alcanzar 360 grados
num_steps = 360
delay_between_steps = 0.01 # Puedes ajustar la velocidad cambiando este valor
try:
for i in range(num_steps + 1):
# Calcula la posición en grados para el paso actual
degrees = (i / num_steps) * 360
set_servo_position(degrees)
time.sleep(delay_between_steps)
finally:
# Detén el servo y libera el pin cuando hayas terminado
servo.deinit()