VictorJAM.zapto.org
Arduino  Electrónica 

2023-02-25

Midiendo tensión alterna con Arduino: el ZMPT101b

Arduino dispone de una serie de entradas analógicas que son capaces de leer desde 0V a 5V, con una resolución de 10bits; pero no podemos medir más allá de esa tensión, que además es de continua.

Si queremos medir la corriente alterna, por ejemplo, la tensión alterna de nuestra casa de 230V, debemos hacer un circuito que adapte dicha señal alterna a un valor que oscile entre los 0-5V de nuestro ADC.

Vamos a cubrir las técnicas más comunes para realizar esto.

¡¡ATENCIóN!! MEDIR SEñALES DE ALTO VOLTAJE CONLLEVA RIESGO ELéCTRICO Y PELIGRO DE MUERTE. MANEJAR CON CUIDADO.

Usando rectificadores.

Este método consiste en coger la señal alterna y rectificarla con lo que a la salida tenemos una tensión continua proporcional a la entrada.

Al rectificar tenemos dos opciones: media onda o onda completa. La diferencia radica en que el circuito de media onda solo rectifica el semiciclo positivo de la señal alterna y el de onda completa rectifica ambos semiciclos. Usando un método u otro lo que conseguimos básicamente es variar la tensión de rizado de la tensión de salida.

En ambos métodos se usa un divisor de tensión para reducir la tensión que va a entrar en el Arduino. En el caso de media onda solo usamos un diodo, mientras que en el de onda completa usamos un puede diodos completo. En ambos casos conviene utilizar un condensador para reducir el rizado de la señal de salida.

Ventajas:

  • La tensión de salida es proporcional a la entrada, la podremos leer directamente con un pin analógico.

Desventajas:

  • La tensión de salida es "proporcional" a la entrada relativamente, hay que tener en cuenta la caída de tensión de los diodos y esta depende de la tensión y la corriente que circule por él.
  • No hay aislamiento, es decir, el Arduino está físicamente unido a la tensión alterna que se ha de medir, lo cual es peligroso.

Con desplazamiento de la señal.

En este sentido lo que hacemos es reducir la señal de entrada usando un divisor resistivo para reducir la tensión a medir. Luego le añadimos una componente de continua para "desplazar" la señal haciendo que el valor 0V sea un valor positivo.

Lo mas común en estos casos es reducir la tensión alterna a un valor pequeño de 1 voltio, luego se le añade una tensión continua de 2.5V que será nuestro 0V. Así el valor pico de la señal se convierte en 3.5V para el semiciclo positivo y de 1.5 para el semiciclo negativo.

En la imagen anterior notaremos que la señal ha sido reducida a una tensión de amplitud de ciclo A, mientras que la salida de continua ha sido subida a una tensión de 2.5V la cual varia sumando la señal alterna.

Esta técnica es la usada en el proyecto OpenEnergyMonitor y Atmel (Microchip) en su nota de aplicación Atmel 2566 - Medidor de energía.

En el caso de OpenEnergy monitor utiliza un transformador de voltaje, reduciendo la tensión de la entrada, luego se divide usando un par de resistencias y con otro divisor de tensión divide la alimentación generando el offset de 2.5V, une los dos divisores para sumar las tensiones y ya te tenemos nuestra señal alterna desplazada.

El mayor problema de este sistema es que el transformador no es perfecto y necesita calibrarse, hay que tener en cuenta que un transformador la salida depende de la carga del circuito. Aún así, ofrece algo mas de seguridad sobre el otro circuito del medidor de energía de atmel.

Este igualmente divide la tensión de entrada alterna hasta un valor de voltaje bajo y le añade un offset de 2.5V a través de otro divisor de resistencia y un condensador actuando de "separador". En este caso el inconveniente que se tiene es que no existe separación entre alterna y continua (GND está unido directamente al neutro de línea.

Desventajas:

  • Unión directa a la corriente alterna.
  • Para hacer la medición de la tensión hay que realizar una serie de tomas y analizar la señal, lo cual lleva mucho tiempo de procesamiento.

Ventajas:

  • Pocos componentes.
  • Si hacemos muestreo podremos obtener más información de la señal, por ejemplo la frecuencia.

¿Qué es un transformador ZMPT101B?

El ZMPT101B es un transformador de corriente que podemos usar para realizar medidas de tensión.

Nótese que hemos dicho que es un transformador de corriente, que no es lo mismo que un transformador de tensión ordinario.

En un transformador de corriente, la corriente que circula por el secundario es proporcional a la corriente que circula por el primario, y esta corriente es independiente de la tensión.

Generalmente estos transformadores se utilizan para medir la corriente que circula por un circuito, pero con algunas consideraciones se puede usar para medir tensión.

En el caso del ZMPT101B tenemos una relación 1:1, es decir, la corriente a la entrada será lo mismo a la salida. Dicha corriente está limitada a 2mA como mucho.

¿Cómo podemos medir tensión con el ZMPT101B? Si conectáramos directamente la entrada del ZMPT101B a una tensión alterna este se quemaría. La resistencia del primario es insignificante por lo que corriente que circularía sería superior a los 2mA que soporta.

Hemo de limitar la corriente que circula por el transformador, por lo tanto hemos de añadir una resistencia en serie con el transformador. Para ello debemos elegir la corriente máxima (que no debe ser superior a 2mA) y la tensión máxima a medir. Tan solo basta aplicar la ley de ohm para obtener el valor de la resistencia.

Ejemplo: Queremos medir una tensión alterna hasta un valor máximo de 250V y fijamos la corriente en 2mA (la máxima). Aplicamos la ley de Ohm ( R = V / I) y obtendremos (250*√2)/0.002 = 176KK.

Nótese que hemos multiplicado la tensión por √2. Generalmente la tensión de nuestras casas se mide en voltaje eficaz o VRMS, pero la tensión máxima que circulará por el circuito será el valor pico de la señal alterna.

Si ahora conectamos dicha circuito a la tensión alterna ya no se quemará el transformador pero si la tensión que circula no es la prevista como el valor de resistencia si es fijo lo que variará será la corriente. Si aplicáramos una tensión de 230V con una resistencia de 176k obtendríamos una corriente de 1.8mA.

En el secundario del transformador habrá la misma corriente, así que hemos de colocar una resistencia de burden (una resistencia en paralelo) para que en ella se produzca una caída de tensión que podamos medir. Generalmente esta resistencia está limitada a 100 Ohms, con lo que con 2mA, la caída de tensión será de 0.2V (ley de ohm); para la tensión de 230V del ejemplo la caída seria de 0.18V, ambos voltajes eficaces.

Módulo comercial ZMPT101B

Debido a la baja tensión de salida de los transformadores ZMPT101B se hace necesario usar amplificadores para poder manejar la señal. En el mercado existen unos módulos que vienen preparados directamente para conectar nuestro Arduino.

Dichos módulos contienen un amplificador que aumenta la señal y otro que añade un desplazamiento a la señal de 2.5V. Esto obliga a que el Arduino deba hacer muestreo de la señal para obtener la tensión adecuada.

Necesitaremos pues de una librería especifica para leer la tensión, podemos encontrar varias en GitHub.

He aquí el circuito de estos módulos:

Módulo propio ZMPT101B

El módulo comercial tiene la limitación de que es necesario un muestreo y nuestro Arduino ha de perder mucho tiempo analizando la señal alterna, por lo que para ciertas aplicaciones no es bueno.

La posible solución es crear un circuito que nos transforme la señal en un valor de tensión continua que se aplique a un pin analógico y con una pequeña transformación nos de un resultado válido.

En la parte del circuito del primario del transformador podemos notar que existen dos resistencias en serie R1 y R2 en vez de una sola. Esto se ha hecho para disminuir la potencia disipada por la resistencia. Si solo usamos una resistencia la potencia disipada puede llegar a ser superior a 1/4 de W que es lo máximo que aguantara una resistencia normal.

A la salida del secundario se ha colocado una resistencia de burden de 100Ohms.

La salida del burden ataca a la entrada de un amplificador de señal en configuración de amplificador no inversor. El valor de las resistencias R4 y R5 fijan la ganancia del amplificador, en este caso de 11(*).

(*) La ganancia la podemos ajustar a nuestro antojo, pero cercano a 10 será un valor apropiado.

La salida del amplificador se ha llevado a un rectificador de precisión que nos convertirá la señal de salida a una señal alterna pulsante.

La señal pulsante se aplana mediante un condensador C1 y se filtra a su salida mediante un filtro RC formado por las resistencias R7 y C2.

Los valores de los condensadores condicionan la precisión de la salida. Con valores altos de condensador la salida es más precisa y estable, tan solo que si la tensión de alterna baja mucho el condensador tardará un poco en bajar la señal continua. Con valores pequeños tendremos peor precisión y la señal continua tendrá mas rizado.

Calculadora de la resistencia

Cálculo de la resistencia del ZMPT101B

VRMS V
IMAX mA
Vpico V
R Ohms
P W

Referencias

Atmel AVR465: Single-Phase Power/Energy Meter with Tamper Detection

zmpt101b datasheet

Midiendo tensión alterna, circuitos. (Foro Arduino).