Le module capteur de courant ACS712 5 A mesure l’intensité qui traverse un fil sans couper ce fil et sans le relier à la masse du montage : la mesure est prise par effet Hall, à l’intérieur d’un circuit intégré Allegro ACS712. La carte rend une tension analogique proportionnelle au courant, que n’importe quel microcontrôleur lit sur une entrée analogique.
C’est la version la plus sensible de la famille ACS712 : 185 mV par ampère, contre 100 mV par ampère pour la version 20 A et 66 mV par ampère pour la version 30 A. Pour tout ce qui consomme moins de cinq ampères — un petit moteur réducteur, un module radio, une bande d’éclairage, un montage sur piles ou sur batterie 18650 — c’est celle qui donne la mesure la plus fine, celle qui distingue encore quelques dizaines de milliampères.
Comment la mesure est prise
À l’intérieur du boîtier, le courant traverse un conducteur en cuivre dont la résistance est de 1,2 mΩ. Ce passage crée un champ magnétique que le capteur à effet Hall intégré transforme en tension. Le circuit de puissance et le circuit de mesure sont donc séparés : le module peut mesurer un courant sans que son électronique y soit reliée électriquement. Aucun shunt à calculer, aucune résistance de mesure à souder.
Le point à retenir pour lire correctement la sortie est que cette sortie est centrée au repos : sans courant, la broche OUT délivre la moitié de la tension d’alimentation, soit environ 2,5 V sur un module alimenté en 5 V. Un courant dans un sens fait monter cette tension, un courant dans l’autre sens la fait descendre. C’est ce qui permet de mesurer une charge et une décharge de batterie, ou les deux alternances d’un courant alternatif, avec une seule entrée analogique.
La conversion est linéaire : ici, chaque ampère décale la sortie de 185 mV. Sur la plage complète, la sortie évolue donc entre 1,575 V et 3,425 V — elle reste loin des deux tensions d’alimentation, ce qui évite l’écrêtage aux extrémités.
Caractéristiques techniques
| Circuit intégré | Allegro ACS712, variante 5 A — capteur de courant à effet Hall |
|---|---|
| Plage de mesure | ±5 A, en courant continu comme en courant alternatif |
| Sensibilité | 185 mV par ampère, à une alimentation de 5 V |
| Sortie au repos | VCC divisé par deux, soit environ 2,5 V sous 5 V |
| Résolution typique | Environ 26 mA par pas avec l’ADC 10 bits d’un Arduino Uno |
| Alimentation | 5 V continu, quelques milliampères seulement |
| Sortie | Tension analogique proportionnelle au courant, sur la broche OUT |
| Bande passante | 80 kHz, réglable vers le bas par le condensateur de la broche FILTRE |
| Temps de montée | 5 µs |
| Résistance interne | 1,2 mΩ sur le chemin de courant |
| Isolation | 2,1 kV efficaces au minimum entre le circuit de puissance et le côté logique |
| Erreur de sortie | ±1,5 % à 25 °C, réglée en usine |
| Surintensité | Le conducteur interne survit à cinq fois le courant nominal |
La mesure est ratiométrique : la sortie suit la tension d’alimentation. Une alimentation 5 V propre et stable est donc la première condition d’une mesure juste, avant même la qualité du convertisseur du microcontrôleur.
Brochage et raccordement
La carte porte deux zones bien distinctes. D’un côté, le bornier à vis deux positions, où passe le circuit de puissance : le courant à mesurer entre par une vis et ressort par l’autre. De l’autre, le connecteur trois broches de la partie logique, aux repères sérigraphiés VCC, OUT et GND.
VCC | Alimentation du module, à relier au 5 V de la carte Arduino. |
|---|---|
GND | Masse commune avec la carte. Obligatoire : sans masse commune, la tension lue n’a aucun sens. |
OUT | Sortie analogique, à relier à une entrée analogique, par exemple A0. |
Le courant à mesurer se branche en série dans le bornier, jamais en parallèle. La source arrive sur une vis du bornier, la charge est reliée à l’autre vis : le module doit être traversé, comme un ampèremètre. Un montage en parallèle mettrait la charge en court-circuit à travers le module.
Pourquoi prendre la version 5 A
Les trois modules de la famille se ressemblent, se câblent de la même manière et se lisent avec le même programme : seule la sensibilité change, et c’est elle qui décide de la finesse de la mesure. Plus la plage est large, plus chaque pas du convertisseur représente d’ampères, donc plus la mesure des petits courants devient grossière.
| Version 5 A | 185 mV par ampère — la plus fine, environ 26 mA par pas sur un Arduino Uno. C’est celle de cette page. |
|---|---|
| Version 20 A | 100 mV par ampère — environ 49 mA par pas. Voir le capteur de courant ACS712 20 A. |
| Version 30 A | 66 mV par ampère — environ 74 mA par pas, pour les fortes intensités. Voir le capteur de courant ACS712 30 A. |
La règle pratique : choisir la version dont la plage dépasse un peu le courant maximal attendu, sans viser plus large que nécessaire. Un moteur réducteur qui tire quelques centaines de milliampères, une carte alimentée par piles ou un appareil en veille se mesurent avec cette version ; au-delà de 5 A, il faut passer à la 20 A ou à la 30 A, sous peine de saturer la sortie sans aucun avertissement.
Mini-projet : ampèremètre de précision sur petit moteur
Le montage mesure le courant absorbé par un moteur réducteur, l’affiche sur un écran et compare la valeur à un seuil. Comme la consommation reste faible, cette version du capteur permet de voir bouger la mesure au dixième d’ampère près — ce que les versions 20 A et 30 A ne permettent plus.
Ce qu’il faut
| La mesure | Le module ACS712 5 A — celui de cette page |
|---|---|
| Le cerveau | Uno R3 + câble USB |
| L’affichage | Afficheur LCD 16×02 I2C, pour lire la mesure sans ordinateur |
| La charge | Moteur réducteur à courant continu, ou une petite pompe, ou une résistance de puissance |
| Le support | Plaque d’essai 400 points |
| Les liaisons | 10 × fil mâle-mâle 10 cm, pour relier la plaque à la carte |
| Le contrôle | Multimètre DT-9205, pour relever la tension de repos et confronter les mesures |
Le câblage
Module VCC | → Arduino 5V |
|---|---|
Module GND | → Arduino GND |
Module OUT | → Arduino A0 |
| Alimentation du moteur (plus) | → première vis du bornier du module |
| Seconde vis du bornier | → borne plus du moteur |
| Borne moins du moteur | → masse de l’alimentation du moteur |
Deux précautions de masse valent d’être dites. La masse du module et celle de l’Arduino doivent être reliées, puisque la sortie du capteur se mesure par rapport à la masse. Et si le moteur est alimenté par une source distincte, mieux vaut alimenter l’Arduino à part : son régulateur n’a pas à fournir le courant de la charge.
Le programme
Le programme relève d’abord la tension de repos du module pendant trois secondes, puis l’utilise comme référence pour toutes les mesures suivantes. C’est le geste qui fait la différence entre une estimation et une vraie mesure : dans cette version du capteur, une erreur de 20 mV sur le repos se traduit par plus de 100 mA d’erreur sur le résultat.
/*
* Amperemetre a module ACS712 5 A
* Carte : Arduino Uno R3, sortie analogique du module sur A0
*
* Cablage : module VCC - 5V, GND - GND, OUT - A0
* La charge traverse le bornier a vis du module.
* Laissez la charge hors tension pendant la mise sous tension de la carte :
* la tension de repos relevee au demarrage sert de reference a tout le reste.
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
const int BROCHE_COURANT = A0;
const float SENSIBILITE = 0.185; // 185 mV par ampere (version 5 A)
const float SEUIL_ALERTE = 1.500; // amperes au-dela desquels on signale
const int ECHANTILLONS = 200;
float tensionRepos = 2.500; // remplacee par la mesure reelle au demarrage
// Tension moyenne lue sur la sortie du module, en volts.
float lireTension() {
long somme = 0;
for (int i = 0; i != ECHANTILLONS; i++) {
somme += analogRead(BROCHE_COURANT);
delay(2);
}
float moyenne = somme / (float)ECHANTILLONS;
return moyenne * 5.0 / 1023.0;
}
// Releve du point de repos : aucun courant ne doit circuler dans ce moment.
float calibrerRepos() {
long somme = 0;
for (int i = 0; i != 20; i++) {
somme += (long)(lireTension() * 1000.0); // accumulation en millivolts
delay(100);
}
return (somme / 20.0) / 1000.0;
}
void setup() {
Serial.begin(9600);
Serial.println("Calibration du point de repos, moteur hors tension...");
tensionRepos = calibrerRepos();
Serial.print("Tension de repos mesuree : ");
Serial.print(tensionRepos, 3);
Serial.println(" V");
}
void loop() {
float tension = lireTension();
float courant = (tension - tensionRepos) / SENSIBILITE;
Serial.print("Tension : ");
Serial.print(tension, 3);
Serial.print(" V Courant : ");
Serial.print(courant, 3);
Serial.print(" A");
if (courant > SEUIL_ALERTE) {
Serial.print(" COURANT ELEVE");
}
Serial.println();
delay(200);
}Comment ça marche
analogRead()rend un nombre entre 0 et 1023 pour une tension comprise entre 0 et 5 V : la conversion en volts consiste à multiplier la valeur lue par 5 et à la diviser par 1023.- La calibration au démarrage remplace la valeur théorique de 2,5 V par la tension réellement lue sur cette carte. C’est indispensable sur la version 5 A : la sensibilité est forte, donc toute imprécision du point de repos se retrouve multipliée dans le résultat.
- La division par
SENSIBILITEtraduit l’écart en volts en ampères. Le résultat est signé : négatif quand le courant circule dans l’autre sens. Un montage qui ne mesure que des courants positifs peut ignorer ce signe ; un montage sur batterie en a besoin pour distinguer charge et décharge. - La moyenne de deux cents lectures lisse le bruit électrique du moteur. En contrepartie, chaque mesure prend un peu moins d’une demi-seconde : c’est bien assez pour surveiller une consommation, et pas du tout pour observer une commutation rapide.
- Le seuil d’alerte est une constante du programme. Sur un montage réel, cette valeur pilote volontiers un relais qui coupe l’alimentation de la charge, ce qui protège le moteur contre un blocage.
Pour aller plus loin
- Mesurer un courant alternatif. La sortie suit les deux alternances du réseau à 50 Hz. La moyenne d’un tel signal étant nulle, c’est la valeur efficace qu’il faut calculer : échantillonner sur plusieurs périodes et prendre la racine de la moyenne des carrés.
- Compter l’énergie. En multipliant le courant par la tension de la batterie et en intégrant dans le temps, le montage devient un compteur de consommation — le calcul classique des stations solaires et des bancs d’autonomie.
- Mesurer deux lignes à la fois. Deux modules identiques, l’un sur
A0et l’autre surA1, suffisent à surveiller séparément la consommation de deux appareils ou l’entrée et la sortie d’un régulateur. - Assainir la mesure. Un condensateur de filtrage entre
OUTet la masse, ou un condensateur sur la broche FILTRE, réduit le bruit sur les montages où le moteur est proche du capteur. Le prix à payer est un temps de réponse plus lent.
Applications
- Surveillance d’un petit moteur — mesurer le courant absorbé dit tout de l’état du moteur : un pic au démarrage, une consommation qui grimpe avec l’usure, une valeur anormale quand la mécanique se bloque.
- Autonomie sur batterie ou piles — placé dans la ligne d’une batterie ou d’un support de piles, le module distingue le courant de charge du courant de décharge et permet de calculer ce qu’il reste disponible.
- Mesure de veille — c’est ici que la version 5 A prend l’avantage : la consommation d’un appareil en veille, d’un module radio ou d’un capteur endormi se compte en milliampères, une plage où les versions 20 A et 30 A ne distinguent presque plus rien.
- Détection de fonctionnement — un appareil qui consomme signale qu’il fonctionne : le passage d’un courant reconnaît la mise en marche d’une pompe, d’un éclairage ou d’un appareil chauffant.
- Protection par seuil — associé à un relais, le dépassement de courant coupe l’alimentation de la charge : le montage ne surveille plus, il protège.
Points d’attention
- La plage affichée est une plage de mesure, pas une protection. Le module ne coupe rien : un fusible adapté reste nécessaire sur un montage réel.
- Ne pas dépasser les cinq ampères sur cette version. Au-delà, la sortie sature à ses limites et la mesure plafonne sans avertissement. Le conducteur interne survit, mais la valeur affichée devient fausse.
- Le bornier se câble en série, jamais en parallèle. Le module est traversé par le courant de la charge, comme un ampèremètre : c’est le principal risque de montage.
- La sortie dépend de l’alimentation. Une alimentation 5 V instable fait varier la tension de repos, donc la mesure. Une alimentation soignée vaut mieux qu’un étage d’amplification ajouté.
- Sur le secteur, prudence. Mesurer le courant d’un appareil relié au secteur est possible techniquement, mais l’isolation du module ne dispense pas des règles de sécurité : ce travail ne se confie pas à un montage de plaque d’essai.
Questions fréquentes
Pourquoi la sortie n’est-elle pas à zéro quand il n’y a pas de courant ?
C’est le fonctionnement normal du capteur : la sortie est centrée autour de la moitié de l’alimentation, à environ 2,5 V, pour pouvoir mesurer les courants dans les deux sens. Cette tension de repos n’est pas un défaut, c’est la valeur à retrancher dans le calcul — d’où l’intérêt de la relever sur chaque exemplaire.
Le module chauffe-t-il au passage du courant ?
Très peu : la résistance du chemin de courant est de 1,2 mΩ, soit une trentaine de milliwatts dissipés à cinq ampères. Une chaleur nette sur le bornier signale plutôt un serrage insuffisant des vis qu’un défaut du composant.
Peut-on mesurer un courant alternatif avec ce module ?
Oui, la sortie suit les deux alternances. Il faut en revanche traiter le signal correctement : la valeur moyenne d’un courant alternatif est nulle, et c’est la valeur efficace qui intéresse. Mesurez par échantillons sur plusieurs périodes et calculez une moyenne quadratique.
Quelle différence avec une résistance shunt ?
Un shunt mesure la chute de tension à ses bornes : il est peu coûteux et très précis, mais il dissipe une puissance réelle, n’isole pas le circuit de mesure et demande un amplificateur adapté aux faibles chutes de tension. Le capteur à effet Hall, lui, isole le circuit de puissance, dissipe presque rien et se câble en trois fils — en contrepartie, sa précision est un peu moindre.
Peut-on l’alimenter en 3,3 V ?
Le composant est prévu pour 5 V. Sous 3,3 V, la tension de repos descend à environ 1,65 V et la sortie devient plus serrée autour de cette valeur : un microcontrôleur en 3,3 V peut la lire sans risque, mais la formule de conversion doit être adaptée, puisque la sortie est proportionnelle à l’alimentation.
La mesure est-elle précise ?
L’erreur de sortie annoncée est de plus ou moins 1,5 % à 25 °C, et la résolution d’un Arduino Uno sur cette version tourne autour de 26 mA par pas. Sur un montage soigné, avec une alimentation stable et un point de repos relevé au multimètre, la mesure devient fiable à quelques dizaines de milliampères près : largement de quoi surveiller un petit moteur ou une consommation de veille.
À combiner avec
Ce capteur sert sur un banc de mesure complet. Côté alimentation, une alimentation 5 V 2 A donne au module une référence stable, et un convertisseur DC-DC ajustable LM2596 permet de faire varier la tension de la charge, donc son courant, sans rien recâbler. Le support d’essai et les fils de liaison cités plus haut rendent le montage possible sans soudure, tandis qu’un multimètre reste l’outil qui valide la calibration. Pour transformer la surveillance en protection, le module 1 relais 5 V coupe l’alimentation de la charge dès que le seuil est franchi. Et si votre application dépasse les cinq ampères, les versions 20 A et 30 A de la même famille prennent le relais, avec une résolution plus large.











