Description
Module Capteur de Tension / Courant 0-3A 3-25V MAX471
Le module capteur de courant et de tension MAX471 permet de mesurer les courants AC et DC jusqu’à 3A et des tensions jusqu’à 25V. Il utilise un amplificateur à effet Hall pour convertir les courants et tensions en signaux analogiques proportionnels.
Caractéristiques en détail
- Tension de fonctionnement : 3V à 36V DC
- Courant de mesure : -3A à +3A
- Sensibilité : 1V/A
- Sortie : Tension analogique proportionnelle au courant et à la tension mesurés
- Précision : ±1.5%
- Température de fonctionnement : -40°C à 85°C
- Dimensions : Compact et facile à intégrer
Fonctionnement
Le capteur MAX471 utilise un circuit intégré basé sur l’effet Hall pour mesurer le courant et la tension. Le courant à mesurer passe à travers une résistance de shunt intégrée dans le module, générant une chute de tension proportionnelle au courant. Cette chute de tension est amplifiée et convertie en une tension analogique proportionnelle au courant et à la tension mesurés.
Applications
- Surveillance de courant pour les moteurs et les systèmes de charge de batterie
- Gestion de l’alimentation pour les appareils électroniques
- Protection contre les surintensités dans les circuits
- Prototypage de robots et de machines autonomes
- Détection et mesure de courant dans les systèmes de gestion de l’énergie
Brochage
- AT : Sortie analogique pour la tension mesurée
- VT : Sortie analogique pour le courant mesuré
- GND : Masse (deux broches pour la masse)
- VIN : Entrée de tension à mesurer (via bloc terminal à vis)
- GND : Masse pour l’entrée de tension (via bloc terminal à vis)
- VOUT : Sortie de tension mesurée (via bloc terminal à vis)
- GND : Masse pour la sortie de tension (via bloc terminal à vis)
Comment l’utiliser
Pour utiliser le capteur de courant et de tension MAX471 avec un Arduino, connectez la broche VCC à l’alimentation 5V de l’Arduino, la broche GND à la masse, et les broches AT et VT à des entrées analogiques de l’Arduino.
Comment l’utiliser avec Arduino Uno
Exemple de code Arduino de base
#define CURRENT_SENSOR_PIN A0
#define VOLTAGE_SENSOR_PIN A1
void setup() {
Serial.begin(9600);
}
void loop() {
int currentSensorValue = analogRead(CURRENT_SENSOR_PIN);
int voltageSensorValue = analogRead(VOLTAGE_SENSOR_PIN);
float current = currentSensorValue * (5.0 / 1023.0); // 1V/A
float voltage = voltageSensorValue * (5.0 / 1023.0) * (36.0 / 5.0); // Calibration for 0-36V range
Serial.print("Current: ");
Serial.print(current);
Serial.print(" A, Voltage: ");
Serial.print(voltage);
Serial.println(" V");
delay(1000);
}
But du code
Ce code lit les valeurs analogiques du capteur de courant et de tension, les convertit en valeurs réelles, et les affiche sur le moniteur série.
Composants nécessaires pour le code de base
- Arduino Uno
- Module capteur de courant et de tension MAX471
- Câbles de connexion
Explication détaillée du code de base
- Initialisation : La communication série est établie à 9600 bauds.
- Lecture des données : Les valeurs analogiques des capteurs de courant et de tension sont lues et converties en valeurs réelles. La tension est calibrée pour correspondre à la plage de mesure du capteur (0-36V). Les valeurs de courant et de tension sont affichées sur le moniteur série.
Brochage détaillé des connexions du code de base
- VCC : 5V (Arduino)
- GND : GND (Arduino)
- AT : A1 (Arduino) pour la mesure de tension
- VT : A0 (Arduino) pour la mesure de courant
Exemple de code Arduino avancé pour affichage sur LCD
#include <LiquidCrystal_I2C.h>
// Constants
const float V_REF = 5.0;
const int ADC_RESOLUTION = 1023;
const float CURRENT_SENSITIVITY = 1.0; // Sensibilité du module : 1V/A
const float VOLTAGE_CALIBRATION = (36.0 / 5.0); // Calibration pour la tension mesurée
const int CURRENT_SENSOR_PIN = A0;
const int VOLTAGE_SENSOR_PIN = A1;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
void readSensorValues(int& currentSensorValue, int& voltageSensorValue) {
currentSensorValue = analogRead(CURRENT_SENSOR_PIN);
voltageSensorValue = analogRead(VOLTAGE_SENSOR_PIN);
}
float calculateCurrent(int currentSensorValue) {
return currentSensorValue * (V_REF / ADC_RESOLUTION) * CURRENT_SENSITIVITY;
}
float calculateVoltage(int voltageSensorValue) {
return voltageSensorValue * (V_REF / ADC_RESOLUTION) * VOLTAGE_CALIBRATION;
}
void displayValuesOnLCD(float current, float voltage) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Current: ");
lcd.print(current, 2); // Affiche le courant avec 2 décimales
lcd.print(" A");
lcd.setCursor(0, 1);
lcd.print("Voltage: ");
lcd.print(voltage, 2); // Affiche la tension avec 2 décimales
lcd.print(" V");
}
void displayValuesOnSerialConsole(float current, float voltage) {
Serial.print("Current: ");
Serial.print(current, 2);
Serial.print(" A, Voltage: ");
Serial.print(voltage, 2);
Serial.println(" V");
}
void loop() {
int currentSensorValue, voltageSensorValue;
readSensorValues(currentSensorValue, voltageSensorValue);
float current = calculateCurrent(currentSensorValue);
float voltage = calculateVoltage(voltageSensorValue);
displayValuesOnLCD(current, voltage);
displayValuesOnSerialConsole(current, voltage);
delay(1000);
}
But du code
Ce code affiche les valeurs de courant et de tension mesurées par le capteur MAX471 sur un écran LCD I2C.
Composants nécessaires pour le code avancé
- Arduino Uno
- Module capteur de courant et de tension MAX471
- Écran LCD I2C 1602
- Câbles de connexion
Explication détaillée du code avancé
Inclusion de la bibliothèque La première ligne du code inclut la bibliothèque LiquidCrystal_I2C.h, qui permet de communiquer avec un écran LCD utilisant le protocole I2C.
Définition des constantes Les lignes suivantes définissent des constantes utilisées dans le code :
V_REF: la tension de référence de l’Arduino, qui est de 5 volts.ADC_RESOLUTION: la résolution de la conversion analogique-numérique de l’Arduino, qui est de 1023.CURRENT_SENSITIVITY: la sensibilité du module MAX471 pour la mesure du courant, qui est de 1 volt par ampère.VOLTAGE_CALIBRATION: la calibration pour la mesure de la tension, qui est de 36 volts pour une sortie de 5 volts.
Définition des broches de connexion Les deux lignes suivantes définissent les broches de connexion du capteur de courant et du capteur de tension, qui sont connectées respectivement aux broches A0 et A1 de l’Arduino.
Fonction setup() La fonction setup() initialise l’écran LCD en appelant les méthodes begin() et backlight() de la bibliothèque LiquidCrystal_I2C. Elle initialise également la communication série à une vitesse de 9600 bauds.
Fonction readSensorValues() La fonction readSensorValues() lit les valeurs analogiques du capteur de courant et du capteur de tension à l’aide de la fonction analogRead() et les stocke dans les variables currentSensorValue et voltageSensorValue.
Fonction calculateCurrent() La fonction calculateCurrent() calcule le courant en multipliant la valeur lue par la tension de référence, en divisant par la résolution de la conversion analogique-numérique, et en multipliant par la sensibilité du module MAX471.
Fonction calculateVoltage() La fonction calculateVoltage() calcule la tension en multipliant la valeur lue par la tension de référence, en divisant par la résolution de la conversion analogique-numérique, et en multipliant par la calibration pour la mesure de la tension.
Fonction displayValuesOnLCD() La fonction displayValuesOnLCD() affiche les valeurs du courant et de la tension sur l’écran LCD. Elle efface l’écran, positionne le curseur à la ligne 0, colonne 0, et affiche le texte “Current: ” suivi de la valeur du courant avec 2 décimales. Elle répète cette opération pour la tension.
Fonction displayValuesOnSerialConsole() La fonction displayValuesOnSerialConsole() affiche les valeurs du courant et de la tension sur la console série. Elle imprime le texte “Current: ” suivi de la valeur du courant avec 2 décimales, puis le texte “Voltage: ” suivi de la valeur de la tension avec 2 décimales.
Boucle principale La boucle loop() appelle les fonctions readSensorValues(), calculateCurrent(), calculateVoltage(), displayValuesOnLCD() et displayValuesOnSerialConsole() pour lire les valeurs du capteur, les calculer, et les afficher sur l’écran LCD et la console série. Elle attend ensuite 1 seconde avant de recommencer, grâce à l’appel de la fonction delay(1000).
Mots clés: voltage, current, sensor, voltmeter, ammeter, wattmeter, Capteur de courant, MAX471, Arduino, Mesure de courant, Effet Hall, Capteur analogique, Arduino tutoriel, Module capteur.