Select Page

El medidor de corriente AC SCT-013, en una palabra mide el consumo eléctrico en tu casa con Arduino o varias :). La familia SCT-013 son sensores de corriente no invasivos para medir la intensidad de corriente ALTERNA que circula por un conductor sin cortar el cable o conductor.

El uso más común del SCT-013 con un Arduino es para controlar el consumo eléctrico domiciliario, de una fase o múltiples, de un aparato en particular.

ANTES DE SEGUIR AVANZANDO: ASEGURATE DE TOMAR LOS RECAUDOS NECESARIOS PARA MANEJAR REDES DE ALTA TENSIÓN

Los sensores SCT-013 estan construidos como un transformador de corriente, que proporciona una medición proporcional a la corriente que atraviesa el circuito. Este tipo de medición indirecta, se la conoce como inducción electromagnética.

transformador SCT-013
transformador SCT-013

Los sensores SCT-013 tienen forma de pinza y un encastre para cerrarlos, lo que permite abrirlo para envolver al conductor de una instalación sin necesidad de cortarlo. Esta característica es clave, dado que muchas veces, no se puede cortar el conductor, porque no se puede apagar la máquina o porque circula mucha mucha MUCHA corriente (100 500A).

sensor SCT-013 abierto pinza
sensor SCT-013 abierto tipo pinza
Medidor de Corriente AC SCT-013 2

Este sensor se puede utilizar en modo tipo pinza amperométrica y que, gracias a su diseño de núcleo partido nos permite efectuar la medida de intensidad eléctrica que circula por dicho cable. 

Colocación correcta del SCT-013

ADVERTENCIA: COLOCAR UN SOLO CABLE de la instalació. Solo funciona pasando un cable vivo o neutro. Si pasamos los dos cables no medirá nada por la Ley de Faraday o alguna similar que no viene al caso.

Si se puede colocar DOS VIVOS de la misma fase por ejemplo, teniendo en cuenta de colocarlos en el mismo sentido.

Si enhebramos más de un conductor (dos conductores en el caso de instalaciones monofásicas, tres en instalaciones trifásicas) el efecto de los conductores se anularía. Esto generando una inducción nula y, por tanto, una medición nula.

Vamos a ver cómo tenemos que abrazar los cables de alta tensión con el sensor de corriente alterna SCT-013. No vale de cualquier forma, hay que hacerlo de una manera determinada ya que de lo contrario, no estaremos midiendo correctamente el consumo.

Quizás esta sea una de las partes más complejas de la conexión ya que en muchos casos tendremos que quitar la funda que recubre los cables y dejar al descubierto la fase y el neutro. Lo más importante es que tenemos que abrazar solo uno de estos cables, en caso contrario la medición será cero.

Esto es debido a que por uno de los cables la corriente fluye en un sentido y por el otro cable fluye en sentido contrario. Si abrazamos los dos cables un flujo magnético compensará al otro flujo magnético y se anulará.

Medidor de Corriente AC SCT-013 3
Colocación correcta del SCT-013

Mi consejo es que te hagas con una zapatilla o regleta o con un alargue. Lo modifiques y hagas todas las mediciones sobre ese cable. De esa manera si quieres medir otro aparato eléctrico solo tendrás que llevarlo donde quieras y hacer de nuevo las conexiones.

Es importante utilizar cables de buena calidad. Por tu seguridad y para conseguir una buena precisión.

Medidor de Corriente AC SCT-013 4
  • Tripolares. (tres conductores): gris, marrón y negro (las tres fases).
  • Tetrapolares. (cuatro conductores): gris, marrón y negro (las tres fases) y azul (neutro).
  • Tetrapolares. (cuatro conductores): gris, marrón y negro (las tres fases) y amarillo-verde (tierra).

Seguramente encuentres tres cables cuando quites la funda que cubre todo. En uno de los cables de fase (y solo uno) es donde tienes que abrazar el sensor SCT-013. El tercer cable suele ser de color verde y amarillo y sirve para la toma de tierra.

Familia y datasheet SCT-013

Tenemos una lista de sensores de corriente que nos provee el fabricante, que cambia en la cantidad de corriente que pueden medir.

Medidor de Corriente AC SCT-013 5

Como puedes ver en la primer opción de la tabla, hay un sensor que mide 100A pero la salida en lugar de ser por tensión, es por corriente. Este dato es crítico, porque afecta la forma de conectar al microcontrolador. Este caso se usa mas que nada en PLC y aplicaciones industriales cuyo estándar es la comunicación por corriente.

ESPECIAL SCT-013-000

El SCT-013-000 es el único que nos proporciona una corriente y no tiene resistencia de carga. Puede medir una corriente de entre 50 mA y 100 A.

Con Arduino y otra placas como NodeMCU, solo podemos medir voltajes. Si además ese voltaje varía entre un mínimo y un máximo, solo podremos hacerlo a través de una entrada analógica.

Por otro lado, en estos cálculos debemos conocer el consumo aproximado del aparato que vamos a medir. Esto nos permitirá ajustar la precisión. El SCT-013-000 puede medir en 50 mA hasta los 100 A.

Vamos entonces a ver los cálculos que necesitamos hacer.

Para entender la conexión del sensor SCT-013-000 tenemos que entender y resolver tres problemáticas,

  • Salida del sensor en intensidad
  • Adaptación de rango de tensión
  • Tensiones positivas y negativas

SALIDA DEL SENSOR EN INTENSIDAD

El SCT-013 son transformadores de intensidad, es decir, la medición se obtiene como una señal de intensidad proporcional a la corriente que circula por el cable. Pero los procesadores solo son capaces de medir tensiones.

Este problema es sencillo de resolver. Para convertir la salida en intensidad en una salida de tensión únicamente tendremos que incluir una resistencia (resistencia burden).

Excepto el modelo SCT-013-100, todos los demás modelos tienen una resistencia de burden interna para que la salida sea una señal de tensión de 1V. Por lo cual ni siquiera tendremos que preocuparnos por ello.

Únicamente en el caso del SCT-013-100, carece de resistencia burden interna, por lo que la salida es una señal de ±50mA. Una resistencia de 33Ω en paralelo con el sensor será suficiente.

TENSIONES POSITIVAS Y NEGATIVAS

Otro problema que tenemos que resolver es que estamos midiendo corriente alterna, y la intensidad inducida en el secundario es igualmente alterna. Tras el paso por la resistencia de carga o burden (interna o externa) la salida de tensión también es alterna.

Sin embargo, como sabemos, las entradas analógicas de la mayoría de procesados, incluidos Arduino, sólo pueden medir tensiones positivas.

Para poder medir las tensiones de la salida del transformador tenemos varias opciones, de peor a mejor.

  • Rectificar la señal mediante un puente de diodos, y medir la onda como valores positivos. No recomendable dado que perdemos la información de si estamos en el semiperiodo negativo o positivo, además porque tendremos la caída de tensión del diodo y, aún peor, el diodo no conduce por debajo de una tensión por lo que la señal estará distorsionada en los cruces por cero.
  • Añadir un offset en DC mediante el uso de dos resistencias y un condensador que proporcionen un punto medio entre GND y Vcc. Mucho mejor si además añadimos un amplificador operacional como seguidor de tensión.
  • Añadir un ADC con entrada diferencial, que permite realizar mediciones de tensiones positivas y negativas, como el ADS1115. Es la opción que vamos a usar nosotros.

Añadir un offset en DC

Asumiendo que ya adaptamos de corriente a tensión, ahora solo se debe levanta la corriente, dado que la entrada del sensor es alterna, la salida tambien lo sera y los micros no leen tensiones negativas. La salida del sensor con la resistencia de carga sería como la siguiente.

Medidor de Corriente AC SCT-013 6

Así que tenemos que modificar la señal para que pase a estar en el rango de 0V a 5V. Eso se hace añadiendo un offset en DC a nuestra señal y se vería como la siguiente:

Medidor de Corriente AC SCT-013 7

Basta con sumar 2,5V y estaría resuelto. Esto lo haremos a través de un circuito conocido como circuito offset en DC. Básicamente consiste en poner un divisor de tensión y un condensador. El condensador tiene que ser de 10μF y unos pocos cientos de voltios. Esto hace que la reactancia sea baja y la corriente alterna evite la resistencia.

El valor de las resistencias del divisor de tensión puede ser 10kΩ siempre y cuando lo alimentemos a través de la red eléctrica. Si tu dispositivo va a funcionar con pilas utiliza unas resistencias de 470kΩ para que el consumo sea mínimo.

Añadir un ADC con entrada diferencial

Vamos a usar un sensor con salida de tensión ±1V RMS y resistencia burden interna, junto con un ADC como el ADS1115 en modo diferencial.

Ajustando la ganancia del ADS1115 a 2.048V estaremos dentro del rango de ±1.414V. En el caso de un sensor de 30A tendremos una precisión de 1.87mA, y 6,25 mA para un sensor de 100A.

Si usáis un SCT-013-100 con salida de ±50mA, tendremos que añadir una resistencia burden externa de 33Ω y subir la ganancia del ADS1115 a 4.096V para cumplir con el rango de ±2.33V.

