🛠 Lire un capteur analogique (potentiomètre)

Arduino Mega ADK (Rev3) · debutant · Schéma : IMG-mega-adk-debutant-3-mega-adk-capteur-analogique.svg — Mega ADK, potentiomètre 10 kΩ sur A0 (5 V / GND / curseur) et LED sur la broche PWM 9

Objectifs

Lire un capteur analogique — ici un potentiomètre — sur une des 16 entrées analogiques de l'ATmega2560 (conversion 10 bits, valeurs 0 à 1023, référence 5 V par défaut, ajustable via la broche AREF et analogReference), puis commander la luminosité d'une LED par MLI (PWM). Rappel des ressources de la carte : 15 canaux PWM (broches 2 à 13 et 44 à 46) pilotés par analogWrite sur 0–255, et 54 broches numériques au total.

Matériel

Code complet

// mega-adk-capteur-analogique.ino — Board: "Arduino Mega ADK"
const byte ENTREE_ANA = A0;   // 16 entrées analogiques, 10 bits : 0..1023
const byte LED_PWM   = 9;     // PWM : broches 2-13 et 44-46

void setup {
  Serial.begin(9600);
  pinMode(LED_PWM, OUTPUT);
  analogReference(DEFAULT);   // référence 5 V par défaut
}

void loop {
  int brut = analogRead(ENTREE_ANA);          // 0..1023
  int valeurMoyenne = 0;
  for (int i = 0; i < 8; i++) {               // moyenne simple sur 8 échantillons
    valeurMoyenne += analogRead(ENTREE_ANA);
    delay(1);
  }
  valeurMoyenne /= 8;

  byte consigne = map(valeurMoyenne, 0, 1023, 0, 255);
  analogWrite(LED_PWM, consigne);             // 0..255

  Serial.print(F("brut="));      Serial.print(brut);
  Serial.print(F("  moyenne="")); Serial.print(valeurMoyenne);
  Serial.print(F("  pwm=""));     Serial.println(consigne);
  delay(100);
}

Vérification attendue

En tournant le potentiomètre, la valeur lue suit 0 → 1023 et la LED s'éteint progressivement puis s'intensifie. La moyenne sur 8 échantillons stabilise l'affichage série. Les paliers de la MLI 8 bits restent peu visibles à l'œil sur l'ATmega2560.

Erreurs fréquentes

  1. Potentiomètre dont les deux broches extrêmes ne sont pas reliées à 5 V et GND : lecture flottante ou bloquée à 0/1023.
  2. LED branchée sur une broche non PWM : analogWrite n'a aucun effet — vérifier la liste 2-13 et 44-46.
  3. Confusion des échelles 0-1023 (analogRead) et 0-255 (analogWrite) : sans map, la LED sature dès le premier quart de course.
  4. Entrée analogique laissée en l'air : la valeur « respire » toute seule, comportement normal d'une entrée haute impédance.
  5. Capteur réel (LDR, TMP36…) : vérifier l'échelle de tension ; ne jamais dépasser 5 V sur une broche, alimenter le capteur en 3,3 V si besoin — la broche 3V3 est limitée à 50 mA.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels