Arduino, Tutoriels

Comment utiliser ACS712 capteur de courant Arduino

Acs712 Avec Arduino

Description du ACS712 capteur de courant arduino

Capteur De Courant Acs712 30A
Capteur de courant ACS712 30A Maroc

ACS712 est un capteur de courant qui mesure l’intensité du courant électrique en utilisant la technique de la conversion de courant en tension. Il convertit le courant alternatif ou continu en un signal de tension proportionnel à l’intensité du courant. Il est généralement utilisé pour mesurer l’intensité du courant dans les systèmes électroniques, tels que les onduleurs, les chargeurs de batteries, les panneaux solaires, les systèmes de surveillance de la consommation d’énergie, etc. Il est disponible en différentes plages de courant, allant de 5A à 30A.

Les composent du ACS712 capteur de courant arduino

Interfacing Acs712 Current Sensor With Arduino Acs712 Pins
ComposantDescription
Broche VccAlimentation en courant électrique
Broche GNDMise à la terre
Broche OutputÉmission d’une tension analogique proportionnelle au courant mesuré
Wire InEntrée pour brancher le fil sur lequel le courant sera mesuré
Wire OutSortie pour la tension proportionnelle au courant mesuré

Les applications du ACS712

Le capteur de courant ACS712 peut être utilisé dans de nombreuses applications, voici quelques exemples :

  1. Mesure de consommation d’énergie : Le capteur est applicable pour la mesure la consommation d’énergie d’un appareil électronique ou d’une lampe en utilisant la formule de puissance P = VI.
  2. Surveillance de systèmes électriques : Le capteur peut être utilisé pour surveiller les courants alternatifs dans les systèmes électriques et alerter en cas de surcharge ou de court-circuit.
  3. Systèmes de charge de batteries : Le ACS712 peut mesurer le courant de charge d’une batterie pour optimiser la gestion de l’énergie et prolonger la durée de vie de la batterie.
  4. Alimentation à distance : La mesure du courant d’une source d’alimentation à distance pour surveiller la consommation d’énergie et détecter les problèmes électriques.
  5. Robotique : Le capteur peut être utilisé pour mesurer les courants de moteurs pour une meilleure régulation de la vitesse et de la direction des robots.
  6. Contrôle de processus : Il est possible d’utiliser le capteur dans les processus industriels pour une meilleure surveillance et une meilleure régulation de la production.
  7. Automobile : Il peut être utiliser pour mesurer les courants dans les systèmes électriques de véhicules pour détecter les problèmes et améliorer la sécurité routière.
  8. Énergie renouvelable : Le capteur peut être appliquer pour mesurer les courants dans les systèmes d’énergie solaire ou éolienne pour une meilleure surveillance et une meilleure régulation de la production d’énergie.

Utilisation du ACS712 capteur de courant avec Arduino

Utilisation Du Acs712 Capteur De Courant Avec Arduino
ACS712 avec Arduino
  1. Branchement: Branchez le capteur de courant ACS712 à votre Arduino en connectant la broche Vcc à la broche 5V de l’Arduino, la broche GND à la broche GND de l’Arduino et la broche OUT à une broche analogique (par exemple, A0) de l’Arduino.
  2. Téléchargez la bibliothèque ACS712 pour Arduino à partir de https://github.com/vinayak-ghadi/ACS712-Arduino-Library ou en utilisant l’IDE Arduino en allant dans Outils > Gérer les bibliothèques > Recherchez “ACS712” > Installer.
  3. Créez un nouveau sketch dans l’IDE Arduino et incluez la bibliothèque ACS712 en ajoutant #include <ACS712.h> au début du code.
  4. Initialisez le capteur en déclarant un objet de la classe ACS712 et en spécifiant la broche analogique utilisée pour connecter la broche OUT du capteur. Par exemple : ACS712 mySensor(A0);
  5. Utilisez la fonction getCurrentAC() pour mesurer le courant. Cette fonction renvoie une valeur en ampères. Par exemple : float current = mySensor.getCurrentAC();
  6. Affichez la valeur de courant mesurée en utilisant la fonction Serial.println(). Par exemple : Serial.println(current);
  7. Téléversez le code sur votre Arduino et ouvrez la fenêtre de monitoring série pour voir les valeurs de courant mesurées.

Voici un exemple de code complet utilisant le capteur ACS712 avec Arduino :

#include <ACS712.h>

ACS712 mySensor(A0);

void setup() {
    Serial.begin(9600);
}

void loop() {
    float current = mySensor.getCurrentAC();
    Serial.println(current);
    delay(1000);
}

Notez que vous pouvez utiliser la fonction setSensitivity() pour définir la sensibilité du capteur en utilisant une des constantes prédéfinies (ACS712_05A, ACS712_20A, ACS712_30A).

Il est important de noter que cette exemple de code donne la valeur en Ampère AC, si vous voulez mesurer le courant DC il faudra utiliser une autre fonction getCurrentDC()

Un exemple de projet qui utilise le capteur de courant ACS712

Vous pourrait utiliser l’ACS712 être un système de surveillance de la consommation électrique pour une maison ou un appartement. Le système pourrait utiliser le capteur de courant ACS712 pour mesurer la consommation électrique à différents endroits de la maison (par exemple, près de l’interrupteur principal, de la cuisine, de la salle de bain, etc.). L’Arduino pourrait ensuite utiliser ces informations pour calculer la consommation totale d’énergie et la communiquer à un écran LCD ou à une application mobile.

Voici un exemple de code pour un tel projet:

const int sensorPin = A0;    // Broche analogique utilisée pour lire le capteur
const float VCC = 5.0;       // Tension d'alimentation du capteur (en volts)
const float sensitivity = 185.0; // Sensibilité du capteur (en mV/A)
unsigned long previousMillis = 0;  // Pour stocker le temps précédent
const long interval = 1000;  // Intervalle de temps entre chaque mesure (en ms)
float totalCurrent = 0;  // Pour stocker la consommation totale

void setup() {
  Serial.begin(9600);  // Initialisation de la communication série
}

void loop() {
  unsigned long currentMillis = millis();  // Lecture de l'heure actuelle
  if (currentMillis - previousMillis >= interval) {  // Vérifie si l'intervalle de temps est écoulé
    previousMillis = currentMillis;  // Mise à jour de l'heure précédente
    int sensorValue = analogRead(sensorPin);  // Lecture de la valeur analogique
    float current = (sensorValue * VCC / 1024.0 - VCC / 2.0) / sensitivity;
    totalCurrent += current;  // Ajout de la consommation actuelle au total
    Serial.print("Consommation totale: ");
    Serial.print(totalCurrent);  // Affichage de la consommation totale dans la console série
    Serial.println(" A");
  }
}

Ce code définit d’abord quelques constantes comme la broche analogique utilisée pour lire le capteur (sensorPin), la tension d’alimentation du capteur (VCC) et la sensibilité du capteur (sensitivity), qui est utilisée pour convertir la valeur analogique lue en un courant. Il utilise également des variables pour stocker le temps précédent (previousMillis), l’intervalle de temps entre chaque mesure (interval) et la consommation totale (totalCurrent).

La fonction setup() initialise la communication série pour permettre l’affichage des données sur le moniteur série. La fonction loop() est exécutée en boucle. Il lit l’heure actuelle, puis vérifie si l’intervalle de temps défini est écoulé en comparant l’heure actuelle avec l’heure précédente. Si c’est le cas, il lit la valeur analogique de la broche sensorPin, convertit cette valeur en courant en utilisant la sensibilité du capteur et l’ajoute à la consommation totale. Il affiche la consommation totale sur le moniteur série.

Ce code permet de mesurer la consommation électrique de manière continue tous les intervalle de temps défini et de stocker la consommation totale pour pouvoir la consulter par la suite.

Note: Ce projet de base peut être amélioré en ajoutant des fonctionnalités telles qu’une interface utilisateur pour afficher les données en temps réel sur un écran LCD, la communication avec une application mobile pour suivre les données à distance, ou l’intégration d’un système de gestion de l’énergie pour automatiser les appareils électroniques en fonction de la consommation actuelle.

video :

Quelque lien pour plus d’informations

Pour savoir plus sur l’utilisation d’afficheur LCD avec Arduino : https://www.moussasoft.com/afficheur-lcd-arduino

Video descriptif du tutoriel ACS712 avec Arduino : https://www.youtube.com/embed/6O_1YaG4kog

La fiche technique du ACS712 : https://www.sparkfun.com/datasheets/BreakoutBoards/0712.pdf

Si vous d’acheter les composants nécessaires :

Arduino Uno : https://www.moussasoft.com/produit/arduino-uno-r3-usb-cable

ACS712 capteur de courant :

https://www.moussasoft.com/produit/capteur-de-courant-acs712-30a

https://www.moussasoft.com/produit/capteur-de-courant-5a-module-acs712

https://www.moussasoft.com/produit/capteur-de-courant-acs712_20a