#Neftali Tello
import machine
import time
# Configuración de pines
ENA = machine.PWM(machine.Pin(18)) # Habilitación del motor (PWM)
IN1 = machine.Pin(20, machine.Pin.OUT) # Sentido de giro
IN2 = machine.Pin(21, machine.Pin.OUT) # Sentido de giro
# Configuración de PWM en ENA (Velocidad del motor)
ENA.freq(1000) # Frecuencia de 1 kHz
# Función para girar el motor
def girar_motor(velocidad, sentido):
ENA.duty_u16(velocidad) # Establecer velocidad
if sentido == "horario":
IN1.value(1)
IN2.value(0)
elif sentido == "antihorario":
IN1.value(0)
IN2.value(1)
else:
IN1.value(0)
IN2.value(0)
# Bucle principal
try:
while True:
# Primera vuelta al 100% de velocidad
print("Giro horario al 100%")
girar_motor(65535, "horario") # 100% de velocidad
time.sleep(1) # Espera de 1 segundo después del giro
girar_motor(0, "detenido") # Detener el motor después del giro
time.sleep(1) # Paro de 1 segundo antes de continuar
print("Giro antihorario al 50%")
girar_motor(32767, "antihorario") # 50% de velocidad
time.sleep(1) # Espera de 1 segundo después del giro
girar_motor(0, "detenido") # Detener el motor después del giro
time.sleep(1) # Paro de 1 segundo antes de continuar
except KeyboardInterrupt:
print("Interrumpido por el usuario")
finally:
print("Motor detenido al salir")
girar_motor(0, "detenido") # Detener el motor al salir