#define ADC_PIN 34
#define LED_PIN 2
// Temporización
unsigned long tiempoAnterior = 0;
const unsigned long intervalo = 100; // ms
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
unsigned long tiempoActual = millis();
// Control temporal NO bloqueante
if (tiempoActual - tiempoAnterior >= intervalo) {
tiempoAnterior = tiempoActual;
// Lectura ADC
int valorADC = analogRead(ADC_PIN);
// Conversión a voltaje
float voltaje = (valorADC / 4095.0) * 3.3;
// Proporcionalidad (gráfica)
int barras = map(valorADC, 0, 4095, 0, 30);
// Control digital (umbral)
if (valorADC > 2000) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
// Salida por serial
Serial.print("ADC: ");
Serial.print(valorADC);
Serial.print(" | V: ");
Serial.print(voltaje, 2);
Serial.print(" | ");
for (int i = 0; i < barras; i++) {
Serial.print("#");
}
Serial.println();
}
}