Description
Module Capteur de Courant 30A ACS712
Le module capteur de courant ACS712 est utilisé pour mesurer les courants AC et DC jusqu’à 30A dans diverses applications électroniques. Il utilise l’effet Hall pour convertir le courant passant à travers un conducteur en un signal de tension proportionnel.
Caractéristiques en détail
- Tension de fonctionnement : 4.5V à 5.5V DC
- Courant de mesure : -30A à +30A
- Sensibilité : 66 mV/A
- Sortie : Tension analogique proportionnelle au courant
- Isolation : 2.1 kV RMS isolation du conducteur
- Précision : ±1.5%
- Température de fonctionnement : -40°C à 85°C
- Dimensions : Compact et facile à intégrer
Fonctionnement
Le capteur de courant ACS712 utilise un circuit intégré basé sur l’effet Hall pour mesurer le courant. Le courant à mesurer passe à travers une piste de cuivre intégrée dans le module, générant un champ magnétique proportionnel au courant. Ce champ est détecté par le capteur à effet Hall et converti en une tension analogique proportionnelle au courant mesuré.
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
- VCC : Alimentation (4.5V à 5.5V)
- GND : Masse
- OUT : Sortie analogique proportionnelle au courant mesuré
Comment l’utiliser
Pour utiliser le capteur de courant ACS712 avec un Arduino, connectez la broche VCC à l’alimentation 5V de l’Arduino, la broche GND à la masse, et la broche OUT à une entrée analogique de l’Arduino.
Comment l’utiliser avec Arduino Uno
Exemple de code Arduino de base
#define CURRENT_SENSOR_PIN A0
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(CURRENT_SENSOR_PIN);
float analogVoltage = sensorValue * (5.0 / 1023.0);
float current = (analogVoltage - 2.5) / 0.066; // Sensibilité de 66 mV/A pour 30A
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
delay(1000);
}
But du code
Ce code lit les valeurs analogiques du capteur de courant et les convertit en courant en utilisant la formule appropriée. Les valeurs de courant sont affichées sur le moniteur série.
Composants nécessaires pour le code de base
- Arduino Uno
- Module capteur de courant ACS712
- 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 du capteur sont lues et converties en tension. La tension est ensuite convertie en courant en utilisant la sensibilité du capteur (66 mV/A pour la version 30A). Les valeurs de courant sont affichées sur le moniteur série.
Brochage détaillé des connexions du code de base
- VCC : 5V (Arduino)
- GND : GND (Arduino)
- OUT : A0 (Arduino)
Exemple de code Arduino avancé pour affichage sur LCD
#include <LiquidCrystal_I2C.h>
// Broches de connexion
#define CURRENT_SENSOR_PIN A0
// Constantes
const float V_REF = 5.0;
const int ADC_RESOLUTION = 1023;
const float ZERO_CURRENT_VOLTAGE = 2.5;
const float SENSITIVITY = 0.066; // Sensibilité du module 30A : 66 mV/A
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(CURRENT_SENSOR_PIN);
float analogVoltage = sensorValue * (V_REF / ADC_RESOLUTION);
float current = (analogVoltage - ZERO_CURRENT_VOLTAGE) / SENSITIVITY;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Current: ");
lcd.print(current, 2); // Affiche le courant avec 2 décimales
lcd.print(" A");
Serial.print("Current: ");
Serial.print(current, 2);
Serial.println(" A");
delay(1000);
}
But du code
Ce code affiche les valeurs de courant mesurées par le capteur ACS712 sur un écran LCD I2C.
Composants nécessaires pour le code avancé
- Arduino Uno
- Module capteur de courant ACS712
- Écran LCD I2C 1602
- Câbles de connexion
Explication détaillée du code avancé
- Inclusion de la bibliothèque : La bibliothèque LiquidCrystal_I2C.h est incluse pour permettre la communication avec l’écran LCD utilisant le protocole I2C.
- Définition des broches de connexion : La broche de connexion du capteur de courant est définie comme A0.
- Définition des constantes :
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.ZERO_CURRENT_VOLTAGE: la tension de sortie du capteur de courant lorsque le courant est nul, qui est de 2,5 volts.SENSITIVITY: la sensibilité du capteur de courant, qui est de 0,066 volt par ampère pour le capteur de 30A.
- Initialisation de l’écran LCD : La fonction
setup()initialise l’écran LCD en appelant les méthodesbegin()etbacklight(). Elle initialise également la communication série à 9600 bauds. - Boucle principale :
- La valeur analogique du capteur de courant est lue à l’aide de la fonction
analogRead()et stockée dans la variablesensorValue. - La tension analogique est calculée en multipliant la valeur lue par la tension de référence et en divisant par la résolution de la conversion analogique-numérique.
- Le courant est calculé en soustrayant la tension de sortie du capteur de courant lorsque le courant est nul, puis en divisant par la sensibilité du capteur de courant.
- L’écran LCD est effacé et le curseur est positionné à la ligne 0, colonne 0.
- Le texte “Current: ” est affiché sur l’écran LCD, suivi de la valeur du courant avec 2 décimales.
- Le texte ” A” est affiché pour indiquer l’unité du courant.
- La valeur du courant est également envoyée à la console série avec 2 décimales.
- La boucle attend 1 seconde avant de recommencer, grâce à l’appel de la fonction
delay(1000).
- La valeur analogique du capteur de courant est lue à l’aide de la fonction
Installation de Drivers/bibliothèques
Aucune bibliothèque spécifique n’est nécessaire pour utiliser le capteur de courant ACS712 avec Arduino. Pour l’écran LCD, installez la bibliothèque LiquidCrystal_I2C via le gestionnaire de bibliothèques de l’IDE Arduino.