Le module capteur de courant ACS712 en version 30 A mesure l’intensité qui traverse un conducteur sans l’ouvrir électriquement et sans le mettre à la masse. La mesure est prise à l’intérieur d’un circuit intégré Allegro ACS712 : un capteur à effet Hall placé au voisinage d’un conducteur de cuivre. La carte en sort une tension analogique proportionnelle au courant, que n’importe quel microcontrôleur lit sur une entrée analogique.
Cette variante est la plus large des trois de la famille. Elle est faite pour les installations qui passent de fortes intensités : démarrage de moteur, ligne de batterie cyclée fort, banc de test de charge, contrôle d’un alternateur ou d’un chargeur. Elle mesure jusqu’à plus ou moins 30 ampères dans les deux sens, en courant continu comme en courant alternatif.
Comme la plage est large, la finesse de mesure est plus faible que sur les petits calibres : chaque pas du convertisseur analogique-numérique représente davantage d’ampères. C’est le compromis à connaître avant de choisir cette version plutôt que la 5 A ou la 20 A.
Fonctionnement : une tension proportionnelle au courant
Le courant à mesurer traverse, à l’intérieur du boîtier, un conducteur en cuivre dont la résistance est donnée à 1,2 mΩ par le constructeur. Ce passage crée un champ magnétique que le capteur à effet Hall intégré transforme en tension. Il n’y a donc ni shunt à calculer, ni résistance de mesure à souder, ni amplificateur à ajouter : la sortie du module est déjà mise en forme.
La particularité à 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 d’autant. La même broche permet donc de suivre une charge et une décharge de batterie, ou les deux alternances d’un courant alternatif.
La conversion est linéaire et fixée par le constructeur : sur cette variante, il faut 66 mV par ampère. Autour des 2,5 V du repos, chaque ampère ne déplace la sortie que de 66 millivolts — d’où l’importance d’une alimentation propre, puisque la sortie suit la tension d’alimentation.
Caractéristiques techniques
| Circuit intégré | Allegro ACS712, variante 30 A — capteur de courant à effet Hall |
|---|---|
| Plage de mesure | ±30 A, en courant continu et en courant alternatif |
| Sensibilité | 66 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éductible par le condensateur branché sur la broche FILTRE |
| Temps de montée | 5 µs |
| Résistance du chemin de courant | 1,2 mΩ |
| Isolation | 2,1 kV efficaces au minimum entre le côté puissance et le côté logique |
| Erreur de sortie | ±1,5 % à 25 °C, réglage d’usine |
| Surintensité admissible | Le conducteur interne survit à cinq fois le courant nominal |
| Résolution pratique | Environ 74 mA par pas sur un Arduino Uno, convertisseur de 10 bits et référence de 5 V |
La résolution se calcule de la même manière pour tous les capteurs analogiques : l’Arduino rend une valeur de 0 à 1023 pour une tension de 0 à 5 V, soit un pas de 4,9 mV. Divisé par les 66 mV par ampère de cette variante, ce pas vaut environ 74 milliampères. Une mesure de moteur, de batterie ou de charge se lit donc confortablement, à condition de ne pas chercher à y voir des courants de quelques milliampères.
Brochage et raccordement
La carte se lit en deux zones. D’un côté, le bornier à vis deux positions : c’est par là que passe le circuit de puissance, le courant à mesurer entrant par une vis et ressortant par l’autre. De l’autre, le connecteur trois broches du côté logique, aux repères sérigraphiés VCC, OUT et GND.
VCC | Alimentation du module, à relier au 5 V de la carte. |
|---|---|
GND | Masse commune avec la carte. 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. Le module est traversé par le courant de la charge, exactement comme un ampèremètre : une vis reçoit la source, l’autre alimente la charge. Un branchement en parallèle mettrait la charge en court-circuit à travers le module, ce qui est le principal risque de montage.
Deux précautions de masse valent aussi d’être dites. La masse du module et celle du microcontrôleur doivent être reliées, puisque la sortie est mesurée par rapport à la masse. Et si la charge est alimentée par une source distincte de tension élevée, mieux vaut alimenter la carte Arduino à part : son régulateur n’a pas à fournir le courant de la charge.
Quel calibre choisir dans la famille ACS712
Les trois modules se ressemblent, se câblent de la même façon et coûtent presque la même chose. Ce qui les distingue est la sensibilité : plus la plage est large, plus les petits courants sont mesurés grossièrement, parce qu’un même pas de conversion 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 — le compromis habituel pour un moteur ou une batterie de 12 V. Voir le capteur de courant ACS712 20 A. |
| Module 30 A | 66 mV par ampère — celui de cette page, pour les fortes intensités et les charges qui démarrent en pointe. |
La règle pratique est de choisir la variante dont la plage dépasse un peu le courant maximal attendu. Pour un moteur qui tire 3 A au blocage, le 5 A suffit. Pour une batterie de 12 V cyclée à 15 A, le 20 A est le bon choix. Au-delà de 20 A, ou dès qu’une pointe de démarrage approche les 25 A, c’est cette version 30 A qu’il faut prendre.
Mini-projet : ampèremètre bidirectionnel pour ligne de batterie
Le montage placé dans la ligne d’une batterie affiche en direct le courant qui circule, avec son signe, et retient les extrêmes observés sur une dizaine de secondes. C’est exactement ce qu’on veut savoir sur un banc de charge ou sur une installation solaire : combien d’ampères entrent, combien sortent, et quelle pointe a été atteinte.
Le matériel
| La mesure | Le module ACS712 30 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 |
| Le support | Plaque d’essai 830 points |
| Les liaisons | 10 × fil mâle-femelle, pour joindre le module et l’afficheur à la carte |
Le câblage
Module VCC | Arduino 5V |
|---|---|
Module GND | Arduino GND |
Module OUT | Arduino A0 |
Afficheur SDA | Arduino A4 |
Afficheur SCL | Arduino A5 |
Afficheur VCC et GND | Arduino 5V et GND |
| Batterie, borne plus | Première vis du bornier du module |
| Seconde vis du bornier | Charge ou chargeur, selon ce qu’on veut surveiller |
Le sens de câblage du bornier décide du signe affiché : si la charge apparaît en négatif, il suffit d’inverser les deux fils du bornier — le module est symétrique et rien ne risque d’être endommagé. Cette inversion est même une façon simple de vérifier que les deux sens sont bien lus.
Le programme
Le programme moyenne trois cents lectures pour lisser le bruit, convertit la tension en ampères signés, affiche la valeur sur l’écran puis retient le minimum et le maximum du cycle. Avant de téléverser, mesurez la sortie réelle du module au repos avec un multimètre et reportez-la dans la constante prévue : c’est ce relevé, et non la valeur théorique de 2,5 V, qui décide de la justesse de toute la mesure.
/*
* Amperemetre bidirectionnel a module ACS712 30 A
* Carte : Arduino Uno R3, sortie analogique sur A0
* Affichage : LCD 16x02 en I2C, adresse 0x27
*
* Cablage : module VCC - 5V, GND - GND, OUT - A0
* LCD SDA - A4, SCL - A5, VCC - 5V, GND - GND
* La ligne de courant traverse le bornier a vis du module.
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int BROCHE_COURANT = A0;
const float SENSIBILITE = 0.066; // 66 mV par ampere (variante 30 A)
const float TENSION_REPOS = 2.500; // sortie relevee au repos, en volts
const int ECHANTILLONS = 300;
float courantMin = 0.0;
float courantMax = 0.0;
// 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;
}
// Courant signe, en amperes : positif dans un sens, negatif dans l'autre.
float lireCourant() {
float tension = lireTension();
return (tension - TENSION_REPOS) / SENSIBILITE;
}
// L'ecran porte la mesure du moment sur la premiere ligne,
// les extremes du cycle sur la seconde.
void afficher(float courant) {
lcd.setCursor(0, 0);
lcd.print("Courant ");
lcd.print(courant, 2);
lcd.print(" A ");
lcd.setCursor(0, 1);
lcd.print("min ");
lcd.print(courantMin, 1);
lcd.print(" max ");
lcd.print(courantMax, 1);
}
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(9600);
}
void loop() {
float courant = lireCourant();
courantMin = courant;
courantMax = courant;
// Un cycle dure une dizaine de secondes, puis les extremes repartent.
for (int i = 0; i != 20; i++) {
delay(500);
courant = lireCourant();
courantMin = min(courantMin, courant);
courantMax = max(courantMax, courant);
afficher(courant);
Serial.println(courant, 2);
}
}Comment ça marche
analogRead()rend un nombre de 0 à 1023 pour une tension de 0 à 5 V. La conversion en volts est identique 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, la moitié de l’alimentation ; en pratique, chaque exemplaire a son petit écart. Ce décalage est le principal facteur d’erreur du montage, et c’est pour cette raison qu’il se mesure au multimètre plutôt qu’il ne se suppose. - La division par
SENSIBILITEtraduit l’écart en volts en ampères. Le résultat est signé : il change de signe quand le courant change de sens, ce qui permet de suivre charge et décharge avec une seule entrée analogique et un seul câblage. min()etmax()sont fournis par l’environnement Arduino et travaillent directement sur les nombres à virgule. Ici, ils gardent la valeur la plus basse et la plus haute du cycle : c’est ainsi qu’une pointe de démarrage, invisible sur un affichage instantané, est retenue et lisible.- Les trois 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, une mesure prend environ un tiers de seconde, ce qui suffit pour surveiller une consommation et pas du tout pour observer une commutation rapide.
Pour aller plus loin
- Couper au-delà d’un seuil. Une sortie numérique de la carte pilotant un module relais met la charge hors tension quand le courant dépasse la valeur fixée : le capteur devient une protection contre le blocage moteur, et non plus seulement un afficheur.
- Totaliser une énergie. En multipliant le courant par la tension de la batterie et en cumulant dans le temps, le montage devient un compteur de wattheures — le calcul classique des stations solaires et des bancs d’autonomie.
- Mesurer un courant alternatif. La sortie suit les deux alternances du réseau à 50 Hz. La valeur moyenne d’un alternatif étant nulle, c’est la valeur efficace qu’il faut calculer : échantillonner sur plusieurs périodes et faire la moyenne des carrés avant la racine carrée, plutôt que moyenner directement.
- Transmettre proprement la mesure. Sur une longue distance entre la carte et le capteur, mieux vaut laisser le module près de la ligne de courant et faire circuler l’information autrement qu’en analogique : la tension de sortie n’est pas robuste au bruit comme le serait une liaison numérique.
Applications
- Ligne de batterie — placé dans la ligne d’une batterie ou d’un parc de batteries, le module dit à tout instant si l’installation charge ou décharge, et à quelle intensité.
- Démarrage de moteur — la pointe de courant au démarrage se mesure : elle explique les déclenchements de protection et permet de dimensionner l’alimentation à la bonne valeur.
- Banc d’essai solaire — vérifier ce qu’un panneau débite réellement, ou ce qu’un régulateur laisse passer, avant de dimensionner le reste de l’installation.
- Test de charge — suivre une alimentation ou un convertisseur sous charge, monter progressivement en ampères et repérer le moment où la tension faiblit.
- Protection et alarme — avec un relais piloté par la carte, la coupure sur dépassement transforme la mesure en sécurité sur un montage de laboratoire.
- Comptage de fonctionnement — un appareil qui consomme signale qu’il tourne : la mise en marche d’une pompe, d’un éclairage ou d’un appareil chauffant se détecte sans intervenir sur son câblage.
Points d’attention
- La plage affichée est une plage de mesure, pas une protection. Le module ne coupe rien par lui-même : un fusible ou un disjoncteur adapté reste nécessaire sur toute installation réelle.
- Au-delà de 30 A, la mesure devient fausse. La sortie sature sans avertissement : la valeur affichée plafonne alors que le courant continue de monter. Le conducteur survit, mais ce qui est lu n’est plus le courant.
- Brancher le bornier en série, jamais en parallèle. C’est la première cause de casse sur ce type de module : il doit être traversé par le courant, comme un ampèremètre.
- Serrer les vis du bornier. À ces intensités, une vis mal serrée chauffe : une chaleur nette sur le bornier indique un mauvais contact, pas un défaut du composant.
- La sortie suit l’alimentation. Une alimentation 5 V instable déplace le repos et fausse la mesure. Avant d’ajouter un amplificateur, soigner l’alimentation est le geste qui rapporte le plus.
- Sur le secteur, prudence. La mesure du courant d’un appareil relié au réseau est techniquement possible, mais l’isolation du module ne dispense pas des règles de sécurité : ce travail ne se fait pas sur une plaque d’essai.
Questions fréquentes
Pourquoi la sortie n’est-elle pas à zéro sans courant ?
C’est le fonctionnement normal du capteur : la sortie est centrée autour de la moitié de l’alimentation, à environ 2,5 V, afin de pouvoir mesurer les deux sens de circulation. Cette valeur de repos n’est pas un défaut, c’est l’offset à retrancher dans le calcul — et il vaut mieux la relever au multimètre que la supposer.
Cette variante convient-elle à de petits courants ?
Techniquement oui, mais la finesse n’y est pas : un pas de conversion sur un Arduino Uno représente environ 74 mA avec cette version, contre environ 26 mA sur la 5 A. Pour surveiller un montage qui consomme moins d’un ampère, la variante 5 A donne des mesures nettement plus lisibles, et la 20 A reste le bon compromis pour une batterie de 12 V.
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 moyenne d’un alternatif est nulle, et c’est la valeur efficace qui intéresse. Échantillonner sur plusieurs périodes et calculer une moyenne quadratique donne le résultat juste ; une moyenne simple donnerait zéro.
Le module chauffe-t-il au passage du courant ?
Il chauffe peu. La résistance du chemin de courant est de 1,2 mΩ, ce qui limite la dissipation même à 30 A. La chaleur se concentre plutôt dans les connexions : des vis de bornier mal serrées, ou des fils trop fins pour l’intensité, chauffent bien avant le composant lui-même.
Un multimètre ne suffit-il pas pour mesurer ce courant ?
Pour un contrôle ponctuel, si. Mais un multimètre en mode ampèremètre doit être placé dans la ligne, et beaucoup de modèles plafonnent à 10 A. Le capteur à effet Hall, lui, reste en place, ne coupe rien, isole le circuit de puissance et peut suivre la mesure en continu dans un programme — c’est ce qu’un multimètre ne fait pas.
La mesure est-elle précise ?
L’erreur de sortie annoncée par le constructeur est de plus ou moins 1,5 % à 25 °C. En pratique, la stabilité de l’alimentation, la qualité du convertisseur et la justesse de la valeur de repos pèsent au moins autant. Sur un montage soigné, la mesure vaut pour surveiller un moteur ou une batterie ; elle ne remplace pas un appareil de laboratoire pour un étalonnage.
À combiner avec
Un ampèremètre à effet Hall se monte sur une chaîne complète, et c’est cette chaîne qui décide de ce qu’on peut mesurer. Côté charge, un moteur réducteur à courant continu est le montage le plus parlant pour voir une pointe de démarrage apparaître à l’écran. Côté alimentation, une alimentation 12 V 2 A fournit une source propre à la carte, et un convertisseur DC-DC ajustable LM2596 permet de faire varier la tension de la charge — donc son courant — sans rien recâbler. Pour transformer la mesure en protection, le module 1 relais 5 V coupe l’alimentation dès que le seuil est franchi. Et sur une batterie de petite capacité, où les intensités restent sous quelques ampères, la variante 20 A de la même famille offrira une résolution plus fine.