Medidor de Corriente AC SCT-013 8

La conexión, vista desde Arduino, sería únicamente la alimentación del módulo ADS1115 como vimos en la entrada sobre el ADS1115.

Medidor de Corriente AC SCT-013 9

¿Por qué elegir un valor de corriente en particular?

No importa la cantidad de corriente a medir, el sensor siempre tira de 0 a 1V. Entonces, la cosa viene en la sensibilidad.

Si nosotros queremos medir 1A, en caso de que midamos 0.5A, la salida será de 0.5V, en cambio si compramos un sensor de 100A, la medida será de 0,005v. Lo cual es lógico que en 100A sea insignificante 0.5A y se pierda en la sensibilidad del sensor o en el ADC usado en el microcontrolador.

ArduPowerControl_03

Conexión SCT-013

En adelante, asumimos que usas un Arduino de Vcc 5V. Si usas otro procesador o un modelo de Arduino con otro Vcc (por ejemplo 3.3V) tenes que corregir el calculo en consecuencia.

Los sensores SCT-013 disponen de un conector Jack 3.5 o 2.5mm, usados muy frecuente en audio, pero no el más cómodo para emplear en nuestros proyectos de electrónica y menos con arduino.

Medidor de Corriente AC SCT-013 10
jack 3.5 o 2.5mm
plug SCT-013
plug SCT-013
Medidor de Corriente AC SCT-013 11
Lo mismo pero mas descriptivo

Para poder conectarlo tenemos que o cortar el cable, o adquirir un conector hembra al que soldamos los cables para trabajar más fácilmente. Afortunadamente son terminales fáciles de adquirir, aunque lo más recomendado es cortar el cable y ya.

Si lo haces encontrarás dos cables, uno rojo y otro blanco. Estos colores pueden variar dependiendo del fabricante y del modelo. Si no sabes muy bien como los tienes que conectar lo mejor es que pruebes.

Medidor de Corriente AC SCT-013 12

En mi caso tengo dos cables, rojo y blanco. El rojo va a al pin analógico y el blanco va a la conexión al punto medio de las resistencias. No te preocupes si todavía no entiendes las conexiones, ahora mismo veremos el circuito completo.

Da lo mismo como lo hagas, lo que sea más fácil para vos. Como siempre digo, hay que ponerse en acción y si tienes que esperar dos semanas a que te llegue el conector hembra más vale que cortes el cable 😉

Circuito completo SCT-013 y Arduino

Con resistencia de carga

Ahora sí, vamos a dar sentido a todo lo que hemos ido viendo y vamos a montar el circuito completo en la protoboard con el SCT-013 y Arduino. Incluimos en este circuito la resistencia de carga y el offset en DC. (aunque solo aplica al SCT-013-000. Si tenes los otros modelos seguir leyendo)

Medidor de Corriente AC SCT-013 13
resistencia de carga y circuito offset para SCT-013-000

Los otros modelos sin resistencia de carga

En este caso, solo necesitamos el circuito de offset.

Medidor de Corriente AC SCT-013 14
esquema de conexión con Arduino
Circuito-Arduino-Uno-SCT-0131

Productos necesarios para su implementación

  • Arduino UNO
  • Resistencias de 10Kohm x2
  • Capacitor de 10uF x 100V
  • Pantalla LCD de 16×2
  • Potenciómetro 10K para ajustar el contraste de la pantalla
  • Cables Macho/Macho

Programación del SCT-013 con Arduino

Vamos paso a paso, veamos cómo programar el sensor de corriente alterna SCT-013 con Arduino.

Para ayudarnos en esta tarea lo mejor es apoyarnos en una librería. En concreto vamos a utilizar Emonlib creado por el proyecto Open Energy Monitor. En este proyecto puedes ver muchas cosas de las que te he ido contando aquí. Ha sido la fuente de inspiración de este artículo.

Open Energy Monitor es un proyecto que nos proporciona diferente hardware para medir el consumo en multitud de dispositivos y aparatos. Han creado sus propias placas compatibles con Arduino.

Respecto al software hay dos partes. Una parte que se encarga del desarrollo del firmware para sus placas y otra parte que se centra en la nube. Al tratarse de hardware compatible con Arduino podemos utilizar su firmware y librerías en nuestros proyectos con Arduino.

Esta es una de las grandes ventajas del Open Source y del Open Hardware.

Instalando la librería Emonlib

A estas alturas ya estarás familiarizado con las librerías de Arduino, nuestras grandes amigas. De todas formas si no comprendes algo, puedes seguir este tutorial de cómo instalar librerías en Arduino.

