# Importamos las clases necesarias desde el módulo 'machine'
# 'ADC' se usa para manejar entradas analógicas
# 'Pin' permite interactuar con los pines GPIO (entrada/salida digital)
from machine import ADC, Pin
# Importamos el módulo 'time' para poder usar funciones relacionadas con el tiempo,
# como pausas (sleep), conteo, etc.
import time
# Creamos un objeto 'sensor' que representa una entrada analógica conectada al pin 34
# Este pin debe ser uno de los que permiten entrada analógica en el microcontrolador
sensor = ADC(Pin(34)) # Configuramos el GPIO 34 como entrada analógica
# Ajustamos la atenuación de la señal con ATTN_11DB, lo que permite leer voltajes de 0V a 3.3V
# (sin esto, el rango puede estar limitado a menos de 1V dependiendo del micro)
sensor.atten(ADC.ATTN_11DB) # Ajusta el rango de voltaje (0V - 3.3V)
# Creamos un objeto 'led' que representa una salida digital en el pin 5
# Este pin se usará para encender o apagar un LED
led = Pin(5, Pin.OUT) # Configura el GPIO 5 como salida
# Bucle infinito para leer constantemente el sensor y controlar el LED
while True:
valor = sensor.read() # Lee el valor del sensor (entre 0 y 4095, donde 4095 representa 3.3V)
print("Valor analógico:", valor) # Muestra el valor leído en consola
time.sleep(0.5) # Espera medio segundo antes de repetir (reduce el número de lecturas por segundo)
# Si el valor leído es mayor o igual a 3000 (~2.4V), encendemos el LED
if valor >= 3000:
led.value(1) # Enciende el LED (salida en alto, 3.3V)
else:
led.value(0) # Apaga el LED (salida en bajo, 0V)