Académique Documents
Professionnel Documents
Culture Documents
Français
1 of 7 28/10/2023 21:20
Mesurer des tensions analogiques avec l'ADC de l'ESP32 https://www.upesy.fr/blogs/tutorials/measure-voltage-on-es...
L’ADC (Analog to Digital Converter) ou CAN (Convertisseur Analogique à Numérique) permet comme
son nom l’indique de convertir une tension analogique en une valeur binaire.
Il y a 2 ADC de 12 bits sur l’ESP32, l’ADC1 avec 8 canaux et l’ADC2 avec 10 canaux. Chaque canal de
l’ADC permet de faire une mesure sur un pin.
Même si cela semble étrange, l’ADC de l’Arduino sur 10 bits (1024 valeurs) est plus précis et plus fiable
que celui de l’ESP32 sur 12 bits (4096 valeurs).
2 of 7 28/10/2023 21:20
Mesurer des tensions analogiques avec l'ADC de l'ESP32 https://www.upesy.fr/blogs/tutorials/measure-voltage-on-es...
On peut utiliser un pont diviseur de tension pour ramener une tension comprise entre 0 et 5V à une
tension comprise entre 0 et 3.3V.
Pont diviseur de tension pour passer d’une tension comprise entre 0-5V à 0-3.3V
L’ADC de l’ESP32 n’est pas très linéaire (la courbe de réponse de l’ADC n’est pas une droite
linéaire), surtout aux extrémités de sa plage d’utilisation (vers 0V et 3.3V)
3 of 7 28/10/2023 21:20
Mesurer des tensions analogiques avec l'ADC de l'ESP32 https://www.upesy.fr/blogs/tutorials/measure-voltage-on-es...
Concrètement, cela signifie que l’ESP32 n’est pas capable de distinguer un signal de 3.2V et 3.3V :
la valeur mesurée sera la même (4095). De même, pour les petites tensions l’ESP32 ne fera pas la
différence entre un signal de 0V et 0.2V.
Il est possible de calibrer l’ADC pour réduire ce défaut de linéarité. Un exemple est disponible ici .
4 of 7 28/10/2023 21:20
Mesurer des tensions analogiques avec l'ADC de l'ESP32 https://www.upesy.fr/blogs/tutorials/measure-voltage-on-es...
L’utilisation basique de l’ADC de l’ESP32 est la même que sur l’Arduino avec la fonction
analogRead() .
Circuit électrique
5 of 7 28/10/2023 21:20
Mesurer des tensions analogiques avec l'ADC de l'ESP32 https://www.upesy.fr/blogs/tutorials/measure-voltage-on-es...
// Valeur du potentiomètre
int potValue = 0;
void setup() {
Serial.begin(115200);
delay(1000);
pinMode(potPin,INPUT_PULLUP);
}
void loop() {
// Mesure la valeur du potentiomètre
potValue = analogRead(potPin);
Serial.println(potValue);
delay(250);
}
Résultats obtenus
Lorsqu’on tourne le potentiomètre, on obtient :
6 of 7 28/10/2023 21:20
Mesurer des tensions analogiques avec l'ADC de l'ESP32 https://www.upesy.fr/blogs/tutorials/measure-voltage-on-es...
Previous Next
Contrôler les pins GPIO (Entrées/Sorties) Créer des tensions variables sur l’ESP32 avec le
PWM
Mentions légales
Politique de confidentialité
Livraison - Retour
© 2023, uPesy
7 of 7 28/10/2023 21:20