ESP32 - mesurer la tension

Dans ce guide, nous allons apprendre à mesurer une tension allant de 0V à 16,5V à l'aide d'un capteur de tension avec un ESP32. Nous expliquerons les étapes en détail.

Capteur de tension ESP32

À propos du capteur de tension

Un capteur de tension est un circuit diviseur de tension prêt à l'emploi qui utilise des résistances spécifiques pour faciliter la mesure de la tension. Il comporte deux résistances : l'une est de 30 KΩ et l'autre de 7,5 KΩ. Si l'ADC a une tension de référence de 5V, le capteur peut mesurer des tensions de 0 à 25V DC. Lorsque la tension de référence de l'ADC est de 3,3V, il peut mesurer des tensions de 0 à 16,5V DC.

Connecteur

Un capteur de tension est doté de deux types de broches :

  • Interface d'entrée (connectez là où vous souhaitez mesurer la tension) :
    • Broche VCC : Connectez cette broche positive au point de tension plus élevé.
    • Broche GND : Connectez cette broche négative au point de tension plus bas.
  • Interface de sortie (connectez à l'ESP32) :
    • Broche Vout (S) : Connectez cette broche signal à une broche analogique sur l'ESP32.
    • Broche NC (+) : Ne pas connecter cette broche ; elle n'est pas utilisée.
    • Broche GND (-) : Connectez cette broche de terre au GND (0V) de l'ESP32.
    Brochage de tension
    image source: diyables.io

Diagramme de câblage

Diagramme de câblage du capteur de tension ESP32

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..

Code ESP32

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-measure-voltage */ #define ANALOG_IN_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to voltage sensor #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 4096.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Étapes rapides

  • Si c'est la première fois que vous utilisez l'ESP32, consultez Installation du logiciel ESP32..
  • Connectez l'ESP32 au capteur de tension.
  • Connectez la carte ESP32 à votre PC via un câble USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple ESP32 Dev Module) et le port COM.
  • Copiez et collez le code ci-dessus dans Arduino IDE.
  • Appuyez sur le bouton Upload dans Arduino IDE pour compiler et téléverser le code sur l'ESP32.
  • Testez en mesurant 5V et 3.3V sur l'ESP32.
  • Vérifiez les lectures sur le Moniteur Série.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Vous pourriez remarquer que le résultat de la mesure est incorrect ou significativement différent de la valeur réelle. Ne blâmez pas le module de capteur de tension pour cela. Le code utilise la fonction analogRead() pour lire les valeurs d'un ADC (Convertisseur Analogique-Numérique) connecté à un capteur de tension. L'ADC de l'ESP32 convient aux projets qui ne nécessitent pas une grande précision. Cependant, pour les projets nécessitant des mesures précises, veuillez noter :

  • L'ADC de l'ESP32 n'est pas parfaitement précis et peut nécessiter une calibration pour obtenir des résultats corrects. Chaque carte ESP32 peut légèrement varier, donc une calibration est nécessaire pour chaque carte individuelle.
  • La calibration peut être difficile, surtout pour les débutants, et ne fournit pas toujours les résultats exacts souhaités.

Pour les projets nécessitant une haute précision, envisagez d'utiliser un ADC externe (par exemple, ADS1115) avec l'ESP32 ou un Arduino, qui possède un ADC plus fiable. Si vous souhaitez toujours calibrer l'ADC de l'ESP32, référez-vous au Driver de Calibration ADC de l'ESP32.

Vidéo

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !