🛠 Lire un potentiomètre avec le vrai ADC 12 bits de la Due

Arduino Due · debutant · Schéma : IMG-due-debutant-2-potentiometre-adc-12-bits.svg — Arduino Due avec un potentiomètre 10 kΩ câblé sur A0 (3,3 V / A0 / GND), moniteur série affichant des valeurs 0–4095 après analogReadResolution(12), puce ADC 12 bits annotée.

Objectifs

Exploiter l'argument de vente de la Due côté analogique : son convertisseur analogique-numérique est 12 bits (0–4095), contre 10 bits sur les Arduino AVR. Vous allez câbler un potentiomètre, lire sa position… et découvrir le piège documenté du core : analogRead renvoie par défaut des valeurs 10 bits (0–1023) pour rester compatible AVR. Il faut le demander explicitement avec analogReadResolution(12).

Matériel

Code complet

// Lecture 12 bits d'un potentiomètre sur A0
// Fils : potentiomètre broche gauche -> 3V3, curseur -> A0, broche droite -> GND

void setup {
  analogReadResolution(12);   // sans cette ligne : 0..1023 (défaut 10 bits !)
  SerialUSB.begin(115200);    // moniteur sur le port Native
}

void loop {
  int brut = analogRead(A0);            // 0..4095 en 12 bits
  float tension = brut * 3.3f / 4095.0f; // base 3,3 V (Vref de la Due)
  SerialUSB.printf("brut=%d  soit %.3f V\n", brut, tension);
  delay(50);
}

Vérification attendue

En tournant le potentiomètre à fond, la valeur brute doit balayer environ 0 à 4095 et la tension calculée 0 à 3,3 V. Si vous commentez analogReadResolution(12), la plage retombe à 0–1023 : c'est la preuve du défaut 10 bits du core. La tension suit la position du curseur de façon linéaire.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels