# ♡ ∩_∩
# („• ֊ •„)♡
# | ̄U U ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
# | • Lenguajes de Interfaz en TECNM Campus ITT |
# | • Autor: Alejandro Suarez Sandoval |
# | • Fecha: 2025/05/21 |
# | • Descripción: Programa en micropython que mueve un servomotor con una |
# | Raspberry Pi Pico. |
# | • Link simulación en Wokwi: https://wokwi.com/projects/431557003310357505 |
#  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
#
# ⠂⠄⠄⠂⠁⠁⠂⠄⠄⠂⠁⠁⠂⠄⠄⠂ ⠂⠄⠄⠂☆
# ═════════•°• Código en lenguaje MicroPython Raspberry Pi Pico•°•═══════
from machine import Pin, PWM
from time import sleep
# Configura el servomotor en el pin 15
servo = PWM(Pin(15))
servo.freq(50) # Frecuencia típica de servo: 50 Hz
# Mapea un ángulo (0°–180°) al ciclo de trabajo PWM (duty)
def angle_to_duty(angle):
# Conversión a rango de duty (1300-7700 aprox. para servos estándar)
return int((angle / 180) * (7700 - 1300) + 1300)
# Bucle principal que mueve el servo entre ángulos
while True:
for angle in [180, 90]: # Va y viene
duty = angle_to_duty(angle)
servo.duty_u16(duty)
print(f"Moviendo a {angle}°")
sleep(1.5) # Espera 1.5 segundos en cada posición