🛠 Première entrée analogique sur ADC1

ESP32 (original, classe ESP32-WROOM-32) · debutant · Schéma : IMG-esp32-debutant-3-entree-analogique-adc1.svg — Potentiomètre relié à GPIO34 (ADC1) sur ESP32, tension convertie en valeur 0-4095 affichée en console

Objectifs

Lire une tension avec le convertisseur analogique-numérique de l'ESP32. Nous utiliserons volontairement un canal de l'ADC1 (GPIO32 à GPIO39) : l'ADC2, lui, est inutilisable dès que le Wi-Fi est actif — un piège classique que nous détaillerons dans le tutoriel avancé correspondant. Vous découvrirez aussi la contrainte GPIO34-39 : ces broches sont des entrées pures, jamais des sorties.

Matériel

Code complet

const uint8_t POT_PIN = 34;   // ADC1_CH6, entrée seule

void setup {
  Serial.begin(115200);
  analogReadResolution(12);            // 0..4095
  analogSetPinAttenuation(POT_PIN, ADC_11db); // plage ~0 a 3,3 V
  analogRead(POT_PIN);                 // 1er echantillon ignore
}

void loop {
  uint32_t brut = analogRead(POT_PIN);
  float mv = brut * 3300.0f / 4095.0f;
  Serial.printf("ADC1 GPIO34 : %u -> %.0f mV\n", brut, mv);
  delay(100);
}

Vérification attendue

En tournant le potentiomètre, la console affiche une valeur continue de 0 à 4095 et la tension correspondante de 0 à environ 3300 mV. Au repos (doigt près du curseur), la valeur peut danser de quelques unités : c'est le bruit normal d'un ADC 12 bits sans filtre.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels