SOMMAIRE ►
Le capteur de courant pour Arduino est basé sur l’effet Hall et présente une relation directe entre le courant mesuré et le signal de sortie. Les modules de détection de courant ACS712 / TA12-100 sont utilisés dans les projets nécessitant une protection contre les surcharges, par exemple dans la fabrication de chargeurs et de batteries externes (power bank). Voyons comment travailler avec les capteurs de courant ACS712 / TA12-100 et Arduino.
Pour cette activité, nous aurons besoin:
- Arduino Uno / Arduino Nano / Arduino Mega
- capteur de courant ACS712 / TA12-100
- alimentation 12 Volts
- une charge, par exemple, lampe 12 V
- fils de connexion
- librarie TroykaCurrent.h
Matériel supplémentaire sur ce sujet:
Arduino capteur de courant ACS712 datasheet, pinout

Caractéristiques capteur de courant ACS712:
- Tension d’alimentation: 5 V
- Consommation de courant: 11 mA max
- Type d’interface: numérique
- Tension: DC et AC
- Mesure du courant: 5 à 30 ampères
- Sensibilité: 66 mV/A à 185 mV/A
- Température de fonctionnement: -40°C à +85°C
- Taille de la carte du module: 31 x 13 mm
ACS713 et ACS712 consistent en un capteur linéaire basé sur l’effet Hall avec un conducteur en cuivre. Un courant génère un champ magnétique dans le conducteur en cuivre, qui est capté par le capteur et converti en tension. L’intensité du champ magnétique varie linéairement avec l’intensité du courant. La précision est assurée par une puce située sur le module et réglée en usine. Le capteur numérique fonctionne avec des courants continus et alternatifs.
Fonctionnement capteur de courant TA12-100 Arduino

Caractéristiques
- Tension d’alimentation: 5 V
- Consommation de courant: 5 mA max
- Type d’interface: analogique
- Tension: DC
- Courant de mesure: jusqu’à 5 ampères
- Sensibilité: inconnue
- Température de fonctionnement: -55°C à +85°C
- Taille de la carte du module: 30 x 24 mm
Le capteur de courant TA12-100 pour la carte Arduino fonctionne selon un principe différent. Le module mesure la tension tombant sur un transistor de 200 ohms, situé à la sortie du transformateur. Le capteur TA12-100 convertit la tension sur la résistance en un signal analogique en appliquant la loi d’Ohm (I = E / R). Le rapport du transformateur est de 1000:1 et pour obtenir la valeur du courant, les données doivent être multipliées par 1000.
Comment brancher sensor ACS712 Arduino Uno

Les ACS712 et ACS713 sont des capteurs de courant analogiques, trois fils sont nécessaires pour la connexion. Deux pour l’alimentation – GND et 5V et un fil pour le signal. Le capteur est connecté dans l’espace entre l’alimentation et la charge. La bibliothèque TroykaCurrent.h est utilisée (téléchargez-la ici), qui convertit les valeurs du signal analogique en milliampères. Assemblez le circuit, installez la bibliothèque et chargez le programme sur la carte.
Programme Arduino pour mesure du courant avec ACS712
#include "TroykaCurrent.h" ACS712 sensorCurrent(A1); // broche de connexion du capteur void setup() { Serial.begin(9600); } void loop() { // sortie des données du capteur de courant Serial.print("I = "); Serial.print(sensorCurrent.readCurrentDC()); Serial.println(" A"); delay(1000); }
Explication du code mesure du courant avec ACS712:
- pour le courant alternatif, utilisez sensorCurrent.readCurrentAC();
- si les valeurs sont négatives, intervertissez les fils sur les bornes du module.
Comment brancher sensor TA12-100 Arduino

Le capteur de courant TA12-100 est uniquement utilisé pour mesurer le courant alternatif et est analogique. Vous aurez besoin de deux fils pour vous connecter à la carte (bien qu’il y ait trois broches sur le module) – un fil se connecte à GND et l’autre à l’entrée analogique. Le fil où vous voulez mesurer le courant doit passer par la bobine du module. Assemblez le circuit comme indiqué dans l’image ci-dessus et chargez le programme suivant.
Programme Arduino pour mesure du courant avec TA12-100
#define TA12 A1 // broche de connexion du capteur float nVPP; float nCurrThruResistorPP; float nCurrThruResistorRMS; float nCurrentThruWire; void setup() { Serial.begin(9600); pinMode(TA12, INPUT); } void loop() { // trouver la tension aux bornes de la résistance nVPP = getVPP(); // calculer le courant sur la résistance selon la loi d'Ohm nCurrThruResistorPP = (nVPP / 200.0) * 1000.0; // сonvertir la valeur en valeur RMS nCurrThruResistorRMS = nCurrThruResistorPP * 0.707; nCurrentThruWire = nCurrThruResistorRMS * 1000; // afficher les données sur le moniteur du port Serial.print("Volts Peak : "); Serial.println(nVPP, 3); Serial.print("Current Through Resistor (Peak) : "); Serial.print(nCurrThruResistorPP, 3); Serial.println(" mA Peak to Peak"); Serial.print("Current Through Resistor (RMS) : "); Serial.print(nCurrThruResistorRMS, 3); Serial.println(" mA RMS"); Serial.print("Current Through Wire : "); Serial.print(nCurrentThruWire, 3); Serial.println(" mA RMS"); Serial.println(); } // valeur de crête en une seconde float getVPP() { float result; int readValue; int maxValue = 0; uint32_t start_time = millis(); while ((millis() - start_time) < 1000) { readValue = analogRead(TA12); if (readValue > maxValue) { maxValue = readValue; } } result = (maxValue * 5.0) / 1024.0; return result; }
Explication du code mesure du courant avec TA12-100:
- rapport de conversion 1000:1, le courant est donc multiplié par 1000;
- le convertisseur analogique-numérique convertit la tension de l’entrée A1 de la gamme 0-5 V à la gamme 0-1024.
Conclusion. Le capteur de courant Arduino présenté dans cet article, équipé de la puce ACS712 / ACS713, fournit une tension de sortie analogique comprise entre 0 et 5V, en fonction du courant mesuré. Monté sur une platine avec des connexions externes, il est idéal pour les projets de Arduino Micro. Le capteur est produit en trois versions avec des plages de mesure différentes de 5A, 20A et 30A, mais avec la même fonctionnalité.








MERCI BEAUCOUP POUR CET ENSEIGNEMENT GRATUIT