🛠 Lire un capteur analogique : potentiomètre et ADC 10 bits

Arduino Leonardo — Fiche carte · debutant · Schéma : IMG-leonardo-debutant-3-leonardo-capteur-analogique.svg — Potentiomètre alimenté en 5V/GND, curseur relié à A0 sur une Leonardo, courbe de valeur à l'écran

Objectifs

Découvrir le convertisseur analogique-numérique (ADC) 10 bits de l'ATmega32u4 : analogRead renvoie un entier de 0 à 1023 proportionnel à la tension sur la broche, entre 0 V et 5 V. Vous apprendrez aussi la particularité des entrées analogiques de la Leonardo : 12 entrées A0 à A11, dont A6 à A11 partagées (multiplexées) avec les broches numériques 4, 6, 8, 9, 10 et 12 — la numérotation du cœur Arduino est d'ailleurs source de confusion sur ces broches.

Matériel

Code complet

const uint8_t POT_PIN = A0; // A0-A5 : broches analogiques « classiques »

void setup {
  Serial.begin(9600); // Serial = USB CDC sur Leonardo
  while (!Serial) { }
}

void loop {
  int brut = analogRead(POT_PIN);          // 0..1023 (ADC 10 bits)
  float tension = brut * (5.0 / 1023.0);   // tension approximative en volts
  int pourcent = map(brut, 0, 1023, 0, 100);
  Serial.print("brut="); Serial.print(brut);
  Serial.print(" ~"); Serial.print(tension);
  Serial.print(" V  ("); Serial.print(pourcent); Serial.println(" %)");
  delay(100);
}

Vérification attendue

En tournant le potentiomètre à la main, les valeurs affichées suivent : environ 0 en butée d'un côté, environ 1023 dans l'autre, et la tension calculée reste entre 0 et 5 V. Si la valeur saute beaucoup au repos, c'est normal : une entrée analogique non reliée à une source basse impédance capte du bruit.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels