Arduino ZMPT101B capteur de tension AC

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:

  1. Contrôle du chauffage par le sol par Arduino
  2. Contrôle lumière par capteur HC-SR04 Arduino
  3. Branchement capteur de courant ACS712 Arduino

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.

Comment fonctionnement capteur zmpt101b
Comment fonctionnement capteur de tension zmpt101b (pinout, datasheet)

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

Connecter le capteur zmpt101b Arduino
Comment connecter le capteur de tension zmpt101b à l’Arduino

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:

  1. après avoir téléchargé le logiciel, ouvrez l’onglet « Tools » dans l’IDE Arduino et cliquez sur « Plotter via serial connection »;
  2. tourner le potentiomètre du module pour obtenir une onde sinusoïdale aussi parfaite que possible, comme dans l’illustration ci-dessous.
Plotter via serial connection
Plotter via serial connection

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:

  1. le logiciel trouve d’abord la tension maximale (valeur de crête) et la convertit en valeur RMS.
Arduino voltage sensor zmpt101b
Arduino voltage sensor zmpt101b avec la librarie EmonLib

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:

  1. 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).





4 Replies to “Branchement capteur de tension AC Arduino (ZMPT101B)”

  1. 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.

  2. 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.