🛠 Lire un capteur analogique avec l'ADC 12 bits
Objectifs
Utiliser l'ADC du SAMD21 (12 bits natif, configurable 8/10/12 bits, référence 3,3 V) pour lire un capteur analogique, calibrer la mesure et l'afficher sur la console série.
Matériel
- 1 Arduino MKR WAN 1300
- 1 potentiomètre 10 kΩ (ou capteur analogique 3,3 V)
- Câbles jumper
- >
Code complet
// 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);
}
Vérification attendue
En tournant le potentiomètre (curseur vers 3,3 V, les deux autres broches vers GND et 3,3 V), la valeur brute suit 0..4095 et la tension 0,000..3,300 V avec un bruit résiduel de quelques unités seulement grâce à la moyenne.
Erreurs fréquentes
- Capteur alimenté en 5 V sur une broche 3,3 V : risque de dommage ; alimenter le capteur en 3,3 V.
- Oublier analogReadResolution : le cœur SAMD peut renvoyer du 10 bits, seuils faux.
- Broche non reliée : valeurs qui dansent ; ajouter une charge ou un filtre RC.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
emission-p2p.inoArduinoreception-p2p.inoArduinoreglage-sp.inoArduinometeo-lora.inoArduinotrame-crc.inoArduinorelais-radio.inoArduino