🛠 Console série et lecture d'un capteur analogique
Objectifs
Maîtriser la communication série sur ESP32-S2 et la conversion analogique-numérique : lire un potentiomètre sur un canal ADC1 et envoyer les valeurs au moniteur série.
Matériel
- Carte ESP32-S2 et câble USB
- 1 potentiomètre (10 kΩ par exemple)
- 3 câbles Dupont
Code complet
// Lecture ADC1 + console série sur ESP32-S2
const uint8_t CAPTEUR_PIN = 3; // ADC1_CH0 sur la plupart des cartes S2
void setup {
Serial.begin(115200);
analogSetPinAttenuation(CAPTEUR_PIN, ADC_11db); // plage ~0-3,1 V
delay(1000);
Serial.println("Console série ESP32-S2 prete");
}
void loop {
uint16_t brut = analogRead(CAPTEUR_PIN);
float tension = brut * 3.3f / 4095.0f; // ADC 12 bits
Serial.printf("brut=%u tension=%.2f V\n", brut, tension);
delay(250);
}
Vérification attendue
Le moniteur série affiche quatre fois par seconde une valeur brute entre 0 et 4095 et la tension correspondante. Tourner le potentiomètre fait varier les deux valeurs de façon continue de 0 à 3,3 V environ.
Erreurs fréquentes
- Utiliser une broche ADC2 : sur les cartes ESP32, l'ADC2 est indisponible quand le WiFi est actif ; préférez ADC1.
- Oublier
analogSetPinAttenuation: sans atténuation, les tensions proches de 3,3 V sont écrêtées. - Débit série incohérent : le moniteur doit être réglé sur 115200 bauds.
- Confondre les deux ports USB de la carte (UART et USB natif) : si rien ne s'affiche, essayez l'autre port.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht22.inoArduinooled-i2c.inoArduinoserveur-web.inoArduino