ZMPT101B sensor de tensión alterna Arduino

El sensor de tensión alterna ZMPT101B Arduino es un módulo basado en un transformador de tensión reductor que puede medir tensiones de CA de hasta 250V. Para que el módulo sea legible, se utiliza un amplificador operacional montado en el módulo. Para hacerlo funcionar, conecta la fuente de alimentación de 5 voltios del Arduino al módulo, aplica la tensión alterna al transformador y conecta la salida analógica a cualquier pin analógico.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • sensor de voltaje AC zmpt101b;
  • placa de pruebas;
  • LED y resistencia de 220 Ohm;
  • cables de conexion;
  • libreria EmonLib.h

Funcionamiento del zmpt101b sensor de tensión alterna

ZMPT101B puede utilizarse para medir la tensión de la red de CA y transmitir la lectura de forma segura a la entrada del microcontrolador. El módulo se basa en un transformador de baja potencia, con el que la lectura no se distorsiona, sino que sigue la forma de la señal de tensión alterna. El sensor es seguro ya que está aislado galvánicamente de la entrada de alta tensión. El módulo dispone de una resistencia trimmer para calibrar las lecturas.

Sensor de voltaje AC zmpt101b Arduino
El sensor de voltaje AC zmpt101b Arduino pinout, datasheet

Características sensor ZMPT101B Arduino:

  • Peso: 20 g
  • Dimensiones: 51 × 21 × 21 mm
  • Modelo de transformador: ZMPT101B
  • Tensión de alimentación: 5V
  • Corriente nominal: 2mA
  • Rango de tensión de medición: 195-250 V
  • Rango de temperatura de funcionamiento: de -40°C a +70°C

El elemento principal del módulo es el transformador ZMPT101B fabricado por Qingxian Zeming Langxi Electronic. Esencialmente, se necesita una resistencia limitadora en el circuito primario y una resistencia en el circuito secundario para cambiar la tensión alterna. El resto del circuito del módulo amplifica y desplaza la tensión medida en sentido positivo para que no haya tensión negativa. ¡Cuidado con las altas tensiones! Tenga en cuenta las precauciones de seguridad cuando trabaje con el sensor.

Cómo conectar el sensor de voltaje zmpt101b Arduino

Conectar un sensor de voltaje zmpt101b Arduino
Conexión un sensor de voltaje zmpt101b a Arduino

Al conectar el módulo ZMPT101B AC al Arduino, debes conectar la salida analógica OUT del sensor al pin analógico A1, y luego conectar los pines de alimentación – GND y VCC a los pines GND y +5V del microcontrolador. Después puedes conectar la parte de alimentación, conecta los pines L y N del módulo a 220V. Ver el diagrama de cableado en la imagen de arriba. Después de montar el circuito, carga el siguiente programa en Arduino.

Programa de calibración del sensor de tensión alterna

void setup() {
Serial.begin(9600);
}
 
void loop() {
Serial.println(analogRead(A1));
delay(100);
}

Explicación del código de calibración sensor zmpt101b:

  1. después de descargar el software, abra la pestaña «Herramientas» en el IDE de Arduino y haga clic en «Plotter a través de la conexión en serie»;
  2. gire el potenciómetro del módulo para conseguir una onda sinusoidal lo más perfecta posible, como en la siguiente ilustración.
Plotter a través de la conexión en serie
Plotter a través de la conexión en serie

Programa del sensor zmpt101b Arduino sin librería

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);
}

Explicación del código del zmpt101b sin librería:

  1. el software encuentra primero la tensión máxima (valor de pico) y la convierte en un valor RMS.

En el siguiente ejemplo conectaremos un LED al pin 10 del microcontrolador Arduino y utilizaremos la librería EmonLib.h en el programa. La biblioteca puede descargarse de nuestro sitio web, el enlace de descarga se encuentra arriba. Después de ensamblar el circuito carga el siguiente código en la microcontrolador. Es posible que tenga que cambiar las condiciones en la sentencia if para activar/desactivar el LED.

Conectar sensor zmpt101b Arduino y LED
Cómo conectar sensor de voltaje zmpt101b Arduino y LED

Programa del zmpt101b con la biblioteca EmonLib.h

#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);}
}

Explicación del código del zmpt101b con la librería EmonLib.h:

  1. el uso de la biblioteca EmonLib.h simplifica enormemente el programa.

Conclusión. El sensor de tensión de CA zmpt101b puede utilizarse en proyectos Arduino cuando se mide la tensión de una toma de corriente inteligente, se conmuta automáticamente el SAI cuando la tensión nominal cae y se recupera, y para la medición del consumo de energía (junto con el módulo de medición del consumo).


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *