Vous êtes sur la page 1sur 7

Mesurer des tensions analogiques avec l'ADC de l'ESP32 https://www.upesy.fr/blogs/tutorials/measure-voltage-on-es...

Livraison offer te à par tir de 50€ d'achats, livrées sous 48h !

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.

Pinout de la carte uPesy ESP32 Wroom Devkit

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).

L’ADC de l’ESP32 possède plusieurs défauts :

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...

• car il est utilisé en interne par le driver WiFi.


Puisqu’il y a de grandes chances d’utiliser le WiFi sur un microcontrôleur prévu pour l’utiliser, il n’y a
que l’ADC1 et ses 8 canaux qui peuvent être utilisés.
• On ne peut pas
directement mesurer des tensions analogiques variant entre 0 et 5V.

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...

Non linéarité de l’ADC de l’ESP32

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 .

• de l’ADC implique une légère fluctuation des mesures :

Bruit électrique de l’ADC de l’ESP32

Là aussi il est possible d’essayer de « corriger » ce défaut en rajoutant un condensateur à la sortie


et avec du suréchantillonage :

Correction du bruit électrique de l’ADC de l’ESP32

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() .

• Pour lire la tension du pin VP (GPIO36) de l’ESP32 :

pinMode(36, INPUT); //Il faut déclarer le pin en entrée


analogRead(36);

Il y a aussi des fonctions plus avancées.

• Pour changer la résolution de l’ADC :

analogReadResolution(resolution)//Résolution entre 9-12 bits

Nous allons tester l’ADC en utilisant un potentiomètre (résistance variable).

Schéma électrique pour le potentiomètre

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...

Circuit électrique du potentiomètre sur une breadboard

Code pour lire les valeurs du potentiomètre

// Le potentiomètre est connecté au GPIO 36 (Pin VP)


const int potPin = 36;

// 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...

Article corrigé avec

Previous Next
Contrôler les pins GPIO (Entrées/Sorties) Créer des tensions variables sur l’ESP32 avec le
PWM

Liens utiles Informations légales

Conditions générales de vente

Mentions légales

Politique de confidentialité

Livraison - Retour

Soyez au courant des nouveautés d'uPesy

E-mail

En validant votre inscription, vous acceptez de recevoir par e-mail les


actualités d'uPesy. Vous pouvez vous désabonner à tout moment.

© 2023, uPesy

7 of 7 28/10/2023 21:20

Vous aimerez peut-être aussi