🛠 Lire un capteur analogique sur A0 (ADC 12 bits)
Objetivos
Leer un sensor analógico (potenciómetro o sensor de luz) en A0 con el ADC de 12 bits del ESP32-S3 (0-4095 para 0-3,3 V), convertir el valor a voltaje y comprender la trampa ADC2/Wi-Fi.
Material
- 1 × Arduino Nano ESP32
- 1 × potenciómetro de 10 kΩ (pata 1 → 3,3 V, pata 2 → A0, pata 3 → GND)
- Atención: toda la placa funciona a 3,3 V; ninguna señal debe superar los 3,3 V en un pin (y la placa no tiene ningún pin de 5 V)
Código completo
// A0..A7 : 8 entrées analogiques, ADC 12 bits, 3,3 V max (docs-db)
void setup {
Serial.begin(115200);
}
void loop {
int raw = analogRead(A0); // 0..4095
float mv = raw * (3300.0 / 4095.0); // tension en millivolts
Serial.printf("A0 = %d (%.0f mV)\n", raw, mv);
delay(200);
}
Verificación esperada
Al girar el potenciómetro, el valor bruto sigue 0 → 4095 y el voltaje 0 → aproximadamente 3300 mV. En reposo, los valores permanecen estables (ruido de solo unas pocas unidades).
Errores frecuentes
- Trampa ADC2/Wi-Fi: en ESP32, los canales ADC2 se vuelven inutilizables (lectura 0 o errática) en cuanto el Wi-Fi está activo. >
- Alimentar el sensor con 5 V: supera los 3,3 V en el ADC; además, la placa no tiene ningún pin de 5 V.
- Esperar 10 bits como en un AVR: aquí son 12 bits (0-4095).
- Cables demasiado largos sin masa común con la placa: las mediciones saltan constantemente.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
connexion-wifi.inoArduinopoint-acces.inoArduinoble-capteur.inoArduinoneoled-rgb.inoArduinoadc-12bits.inoArduinopreferences.inoArduino