Medidas eléctricas en corriente alterna con Arduino y un solo dispositivo (PZEM-004T)

      Comentarios desactivados en Medidas eléctricas en corriente alterna con Arduino y un solo dispositivo (PZEM-004T)

Resumen en vídeo con un solo medidor.

En la segunda parte del artículo se incluye un vídeo explicando la conexión de varios medidores en paralelo.

Introducción

Con el medidor PZEM-004T podemos realizar con Arduino, de forma muy sencilla, mediciones de tensión, intensidad, potencia y energía.

Se encuentra en dos formatos, como vemos en la imagen de la derecha:

  • Con anillo toroidal cerrado, lo que obliga a desconectar un cable para poder monitorizar el circuito.
  • Con anillo toroidal de pinza, mas cómodo, pero un poco mas caro.

Dirección individual de cada medidor

Estos dispositivos se comunican por el puerto serie con Arduino mediante el mismo protocolo con el que intercambia datos Arduino con el ordenador. Por tanto, necesitamos dos pines digitales, uno actuará como receptor de datos (Rx) y otro como transmisor (Tx). En los PZEM-004T encontramos también dos conectores con estos nombres (Rx y Tx).

Es importante destacar que Arduino utiliza los puertos digitales 0 y 1 como Tx y Rx para comunicar con el PC, por tanto, si conectamos otros dispositivos a estos puertos, no podremos cargarle programas. Por este motivo, se elijen otros pines distintos y mediante una librería, se les asigna la funcionalidad de puerto serie “virtual”.

Se pueden conectar varios medidores simultáneamente a la misma placa utilizando el puerto serie como bus de datos. Esto implica que cada dispositivo deba tener un nombre (dirección individual) único, para que Arduino pueda diferenciar de dónde procede cada dato.

Es un proceso similar al realizado en comunicación I2C en Arduino o KNX en domótica general, teniendo en cuenta que aquí se permite personalizar por software la dirección individual (nombre) de cada dispositivo. Los PZEM-004T disponen de una pequeña memoria interna EEPROM en la que almacenan la dirección que se les asigna, de tal forma que si se quedan sin alimentación, al volverlos a conectar, mantienen la dirección última que se les haya dado. En esa misma memoria almacenen los datos de energía consumida.

  • Si solo conectamos un medidor: Podemos definir la dirección individual del dispositivo en el apartado Inicializar de nuestro programa.
  • Si conectamos varios medidores: Hay que realizar un pequeño programa previo específico para establecer la dirección de cada medidor, uno a uno. Una vez realizado este paso, ya tendremos cada PZEM con una dirección individual única, y podremos conectarlos todos a la placa Arduino para cargar el programa general y comenzar a realizar las mediciones. Es importante tener en cuenta que en este nuevo programa general, ya no definiremos ninguna dirección, porque eso haría que todos los dispositivos conectados adquirieran la misma, enviando así, todas las medidas en una sola lectura errónea.

Conexión

Encontramos dos circuitos principales:

  • Circuito de alimentación de la placa y comunicación con Arduino
  • Circuito de toma de medidas eléctricas en AC

Las conexiones se realizan de igual forma que si fueramos a realizar las mediciones con una pinza amperimétrica. Para medir tensión se conecta el PZEM en paralelo con los puntos en los que queremos realizar la medida, y para medir intensidad, se pasa uno de los cables del circuito a medir a través del anillo toroidal. Si en lugar de anillo, tenemos una pinza, no hace falta desconectar el circuito principal para meter el conductor a través del anillo, basta con abrir la pinza.

PZEM-004T en ArduinoBlocks

En la sección Domótica, de la barra izquierda de ArduinoBlocks, encontramos los bloques necesarios para trabajar con el medidor. En primer lugar, en el apartado Inicializar del programa, se incluirá el bloque Iniciar, para definir a qué pines conectamos el medidor. En el ejemplo de la siguiente imagen, estamos indicando que vamos a conectar el puerto Rx del medidor, con el pin 3 de Arduino, y el Tx, con el pin 2. Esta configuración se corresponde con la conexión realizada en el esquema del apartado anterior.

El bloque que permite asignar direcciones individuales a cada medidor, es el siguiente:  

Finalmente, con un único bloque seleccionamos la magnitud a medir y la dirección del PZEM del que tomamos esa medida:

Medidas de energía

La placa memoriza el consumo de energía que se está realizando. Para poder reiniciar este contador de energía, hay que accionar el pulsador incluido en la placa. Por ello, para medir y gestionar energía consumida con Arduino, resulta mas versátil realizar su cálculo, en lugar de tomar el valor ofrecido por el medidor. Veremos este y otros ejemplos avanzados en próximos artículos.

Programa: Medidas con un un solo dispositivo

Se propone medir los parámetros de tensión e intensidad de un receptor de corriente alterna, para lo cual, tenemos que realizar el siguiente esquema de conexión:

Es importante destacar que hemos conectado la salida Rx del medidor al pin 3 de Arduino y la salida Tx al pin 2. Se pueden usar otros puertos (excluyendo el 0 y el 1), simplemente habrá que tenerlo en cuenta al realizar el programa.

Resumen en vídeo con varios medidores conectados a una placa

Programa: Medir circuitos diferentes con varios PZEM-004T

Vamos a realizar la conexión de dos PZEM para tomar medidas de dos circuitos independientes. Si se quieren conectar mas medidores, el proceso será el mismo. En este ejemplo se monitoriza el consumo de dos lámparas, pero podemos conectar cualquier receptor, la salida de un circuito en un cuadro eléctrico, etc.

El proceso será el siguiente:

  1. Conectar solo un PZEM para asignarle una dirección.
  2. Cargar el programa en Arduino que establece la dirección del primer medidor.
  3. Desconectar el medidor anterior y cargar en la placa el programa que establece el nombre del segundo medidor.
  4. Conectar el segundo PZEM a Arduino para que le grabe su dirección.
  5. Cablear todo el sistema final con los dos medidores y cargar el programa final.

Programa en ArduinoBlocks:

Primero debemos asignarle una dirección individual a cada medidor, para ello, conectamos solo uno de los PZEM-004T a Arduino y cargamos el siguiente programa:

De esa forma le damos la dirección 1 al primer medidor. Ahora, lo desconectamos y cargamos el siguiente programa para dar nombre a otro PZEM-004T:

Tras conectar el segundo medidor a Arduino y encender la placa, ésta le asignará la dirección 2.

Una vez realizado este proceso, no tenemos que volver a repetirlo, ya que, como decíamos en la introducción, los dispositivos utilizados pueden memorizar su dirección aunque se queden sin alimentación.

Conexión final del circuito (suponiendo que ambos receptores se conectan a la misma fuente de alimentación)

Programa para medir la tensión e intensidad en CA de dos circuitos independientes, y visualizarlas en el PC:

Para no realizar un programa muy extenso, se ha medido solamente tensión e intensidad, pero prueba a medir potencia y energía consumida.

Preguntas, sugerencias, propuestas…

Realiza cualquier cuestión, sugerencia o propuesta sobre el artículo o vídeo, en el foro del curso. Muchas gracias.