from machine import Pin, ADC, PWM
from time import sleep
# Configuración de pines
potenciometro = ADC(26) # Potenciómetro conectado a ADC0 (GP26)
motor_pwm = PWM(Pin(15)) # Motor conectado a GPIO15 usando PWM
motor_pwm.freq(1000) # Frecuencia de PWM para el motor
# Configuración de LEDs para el indicador de nivel de velocidad
led1 = Pin(21, Pin.OUT)
led2 = Pin(20, Pin.OUT)
led3 = Pin(19, Pin.OUT)
led4 = Pin(18, Pin.OUT)
while True:
# Leer el valor del potenciómetro (0 a 65535)
valor_pot = potenciometro.read_u16()
# Calcular el duty cycle del motor basado en el valor del potenciómetro
duty_cycle = int(valor_pot / 65535 * 65535) # Ajuste de 0 a 100% PWM
motor_pwm.duty_u16(duty_cycle)
# Determinar el nivel de velocidad en porcentaje
velocidad_porcentaje = (valor_pot / 65535) * 100
# Encender los LEDs según el nivel de velocidad
if velocidad_porcentaje >= 25:
led1.value(1)
else:
led1.value(0)
if velocidad_porcentaje >= 50:
led2.value(1)
else:
led2.value(0)
if velocidad_porcentaje >= 75:
led3.value(1)
else:
led3.value(0)
if velocidad_porcentaje >= 100:
led4.value(1)
else:
led4.value(0)
# Imprimir el porcentaje de velocidad (opcional para monitoreo)
print("Velocidad del motor (%):", velocidad_porcentaje)
# Retardo de 0.1 segundos antes de la siguiente lectura
sleep(0.1)