🛠 Lire un capteur analogique avec l'ADC 12 bits
Objetivos
Utilizar el ADC del SAMD21 (12 bits nativos, configurable a 8/10/12 bits, referencia de 3,3 V) para leer un sensor analógico, calibrar la medición y mostrarla en la consola serie.
Material
- 1 Arduino MKR WAN 1300
- 1 potenciómetro de 10 kΩ (o sensor analógico de 3,3 V)
- Cables jumper
- >
Código completo
// ADC 12 bits : 0..4095 pour 0..3,3 V. Broche A1.
const uint8_t CAPTEUR = A1;
void setup {
Serial.begin(115200);
while (!Serial) {}
analogReadResolution(12); // explicite : 0..4095
}
void loop {
uint32_t brut = 0;
for (uint8_t i = 0; i < 16; i++) {
brut += analogRead(CAPTEUR); // moyenne mobile
delay(2);
}
brut /= 16;
float volts = brut * 3.3f / 4095.0f;
Serial.print("brut="); Serial.print(brut);
Serial.print(" V="); Serial.println(volts, 3);
delay(500);
}
Verificación esperada
Al girar el potenciómetro (cursor hacia 3,3 V, las otras dos patillas hacia GND y 3,3 V), el valor bruto sigue el rango 0..4095 y el voltaje 0,000..3,300 V con un ruido residual de solo unas pocas unidades gracias al promedio.
Errores frecuentes
- Sensor alimentado a 5 V en un pin de 3,3 V: riesgo de daño; alimentar el sensor a 3,3 V.
- Olvidar analogReadResolution: el núcleo SAMD puede devolver 10 bits, lo que provoca umbrales incorrectos.
- Pin no conectado: valores inestables; añadir una carga o un filtro RC.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
emission-p2p.inoArduinoreception-p2p.inoArduinoreglage-sp.inoArduinometeo-lora.inoArduinotrame-crc.inoArduinorelais-radio.inoArduino