Arduino Nano - mesurer la tension

Dans ce guide, nous apprendrons comment mesurer une tension entre 0V et 25V en utilisant un capteur de tension avec un Arduino Nano. Nous discuterons :

Capteur de tension Arduino Nano

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Voltage Sensor
1×Jumper Wires
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano
1×(Recommended) Breakout Expansion Board for Arduino Nano
1×(Recommended) Power Splitter For Arduino Nano

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 prêt à l'emploi qui divise la tension pour une mesure facile. Il comporte deux résistances : une de 30 KΩ et une de 7,5 KΩ. Avec une tension de référence de 5V pour l'ADC, le capteur peut mesurer des tensions de 0 à 25V DC. Si la tension de référence de l'ADC est de 3,3V, le capteur peut mesurer de 0 à 16,5V DC.

Brochage

Un capteur de tension comprend deux groupes de broches.

  • Interface d'entrée (connectez là où vous devez mesurer la tension) :
  • Broche VCC : C'est la broche positive. Connectez-la au point de tension plus élevée.
  • Broche GND : C'est la broche négative. Connectez-la au point de coût le plus bas.
  • Interface de sortie (connecter à l'Arduino Nano) :
  • Broche Vout (S) : C'est la broche de signal. Connectez-la à une entrée analogique sur l'Arduino Nano.
  • Broche NC (+) : Ne pas connecter.
  • Broche GND (-) : Ceci est la broche de masse. Connectez-la au GND (0V) sur l'Arduino Nano.
Brochage de tension
image source: diyables.io

Diagramme de câblage

Diagramme de câblage du capteur de tension Arduino Nano

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-measure-voltage */ #define ANALOG_IN_PIN A7 // The Arduino Nano pin connected to voltage sensor #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 Nano au capteur de tension.
  • Connectez l'Arduino Nano à un ordinateur à l'aide d'un câble USB.
  • Ouvrez l'Arduino IDE et sélectionnez le bon modèle et le bon port.
  • Copiez le code et ouvrez-le dans l'Arduino IDE.
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour transférer le code vers l'Arduino Nano.
  • Testez en mesurant 5 volts et 3,3 volts sur l'Arduino Nano.
  • Vérifiez les résultats 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  

Vous pourriez observer que le résultat de la mesure est incorrect ou significativement différent de la valeur réelle. Ce n'est pas la faute du module capteur de tension. La valeur mesurée peut dériver car la référence de tension par défaut est de 5V, ce qui peut être instable et dépendant de l'alimentation. Voici quelques solutions pour résoudre ce problème :

  • Assurez-vous que l'alimentation électrique fournit une tension suffisante pour l'Arduino. Vous pouvez vérifier cela en utilisant un voltmètre pour vérifier si la broche 5V sur 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 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,3V comme indiqué dans le schéma ci-dessous.

Schéma de câblage de mesure de tension Arduino Nano

This image is created using Fritzing. Click to enlarge image

Ensuite, utilisez le code suivant :

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-measure-voltage */ #define ANALOG_IN_PIN A7 // The Arduino Nano pin connected to voltage sensor #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

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!