Arduino - mesurer la tension

Dans ce tutoriel, nous explorerons comment utiliser un Arduino pour mesurer une tension de 0V à 25V à l'aide d'un capteur de tension. En détail, nous aborderons :

Capteur de tension Arduino

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×Voltage Sensor
1×Jumper Wires
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Recommended) Breadboard Shield For Arduino Uno
1×(Recommended) Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de tension

Un capteur de tension est un circuit diviseur de tension préassemblé qui utilise des résistances de précision pour simplifier la mesure de tension. Il se compose de deux résistances : 30 KΩ et 7,5 KΩ. Avec une tension de référence de 5V pour le convertisseur analogique-numérique (ADC), le capteur peut mesurer des tensions allant de 0 à 25V DC. Lorsque la tension de référence de l'ADC est de 3,3V, le capteur peut mesurer des tensions de 0 à 16,5V DC.

Brochage

Un capteur de tension possède deux jeux de broches :

  • Interface d'entrée (connectée aux points où vous souhaitez mesurer la tension) :
    • Broche VCC : Il s'agit de la broche positive. Connectez-la au point avec une tension plus élevée.
    • Broche GND : Il s'agit de la broche négative. Connectez-la au point avec une tension plus basse.
  • Interface de sortie (connectée à l'Arduino) :
    • Broche Vout (S) : Il s'agit de la broche du signal. Connectez-la à une broche analogique de l'Arduino.
    • Broche NC (+) : Celle-ci n'est pas utilisée. Ne la connectez pas.
    • Broche GND (-) : Il s'agit de la broche de masse. Connectez-la à la masse (0V) sur l'Arduino.
    Brochage de tension
    image source: diyables.io

Diagramme de câblage

Schéma de câblage du capteur de tension Arduino

This image is created using Fritzing. Click to enlarge image

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-measure-voltage */ // define analog input #define ANALOG_IN_PIN A0 #define REF_VOLTAGE 5.0 #define ADC_RESOLUTION 1024.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); } 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

  • Connectez l'Arduino au capteur de tension
  • Connectez l'Arduino au PC via un câble USB
  • Ouvrez l'Arduino IDE, sélectionnez la bonne carte et le bon port
  • Copiez le code ci-dessus et ouvrez-le avec l'Arduino IDE
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code sur l'Arduino
  • Testez en mesurant 5V et 3.3V sur l'Arduino
  • Voir le résultat sur le Moniteur Série.
COM6
Send
Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Il se peut que vous remarquiez que le résultat de la mesure est incorrect ou sensiblement différent de la valeur réelle. Ne blâmez pas le module capteur de tension pour cela. La valeur mesurée peut montrer des variations car la référence de tension par défaut est de 5V, ce qui peut être instable et dépendant de l'alimentation électrique. Voici quelques solutions à ce problème :

  • Utilisez une source d'alimentation qui fournit une tension suffisante pour l'Arduino. Vous pouvez vérifier cela en utilisant un voltmètre pour vérifier si la broche 5V de l'Arduino délivre 5V.
  • Utilisez une référence de tension externe de 3.3V. Cependant, avec cette méthode, vous ne pouvez mesurer que des tensions allant de 0 à 16.5V DC.

Mesurer la tension avec une référence de 3,3V

Pour utiliser cette méthode, vous devez configurer à la fois le matériel et le code. Pour le matériel, connectez la broche AREF de l'Arduino à 3,3 V comme illustré dans le schéma ci-dessous.

Arduino mesure la tension Schéma de câblage

This image is created using Fritzing. Click to enlarge image

Ensuite, utilisez le code suivant :

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-measure-voltage */ #define ANALOG_IN_PIN A0 #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 1024.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); analogReference(EXTERNAL); } 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); }

Vidéo

Références de Fonction

Tutoriels connexes

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!