Abre el gestor de librerías y busca Emonlib. También puedes descargarlo desde el repositorio en GitHub.

Medidor de Corriente AC SCT-013 15
Ahora ya si que podemos programar el SCT-013.

Programa para obtener la potencia con el sensor SCT-013

Como ya te he dicho, las librerías son nuestras amigas. Gracias a Emonlib no tenemos que hacer cálculos complejos. Con unas pocas líneas de código obtendremos de una forma muy sencilla la potencia que está consumiendo el aparato.

Este sería el código que tienes que cargar a tu Arduino. Ahora te explicaré algunas cosas que debes tener en cuenta.

Antes de seguir, fijate que hardcodeamos el valor de la tensión de red en 220. Esto no es real al 100% dado que se permite una fluctuación legal de la misma y nunca está fija en 220.

// Include Emon Library
#include "EmonLib.h"

// Crear una instancia EnergyMonitor
EnergyMonitor energyMonitor;

// Voltaje de nuestra red eléctrica
float voltajeRed = 220.0;

void setup()
{
  Serial.begin(9600);

  // Iniciamos la clase indicando
  // Número de pin: donde tenemos conectado el SCT-013
  // Valor de calibración: valor obtenido de la calibración teórica
  energyMonitor.current(0, 2.6);
}

void loop()
{
  // Obtenemos el valor de la corriente eficaz
  // Pasamos el número de muestras que queremos tomar
  double Irms = energyMonitor.calcIrms(1484);

  // Calculamos la potencia aparente
  double potencia =  Irms * voltajeRed;

  // Mostramos la información por el monitor serie
  Serial.print("Potencia = ");
  Serial.print(potencia);
  Serial.print("    Irms = ");
  Serial.println(Irms);
}

Lo primero es el voltaje de tu red eléctrica. Más adelante vamos a ver cómo obtener dicho voltaje con un multímetro. De momento partimos de la suposición que es 220V (lo más típico).

En la función setup() iniciamos la comunicación serie para poder mostrar los datos a través del monitor serie.

Luego iniciamos el objeto que hemos creado de la clase EnergyMonitor con la función current(pinAnalogico, factorCalibracion). Esta función admite dos parámetros:

  • pinAnalogico: es el pin analógico donde hemos conectado el sensor de corriente alterna SCT-013.
  • factorCalibracion: es un valor que tenemos que calcular para corregir errores de diferentes tipos como la tolerancia de la resistencia de carga o del propio sensor SCT-013.

El pin analógico no tiene duda. Según el esquema mostrado más arriba vamos a utilizar el A0 así que pasamos como argumento un 0. El factor de corrección de momento lo dejamos a 2,6. En el siguiente apartado veremos como se calcula.

Por último en la función loop() obtenemos la corriente eficaz llamando a la función calcIrms(numMuestras). Esta función admite un parámetro:

  • numMuestras: indica cuantas muestras tiene que tomar para calcular la corriente eficaz.

El número de muestras es importante. Como hemos estado hablando a lo largo de todo este artículo, estamos trabajando con una señal sinusoidal. Esto quiere decir que tiene ciclos que se van repitiendo en el tiempo.

El número de muestras indica el número de veces que se va a leer la señal para obtener el valor de la corriente eficaz. Es interesante que estas muestras sean en ciclos completos. Según la velocidad de acceso a los pines analógicos con Arduino UNO, aproximadamente podemos medir 106 muestras en cada ciclo.

Si estás utilizando otro microcontrolador este valor puede variar.

14\times 106 = 1484 muestras

Si queremos medir 14 ciclos (un valor recomendado por el proyecto Open Energy Monitor), tendremos que medir . De aquí viene el valor que se pasa a la función calcIrms().

Por último mostramos toda esta información a través del monitor serie.

Medidor de Corriente AC SCT-013 16

CONCLUCIONES

El sensor de corriente alterna SCT-013 sirve para medir corriente alterna y nada más. Hace muy bien su tarea si queremos conocer el factor de consumo de nuestra red en total. Podemos medir corriente de aparatos más chicos sin problemas tambien, pero debido a los factores de corrección de bobinado que debemos hacer para calibrarlo al 100% vamos a tener ciertos errores.

Para poder medir POTENCIA, deberíamos medir la tensión alterna y para eso se requiere otro sensor como el ZMPT101B o hacer cochinadas, como divisores resistivos optoacoplados. Para esto de verdad tenemos un sensor perfecto que mide tensión Y corriente llamado INA219.

A %d blogueros les gusta esto: