SOMMAIRE ►
Capteur AC Voltage ZMPT101B Arduino est un module basé sur un transformateur abaisseur de tension qui vous permet de mesurer des tensions alternatives jusqu’à 250V. Pour rendre le module lisible, il utilise un amplificateur opérationnel monté sur le module. Pour le faire fonctionner, connectez l’alimentation de 5 volts au module, appliquez la tension alternative au transformateur et connectez la sortie analogique à n’importe quelle broche analogique.
Pour cette activité, nous aurons besoin:
- Arduino Uno / Arduino Nano / Arduino Mega
- zmpt101b AC voltage sensor
- LED et résistance
- fils de connexion
- breadboard
- librarie EmonLib.h
Matériel supplémentaire sur ce sujet:
Fonctionnement capteur de tension ZMPT101B
Le ZMPT101B peut être utilisé pour mesurer la tension du secteur et transmettre la lecture en toute sécurité à l’entrée du microcontrôleur. Le module est basé sur un transformateur à faible puissance, avec lequel la lecture n’est pas déformée, mais suit la forme du signal de tension alternative. Le capteur est sûr car il est isolé galvaniquement de l’entrée haute tension. Une potentiomètre est montée sur le module zmpt101b pour la calibration des lectures.

Caractéristiques
- Poids: 20 g
- Dimensions: 51 × 21 × 21 mm
- Modèle de transformateur: ZMPT101B
- Tension d’alimentation: 5V
- Courant nominal: 2mA
- Plage de tension de mesure: 195-250 V
- Température de fonctionnement: -40°C à +70°C
L’élément principal du module est le transformateur ZMPT101B fabriqué par Qingxian Zeming Langxi Electronic. Essentiellement, une résistance de limitation sur le circuit primaire et une résistance sur le circuit secondaire sont nécessaires pour modifier la tension alternative. Le reste du circuit du module amplifie et décale la tension mesurée dans le sens positif afin qu’il n’y ait pas de tension négative. Attention aux hautes tensions!
Comment brancher sensor zmpt101b Arduino Uno

Lorsque vous connectez le module AC ZMPT101B à l’Arduino, vous devez connecter la sortie analogique OUT du capteur à la broche analogique A1 de l’Arduino, puis connecter les broches d’alimentation – GND et VCC aux broches GND et +5V du microcontrôleur. Après cela, vous pouvez connecter la partie puissance en reliant les broches L et N du module à 220V. Voir le schéma de câblage sur l’image. Après avoir assemblé le circuit, chargez le programme.
Programme Arduino pour calibrer le capteur de tension
void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A1)); delay(100); }
Explication du code calibrer le capteur zmpt101b:
- après avoir téléchargé le logiciel, ouvrez l’onglet « Tools » dans l’IDE Arduino et cliquez sur « Plotter via serial connection »;
- tourner le potentiomètre du module pour obtenir une onde sinusoïdale aussi parfaite que possible, comme dans l’illustration ci-dessous.

Programme Arduino connexion zmpt101b sans librarie
double sensorValue1 = 0; double sensorValue2 = 0; int crosscount = 0; int climb_flag = 0; int val[100]; int max_v = 0; double VmaxD = 0; double VeffD = 0; double Veff = 0; void setup() { Serial.begin(9600); pinMode(A1, INPUT); } void loop() { for (int i=0; i<100; i++) { sensorValue1 = analogRead(A1); if (analogRead(A1) > 511) { val[i] = sensorValue1; } else { val[i] = 0; } delay(1); } max_v = 0; for ( int i = 0; i < 100; i++ ) { if ( val[i] > max_v ) { max_v = val[i]; } val[i] = 0; } if (max_v != 0) { VmaxD = max_v; VeffD = VmaxD / sqrt(2); Veff = (((VeffD - 420.76) / -90.24) * -210.2) + 210.2; } else { Veff = 0; } Serial.print("Voltage: "); Serial.println(Veff); VmaxD = 0; delay(100); }
Explication du code connexion zmpt101b Arduino:
- le logiciel trouve d’abord la tension maximale (valeur de crête) et la convertit en valeur RMS.

Dans l’exemple suivant, nous allons connecter une LED à la broche 10 du microcontrôleur Arduino et utiliser la bibliothèque EmonLib.h dans le programme. La bibliothèque peut être téléchargée sur notre site web, le lien de téléchargement est affiché ci-dessus. Après avoir assemblé le circuit, chargez le code suivant dans la carte. Vous devrez peut-être modifier les conditions de l’instruction if Arduino pour activer/désactiver la LED.
Programme Arduino zmpt101b avec la librarie EmonLib
#include "EmonLib.h" EnergyMonitor emon1; void setup() { Serial.begin(9600); pinMode(10, OUTPUT); emon1.current(A1, 111.1); // input pin, calibration } void loop() { double Irms = emon1.calcIrms(1480); Serial.print(Irms*230.0); Serial.print(" "); Serial.println(Irms); if (Irms*230.0 < 230) {gigitalWrite (10, HIGH);} else {digitalWrite (10, LOW);} }
Explication du code zmpt101b avec la bibliothèque EmonLib.h:
- l’utilisation de la bibliothèque EmonLib.h simplifie considérablement le programme.
Conclusion. Le capteur de tension alternatives zmpt101b peut être utilisé dans des projets Arduino pour la détection de la tension pour les prises intelligentes, l’autocommutation de l’onduleur lorsque la tension nominale chute et se rétablit, et pour la mesure de la consommation électrique (en conjonction avec le module de mesure de la consommation).








Super bien expliqué, congratulations et merci pour le partage. 😉
Très bien expliqué
Bonjour,
merci pour cet article sur l’utilisation du module.
En revanche, je ne comprends pas comment on peut obtenir une belle sinusoïde avec le « plotter monitor » alors que la fréquence de notre réseau est de 50Hz, et que le delay dans le programme de test est de 100ms.
Est ce qu’il est possible de trouver le schéma (proteus si possible) du Shields entier ?
J’en ai besoin pour un projet de fin d’étude et donc besoin de le refaire à la main mais je ne trouve aucun datassent ou autre.