from machine import Pin,PWM,ADC # aqui importamos herramientas específicas de la biblioteca machine, para interactuar con los pines de entrada/salida, generar señales PWM (modulación por ancho de pulso) y realizar conversiones ADC (conversiones analógico a digital)
from time import sleep # importa la función sleep del módulo time, se utiliza para pausar la ejecucion de un programa por un cierto número de segundos
#...Encendemos el led para...
led=Pin(2,Pin.OUT) # inicia un objeto 'Pin' que controla el pin numero 2 y lo configura como una salida
led.on() # se utiliza para encender el led (o cualquier dispositivo conectadoal pin)
#...Configuramos el pin que usaremos para la comunicacion analogica......
E=ADC(Pin(32)) # creamos un objeto 'E' que es el conversor analógico a digital. el objeto 'E' lee señales analógicas del pin 32
E.atten(ADC.ATTN_11DB) # establece la atenuación del ADC en 11 dB. La atenuación determina el rango de voltaje que puede ser medido por el ADC
E.width(ADC.WIDTH_10BIT) # se establece la precisión de la conversión ADC en 10 bits. Esto significa que el ADC puede representar los valores de voltaje en 1024 niveles diferentes
#...Configuramos la entrada para el servo.........
m_1=PWM(Pin(19),50) # se le asigno la variable 'm_1' y se creo el objeto PWM en el pin número 19 del microcontrolador con una frecuencia de 50 Hz
#..Iniciamos el algoritmo a implementar..........
while True: # inicia un bucle que se ejecutará infinitamente
volt=E.read()*4/ 1023; # se lee el valor de 'E', y luego se multiplica por 4 y se divide por 1023 para obtener el voltaje. se guarda en la variable 'volt'
print(volt) # imprime el valor del voltaje en algun medio de salida
sleep(0.1) # el programa espere 0.1 segundos antes de continuar con la siguiente iteración del bucle