Le module capteur de courant ACS712 20 A mesure l’intensité qui traverse un fil, sans couper ce fil et sans le brancher à la masse : 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.
Ce module convient à la surveillance d’un moteur, d’une batterie, d’un panneau solaire ou d’une alimentation de banc : il mesure jusqu’à 20 ampères dans les deux sens, en courant continu comme en courant alternatif. C’est la version intermédiaire de la famille ACS712, entre le 5 A (plus sensible, pour les petits courants) et le 30 A (plage plus large, moins de précision).
Comment le capteur mesure un courant
À l’intérieur du boîtier, le courant traverse un conducteur en cuivre de 1,2 mΩ. Ce passage crée un champ magnétique que le capteur à effet Hall intégré transforme en tension. Aucun shunt à calculer, aucune résistance de mesure à souder : la sortie du module est déjà mise en forme par son amplificateur.
Le point essentiel à retenir est que la 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 pour 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 une alternance positive puis négative, avec un seul module et une seule entrée analogique.
La conversion est linéaire et donnée par le constructeur : pour la variante 20 A, il faut 100 mV par ampère. Autrement dit, chaque ampère fait varier la sortie d’un dixième de volt autour des 2,5 V du repos.
Caractéristiques techniques
| Circuit intégré | Allegro ACS712, variante 20 A — capteur de courant à effet Hall |
|---|---|
| Plage de mesure | ±20 A, en courant continu et en courant alternatif |
| Sensibilité | 100 mV par ampère, à une alimentation de 5 V |
| Sortie au repos | VCC divisé par deux, soit environ 2,5 V sous 5 V |
| 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, en sortie d’usine |
| Surintensité admissible | 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é de l’ADC du microcontrôleur. La résolution utile dépend de cet ADC : sur un Arduino Uno, avec une référence de 5 V et un convertisseur de 10 bits, on obtient environ 4,9 mV par pas, soit près de 49 mA de résolution sur la variante 20 A.
Brochage et raccordement
La carte porte deux zones bien distinctes. À gauche, le bornier à vis deux positions, où passe le circuit de puissance : le courant à mesurer entre par une vis et ressort par l’autre. À droite, 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 de courant 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.
Choisir le bon calibre dans la famille ACS712
Les trois modules se ressemblent et se câblent de la même manière ; c’est la sensibilité qui les distingue. Plus la plage est large, plus la mesure des petits courants devient grossière, puisque chaque pas de l’ADC représente alors davantage d’ampères.
| Module 5 A | 185 mV par ampère — le plus fin des trois, pour les petits montages, mais plafonné à 5 A. Voir le capteur de courant ACS712 5 A. |
|---|---|
| Module 20 A | 100 mV par ampère — celui de cette page, le compromis courant pour un moteur ou une batterie. |
| Module 30 A | 66 mV par ampère — pour les fortes intensités, avec une résolution plus grossière. Voir le capteur de courant ACS712 30 A. |
La règle pratique : choisir la variante dont la plage dépasse un peu le courant maximal attendu, sans viser trop large inutilement. Pour un moteur qui tire 3 A au blocage, le module 5 A convient ; pour un moteur de 10 A ou une batterie de 12 V cyclée à 15 A, c’est le 20 A ; au-delà de 20 A, prenez le 30 A.
Mini-projet : un ampèremètre avec seuil d’alerte
Le montage mesure le courant absorbé par un moteur à courant continu, l’affiche en continu et signale en clair le dépassement d’un seuil. C’est le banc de mesure le plus utile autour de l’impression 3D, de la robotique et des montages sur batterie.
Ce qu’il faut
| La mesure | Le module ACS712 20 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 à surveiller | Un moteur à courant continu, une pompe ou une résistance de puissance |
| Le support | Plaque d’essai 830 points |
| Les liaisons | 10 × fil mâle-femelle, pour partir des broches du module vers la plaque |
Le câblage
Module VCC | → Arduino 5V |
|---|---|
Module GND | → Arduino GND |
Module OUT | → Arduino A0 |
| Alimentation de la charge (plus) | → première vis du bornier du module |
| Seconde vis du bornier | → borne plus du moteur |
| Borne moins du moteur | → masse de l’alimentation de la charge |
Deux précautions de masse valent la peine 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 la charge est alimentée par une source séparée allant au-delà d’une douzaine de volts, mieux vaut alimenter l’Arduino à part : son régulateur n’a pas à fournir le courant du moteur.
Le programme
Le programme moyenne cinq cents lectures pour lisser le bruit de la mesure, convertit la tension en ampères, puis compare le résultat à un seuil réglable. Avant de téléverser, mesurez la tension réelle de la sortie au repos avec un multimètre et reportez-la dans la constante prévue : c’est le geste qui fait passer la mesure de l’approximation à la précision.
/*
* Amperemetre a module ACS712 20 A
* Carte : Arduino Uno R3, sortie analogique sur A0
*
* Cablage : module VCC - 5V, GND - GND, OUT - A0
* La charge traverse le bornier a vis du module.
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
const int BROCHE_COURANT = A0;
const float SENSIBILITE = 0.100; // 100 mV par ampere (variante 20 A)
const float TENSION_REPOS = 2.500; // sortie relevee au repos, en volts
const float SEUIL_ALERTE = 5.000; // amperes au-dela desquels on alerte
const int ECHANTILLONS = 500;
void setup() {
Serial.begin(9600);
Serial.println("Amperemetre ACS712 20 A pret");
}
// 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(1);
}
float moyenne = somme / (float)ECHANTILLONS;
// L'Arduino rend une valeur de 0 a 1023 pour 0 a 5 volts.
return moyenne * 5.0 / 1023.0;
}
void loop() {
float tension = lireTension();
// Ecart au repos, divise par la sensibilite : c'est le courant en amperes.
float courant = (tension - TENSION_REPOS) / SENSIBILITE;
Serial.print("Tension : ");
Serial.print(tension, 3);
Serial.print(" V Courant : ");
Serial.print(courant, 2);
Serial.print(" A");
if (courant > SEUIL_ALERTE) {
Serial.print(" SEUIL DEPASSE");
}
Serial.println();
delay(500);
}Comment ça marche
analogRead()rend un nombre entre 0 et 1023 pour une tension comprise entre 0 et 5 V. La conversion en volts est donc la même pour tous les capteurs analogiques : la valeur lue, multipliée par 5, divisée par 1023.- La constante
TENSION_REPOScontient la sortie du module quand aucun courant ne circule. En théorie, elle vaut la moitié de l’alimentation, soit 2,5 V ; en pratique chaque exemplaire a son petit écart, et cette valeur mesurée au multimètre vaut mieux que la valeur théorique. C’est ce décalage qui décide de la justesse de toute la chaîne. - 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 simplement ignorer ce signe, un montage sur batterie en a besoin pour distinguer charge et décharge. - Les cinq cents lectures moyennées ne sont pas une coquetterie : l’environnement électrique d’un moteur est bruité, et la moyenne ramène la mesure à quelques dizaines de milliampères. En contrepartie, la mesure demande une demi-seconde, ce qui suffit largement pour surveiller une consommation, et pas du tout pour observer une commutation rapide.
- Le seuil d’alerte est une constante du programme. Pour aller plus loin, il remplace avantageusement un relais sur un montage réel : la sortie numérique correspondante peut couper l’alimentation de la charge dès que le courant dépasse, ce qui protège contre un blocage moteur.
Pour aller plus loin
- Mesurer un courant alternatif. La sortie du capteur suit l’alternance du réseau à 50 Hz. Pour obtenir une valeur en ampères efficaces, échantillonnez sur plusieurs périodes et calculez la moyenne des carrés avant la racine carrée, plutôt que de moyenner directement : une moyenne simple de valeurs qui changent de signe donne zéro.
- Enregistrer une consommation. En multipliant le courant par la tension de la batterie, et en intégrant dans le temps, un montage personnel devient un compteur d’énergie — le calcul classique des stations de mesure solaires.
- Couper automatiquement. Un module relais piloté par l’Arduino met hors tension la charge fautive dès le dépassement du seuil, sans intervention : la ligne « À combiner avec », plus bas, indique celui qui convient.
- Une liaison plus propre. Pour de longues distances entre la carte et le capteur, mieux vaut déplacer la carte de mesure près de la source de courant et transmettre la sortie analogique par un fil court : la tension du capteur n’est pas robuste au bruit comme le serait un signal numérique.
Applications
- Surveillance d’un 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.
- Batterie et autonomie — placé dans la ligne d’une batterie, le module distingue le courant de charge du courant de décharge, et permet de calculer ce qui reste dans la batterie.
- Banc d’essai solaire — mesurer ce qu’un panneau réellement débite, panneau après panneau, avant de dimensionner le montage.
- Comptage et détection — un appareil qui consomme signale son fonctionnement : un capteur de ce type reconnaît la mise en marche d’une pompe, d’un éclairage ou d’un appareil chauffant.
- Alarmes et seuils — avec un relais, la coupure sur dépassement de courant transforme le module en protection, sur un montage de laboratoire ou un test de charge.
Points d’attention
- Le courant maximal affiché est une plage de mesure, pas une protection. Le module ne coupe rien : un fusible ou un disjoncteur adapté reste nécessaire sur un montage réel.
- Ne pas dépasser la plage de la variante. Un courant au-delà de 20 A sur cette référence sature la sortie : la mesure plafonne sans avertissement. Le conducteur survit, mais la valeur affichée devient fausse.
- Câbler le bornier 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. Pour la précision, une alimentation soignée vaut mieux qu’un étage d’amplification ajouté.
- Sur le secteur, prudence. Mesurer le courant d’un appareil 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. La valeur lue au repos n’est donc pas un défaut, c’est l’offset à retrancher dans le calcul.
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 qu’on veut afficher. Mesurez par échantillons et calculez une moyenne quadratique, ou redressez le signal avant de le lire.
Le module chauffe-t-il au passage du courant ?
Il chauffe très peu : la résistance du chemin de courant est de 1,2 mΩ. À 20 A, la dissipation reste inférieure au demi-watt, largement absorbée par la carte et le cuivre. Une chaleur très nette sur le bornier signale plutôt un serrage insuffisant des vis qu’un défaut du composant.
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.
La mesure est-elle précise ?
L’erreur de sortie annoncée est de plus ou moins 1,5 % à 25 °C. En pratique, la qualité de l’alimentation 5 V, la stabilité de l’ADC et la justesse de la valeur de repos pèsent autant que le composant. Sur un montage soigné, on décrit une mesure de courant à quelques dizaines de milliampères près ; c’est bien assez pour surveiller un moteur, pas pour un étalonnage de laboratoire.
Peut-on l’utiliser en 3,3 V ?
Le composant est prévu pour 5 V, et la tension de repos descend alors à environ 1,65 V, ce qui réduit d’autant la plage de mesure. Un microcontrôleur en 3,3 V peut lire la sortie sans risque, mais il faut s’attendre à des mesures plus serrées autour du repos : le montage reste plus sûr avec une alimentation en 5 V pour le module et une sortie ramenée sous 3,3 V. Attention, la sortie du module est proportionnelle à son alimentation, donc la formule de conversion doit être adaptée.
À combiner avec
Ce capteur prend tout son intérêt sur un ensemble de banc d’essai. Côté charge, un moteur réducteur à courant continu est le montage le plus simple pour voir une mesure bouger en direct. Côté alimentation, une alimentation 5 V 2 A fournit une référence stable au module et à la carte Arduino, et un convertisseur DC-DC ajustable LM2596 permet de faire varier la tension de la charge, donc son courant, sans rien recâbler. Pour aller jusqu’à la protection automatique d’un montage, le module 1 relais 5 V coupe l’alimentation dès que le seuil est franchi. Et si votre application reste sous quelques ampères, la variante 5 A de la même famille offrira une résolution nettement meilleure sur les petites intensités.









