#Primero declaro las librerias o las importo las que voy a utilizar
from machine import ADC, Pin
import time
#Luego creo las lista con los números de los pines GPIO del ESP32 donde están conectados mis 8 LEDS
listapines = [14, 15, 16, 17, 18, 19, 21, 22]
#Despues de la lista de pines creo una lista vacía para ir guardando y ordenando los pines de los LEDS
leds = []
#A continuacion utilizo el for o ciclo para inicializar cada pin de la lista de pines como salida
for i in listapines: #Utilizo leds.append la funcion para agregar y guardar la configuración
leds.append(Pin(i, Pin.OUT, value=0))#de cada pin dentro de la lista de LEDS
#El i toma el valor de cada pin de la lista uno por uno
#value=0 es la que asegura que inicien apagados
#Luego se realiza la configuración del canal analógico digital en el pin 36 del ESP32
adc = ADC(36)
adc.atten(ADC.ATTN_11DB) # Se configura la atenuación para medir un rango de 0V a 3.3V
adc.width(ADC.WIDTH_12BIT) # Se Configura la resolución a 12 bits de los valores de 0 a 4095 del potenciómetro
#Después utilizo la condicion para el bucle principal que se repite indefinidamente
while True:
#Aquí asigno el valor que lee el conversor analógico digital de la variable lectura que es entre 0 y 4095
lectura = adc.read()
#Aplico una operación aritmética para convertir la lectura a un valor en voltios usando una regla de tres
voltaje = lectura * 3.3 / 4095
#Aqui imprimo o muestro el voltaje actual medido
print("El voltaje actual: ", voltaje)
#Aqui hago un ciclo para resetear los LEDS y asegurarme de que estén apagados
for led in leds:
led.value(0)
#Después utilizo las estructuras condicionales para encender los LEDS según sube la lectura del potenciómetro
if lectura > 500:
leds[0].value(1) #Aqui enciende el primer LED si la lectura supera 500
if lectura > 1000:
leds[1].value(1) #Aqui enciende el segundo LED si la lectura supera 1000
if lectura > 1500:
leds[2].value(1) #Aqui enciende el tercer LED si la lectura supera 1500
if lectura > 2000:
leds[3].value(1) #Aqui enciende el cuarto LED si la lectura supera 2000
if lectura > 2500:
leds[4].value(1) #Aqui enciende el quinto LED si la lectura supera 2500
if lectura > 3000:
leds[5].value(1) #Aqui enciende el sexto LED si la lectura supera 3000
if lectura > 3500:
leds[6].value(1) #Aqui enciende el septimo LED si la lectura supera 3500
if lectura > 4000:
leds[7].value(1) #Aqui enciende el octavo LED si la lectura supera 4000
#Aqui agrego el time.sleep_ms para hacer la pausa de 200 milisegundos antes de volver a leer el potenciómetro
time.sleep_ms(200)