Está en la página 1de 39

Tutorial sensor de corriente AC no invasivo SCT-013

En este tutorial trabajaremos con los sensor de corriente de la serie SCT-


013, realizaremos ejemplos para medir la potencia y corriente alterna.
Sensores SCT-013
Los sensores de la serie SCT-013 son sensores que trabajan como transformadores, la corriente que circula por el
cable que deseamos medir actúa como el devanado primario (1 espira) e internamente tiene un devanado secundario
que dependiendo del modelo pueden tener hasta más de 2000 espiras.

La cantidad de espiras representa la relación entre corriente que circula por el cable y la que el sensor nos entrega,
esta relación o proporción es la que diferencia entre los diferentes modelos de sensores SCT-013, adicionalmente
pueden tener una resistencia de carga en la salida de esta forma en lugar de corriente se trabaja con una salida
voltaje.
A este tipo de sensores se los conoce como Sensores CT (Current transformers), que como se explicó son
transformadores, Por el núcleo solo debe de atravesar una sola línea, si pasamos por ejemplo los dos cables de una
conexión monofásica, nuestra lectura será 0, puesto que los cables tienen corrientes opuestas.

Una ventaja de SCT-013 es que no necesitamos interrumpir (cortar o desempalmar) el cable que vamos a medir, esto
porque al igual que una pinza amperimétrica tiene el núcleo partido.
Entre los diferentes modelos podemos encontrar:

Sensor de corriente SCT-013-100


Con este sensor podemos medir una corriente hasta de 100A, teniendo como salida 50mA para una corriente de
100A, la proporción entonces es de 100A/50mA.
Sensor de corriente SCT-013-030
Nos permite realizar medidas en un rango de 3A. Este modelo tiene una resistencia de carga interna, entregándonos
una salida de voltaje. La relación es de 30A/1V
Circuito acondicionador de señal.

La salida de este sensor es una señal alterna, cuyo valores no está dentro del rango de las entradas analógicas (0 a
+5V) del Arduino, si bien el rango del sensor puede ser inferior, la parte negativa de la señal podría malograr a nuestro
Arduino.

Lo ideal es, si nuestro sensor tiene una salida de -50mA a +50mA acondicionarlo a una salida de 0 a 5V. Esto se
podría realizar convirtiendo de corriente a voltaje,(a un rango de [-1V +1V]), luego amplificarlo(a [-2.5V +2.5V]) y
finalmente un sumador para eliminar la parte negativa([0 5V]).

Otra forma seria rectificando la entrada y trabajar con la parte positiva, esto asumiendo que la señal es simétrica.
Nosotros usaremos esta forma.

Para rectificar no podemos usar diodos, puesto que la caída de voltaje en el diodo es muy grande en comparación al
voltaje de la señal. Para esto usamos un operacional, configurado en un seguidor de voltaje, usaremos el operacional
LM358, que trabaja con polaridad positiva, de esta forma se eliminará la parte negativa de la señal, si bien no es un
rectificador de onda completa, pero con una rectificación de media onda podemos trabajar.

El LM358 si se alimenta con 5V, se satura con 3.5V aproximadamente, motivo por el cual no podemos amplificar hasta
5V, pero si trabajamos con Arduino no necesitamos alcanzar los 5V, podemos trabajar con la referencia interna de
1.1V y de esta forma aprovechar en el rango completo de la lectura a analógica.
Si estamos trabajando con el sensor SCT-013-030, significa que la salida está en un rango de +/-1V, entonces nuestro
circuito que usaremos es:
Y si el sensor es de salida de corriente como el SCT-013-100 hay que ponerle una resistencia de carga para que esté
en un rango de 1V (50mAx20ohmios=1V).
Debemos de tener en cuenta también los pines del conector, tiene un conector plug de audio:

El pin central está desconectado, los otros dos son la salida del sensor.

Conociendo esto podemos empezar a implementar las conexiones para poder trabajar con estos sensores:
Conexión CST-013 y Arduino:
La conexión es simple, implementar el circuito explicado anteriormente y después conectarlo al pin analógico 0 del
Arduino.

No olvidar poner la resistencia respectiva si están trabajando con un sensor con salida de corriente.

También no olvidar que solo se debe pasar por el sensor un solo cable de la línea que se desea medir.
Realizando lecturas de la Corriente.
Para esto, básicamente realizaremos lecturas de la entrada analógica, posteriormente escalamos los valores a voltaje
(voltaje del sensor), y finalmente con la relación (Corriente/Voltaje) que tenemos como dato del sensor obtendremos la
corriente.

El código se muestra a continuación:

void setup() {
Serial.begin(115200);
analogReference(INTERNAL);
}
void loop() {
int sensorValue = analogRead(A0); //Lectura analógica
float voltajeSensor = analogRead(A0) * (1.1 / 1023.0); //voltaje del sensor
float corriente=voltajeSensor*30.0; //corriente=VoltajeSensor*(30A/1V)
Serial.println(corriente,3);//enviamos por el puerto serie
}
Como se observa es una simple lectura analógica. En la siguiente línea se realiza el cálculo para obtener la corriente:

float corriente=voltajeSensor*30.0; //corriente=VoltajeSensor*(30A/1V)

Dependiendo del sensor que tengan deben cambiar el 30.0 por la relación correspondiente a su sensor.

Si están usando Arduino mega, tiene dos referencias internas para su lectura analógica, hay que usar la referencia de
1.1V, para esto si están usando un Arduino Mega hay que cambiar la siguiente línea de código:

analogReference(INTERNAL1V1); //solo Arduino Mega


A continuación se muestra la salida del monitor serial cuando estamos midiendo una carga de 600W.

No olviden escoger la velocidad de 115200 baudios.


Y si abren el Serial Plotter de Arduino verán los mismos datos pero de forma gráfica, y se puede observar que es una
señal rectificada pero solo en media onda.

Con este ejemplo podemos ver el comportamiento de la corriente, generalmente cargas puramente resistivas
muestran semi-ciclos sinusoidales, otro tipo de cargas no necesariamente tendrán ese aspecto.
Realizando Medidas de Potencia y Corriente AC (Irms)
Sabiendo la corriente en cada instante podemos calcular la corriente eficaz o Irms y con esto también calcular la
Potencia.

El corriente RMS (Root Mean Square) o valor eficaz, es la corriente capaz de producir el mismo trabajo que su valor
en corriente directa o continúa. La corriente RMS es el valor que nos entregan los instrumentos de medición, como
por ejemplo una pinza amperimétrica.

Para calcular el RMS se utiliza la siguiente formula.

Y en tiempo discreto la ecuación seria:


Donde N es la cantidad de muestras en un periodo o múltiplo de este.

Con esta fórmula podemos obtener el valor RMS, y conociendo el voltaje (en Perú 220AC) podemos calcular la
Potencia.

A continuación mostramos el código para realizar el ejemplo:

void setup() {

Serial.begin(9600);

analogReference(INTERNAL);

//analogReference(INTERNAL1V1); //solo Arduino Mega


}
void loop() {

float Irms=get_corriente(); //Corriente eficaz (A)

float P=Irms*220.0; // P=IV (Watts)

Serial.print("Irms: ");

Serial.print(Irms,3);

Serial.print("A, Potencia: ");

Serial.print(P,3);

Serial.println("W");

//delay(100);
}
float get_corriente()
{
float voltajeSensor;

float corriente=0;

float Sumatoria=0;

long tiempo=millis();

int N=0;

while(millis()-tiempo<500)//Duración 0.5 segundos(Aprox. 30 ciclos de 60Hz)


{
voltajeSensor = analogRead(A0) * (1.1 / 1023.0);////voltaje del sensor

corriente=voltajeSensor*30.0; //corriente=VoltajeSensor*(30A/1V)

Sumatoria=Sumatoria+sq(corriente);//Sumatoria de Cuadrados

N=N+1;

delay(1);
}
Sumatoria=Sumatoria*2;//Para compensar los cuadrados de los semiciclos negativos.

corriente=sqrt((Sumatoria)/N); //ecuación del RMS

return(corriente);
}
Notar que duplicamos el valor de la sumatoria para compensar el semiciclo negativo que se anuló en la rectificación
de media onda.
El tiempo que dura la toma de muestras para el cálculo del RMS, debe ser múltiplo del Periodo. En nuestro caso
500ms que representan 30 ciclos de una señal de 60Hz. Si se desea una lectura más rápida, podemos disminuir este
tiempo.
A continuación mostramos los resultados cuando medimos la corriente de un foco ahorrador de 25W
Y a continuación mostramos los resultados cuando se pone la misma carga que se usó en el primer ejemplo.
Procedimiento de calibración
¿Por qué calibrar?
Es imposible fabricar cualquier cosa con absoluta precisión. En términos generales, cuanto más precisamente se
fabrica algo, más costoso es. Considere la entrada de corriente emonTx como un ejemplo relativamente simple. Si
asumimos por ahora que no tenemos ningún error en el boceto, tenemos 3 factores físicos que contribuirán a la
incertidumbre en el valor que leemos para la corriente. Estos son:

• La relación de transferencia del transformador de corriente.


• El valor de la resistencia de carga.
• La precisión con la que se mide el voltaje de carga.
El ítem 3 tiene dos componentes: no linealidad ADC e incertidumbre de referencia. Normalmente, ambos tienen tres
componentes que contribuyen al posible error en mayor o menor medida:

• Una incertidumbre inicial en el valor en el momento de la fabricación.


• Deriva debido a cambios físicos con el tiempo.
• Influencias externas.
La calibración es un medio de corregir el primero de estos, y si se realiza regularmente, también corregirá el segundo.
A menos que pueda eliminar o proteger su dispositivo de influencias externas, generalmente hay muy poco que pueda
hacer para contrarrestar sus efectos.

Aquí encontrará una evaluación completa de las fuentes de error en la medición de emonTx. En el peor de los casos,
la medición de la potencia real o aparente podría estar en error en casi un 11.25% sin calibración (emonTx V3.4.4).
Con la calibración contra un multímetro a un precio razonable, la precisión debe ser de alrededor del 6%.
Calibrar el voltaje de referencia interno
Este procedimiento no es aplicable al emonTx V3 utilizando el boceto predeterminado. Para todas las demás
variantes, se recomienda si está utilizando baterías para alimentar su emonTx; es opcional si está utilizando una
fuente de alimentación principal. Debe hacer esto primero, antes de ajustar las constantes de calibración. Si cambia la
calibración de la referencia interna, será necesario corregir las constantes de calibración.

Mirando la tabla en el artículo Multímetros , cada medidor dio la mejor precisión al medir el suministro de 3.3V, y lo
peor tuvo un posible error de aproximadamente 1%. En la biblioteca emonLib, tenemos un método que puede medir el
suministro en comparación con la referencia interna. Por lo tanto, utilizando este método y midiendo el suministro con
un multímetro, es posible calibrar la referencia de banda prohibida interna a la precisión de nuestro multímetro,
simplemente cambiando la constante "1126400L" en readVcc () para que devuelva el mismo valor como el multimetro.
Un simple boceto CalVref [ descargar ] para calcular la constante de calibración dado el valor medido de V CC , es
todo lo que se necesita.

Cuando hacemos esto, mejoramos dramáticamente la precisión dentro de la cual se conoce el valor de la referencia
interna de banda prohibida, de ahí la precisión del voltaje de la batería.
Método de calibración recomendado

(Esto se aplica igualmente a emonPi, emonTx, emonTx Shield y una placa Arduino, o una versión personalizada o
prototipo)
Necesitará:
Un multímetro o voltímetro para medir el voltaje de la red.
El mismo multímetro o un amperímetro para medir corriente.
Una carga resistiva. por ejemplo, un hervidor de agua, calentador eléctrico, etc.
Puntos a tener en cuenta:
La carga debe dibujar una corriente cercana, pero inferior al máximo que puede medir su medidor.
El uso de una carga de prueba pequeña como una bombilla de 40, 60 o 100 vatios NO producirá resultados correctos.
Si no tiene un multímetro, o no está seguro de poder medir su red eléctrica de manera segura, puede usar un medidor
de energía enchufable. En ese caso, en el procedimiento que sigue, utiliza las lecturas del medidor de energía para
voltaje y corriente en lugar de las del multímetro. Si no tiene ninguna forma de medidor, consulte a continuación los
coeficientes de calibración comunes. Entonces, con el tiempo, podrá realizar pequeños ajustes para que la energía
total registrada coincida con el medidor de su proveedor de energía.
Procedimiento:
Si no tiene un programador y solo puede editar emonhub.conf en su emonPi, vaya a "Calibración en emonhub.conf".
Si desea calibrar completamente su emonTx, emonTx Shield, Arduino u otra cosa, o está enviando datos a
emonCMS.org sin usar el emonPi, continúe aquí.

Tenga mucho cuidado al trabajar con tensiones de red. Si está utilizando baterías para alimentar su emonTx, primero
debe calibrar la referencia interna.

1) Cargue uno de los bocetos de demostración de emonTxFirmware. Deberá elegir el apropiado para su versión de
emonTx. Si tiene el emonTx V3, use el boceto predeterminado (consulte el Wiki para ver cuál es), pero necesitará
agregar algunas declaraciones de impresión para leer por separado los valores de factor de potencia y corriente. Sin
embargo, tenga en cuenta que algunos bocetos especiales tienen su propio procedimiento de calibración particular.
En este caso, se describirá en un comentario en el boceto.

2) Mida el voltaje de la red y ajuste la constante de voltaje 240.0 (emonTx_CT123) en líneas como esta
emontx.power1 = ct1.calcIrms(1480) * 240.0; (emonTx V2)

o
const byte Vrms = 230; (emonTx V3)

al valor promedio que lee o ajusta la constante de calibración de voltaje 236.39 (emonTx_CT123_Voltage) en líneas
como esta
ct1.voltageTX(236.39, 1.7); (emonTx V2)

const float Vcal = 284.9667; (emonTx V3)


para que el voltaje informado por el emonTx sea el mismo que el voltaje que mide con su medidor. El nuevo
coeficiente de calibración se puede calcular mediante:

New calibration = existing calibration × (correct reading ÷ emonTx reading)


3) Inserte su medidor en serie con la carga y sujete el
transformador de corriente sobre uno de los cables. Conéctese
a la red eléctrica, mida la corriente y ajuste la constante de
calibración actual 111.1 (o 90.9 o 60.6) en líneas como esta

ct1.currentTX(1, 111.1);(emonTx V2)


o

const float Ical = 90.9; (emonTx V3)


para que la corriente informada sea la misma que la actual que
mide. Consulte las instrucciones de su medidor en caso de que
haya un límite de tiempo para realizar la medición. Si es así,
debe realizar la medición rápidamente y dejar pasar el tiempo
suficiente para que el medidor se enfríe antes de repetir.
4) Si está utilizando la entrada de voltaje, con la carga conectada, ajuste la calibración del
ángulo de fase 1.7 en líneas como esta

ct1.voltageTX(236.39, 1.7); (emonTx V2)


o

const float phase_shift = 1.7; (emonTx V3)


para que la potencia real y la potencia aparente lean el mismo valor (y el factor de
potencia sea lo más cercano posible a 1,00). Su medidor no es necesario para esto.

El coeficiente de calibración de fase normalmente no debe salir del rango 0.0 - 2.0

5) Verifique nuevamente la calibración de voltaje. Es posible que


necesite un ligero ajuste si la calibración del ángulo de fase se
modificó significativamente.Vuelva a verificar la calibración del
ángulo de fase.
voltaje y la potencia para establecer los valores correctos. Si no tiene estos, entonces podría estimar el error comparándolo con
las lecturas del medidor de su proveedor de energía, por ejemplo.

Puede ajustar la mayor parte de la calibración editando el archivo "emonhub.conf" en su emonPi. Puede hacerlo utilizando
emonCMS y un navegador web. En sus emoncms locales, vaya a Configuración → EmonHub → Editar configuración

Esto abre un editor donde puede editar el archivo. Desplácese un poco hacia abajo hasta que vea algo como esto:

#######################################################################
####################### Nodes #######################
#######################################################################

[nodes]

## See config user guide: http://github.com/openenergymonitor/emonhub/blob/master/configuration.md

[[5]]
nodename = emonpi
[[[rx]]]
names = power1,power2,power1pluspower2,vrms,t1,t2,t3,t4,t5,t6,pulsecount
datacodes = h, h, h, h, h, h, h, h, h, h, L
scales = 1,1,1,0.01,0.1,0.1,0.1,0.1,0.1,0.1,1
units = W,W,W,V,C,C,C,C,C,C,p
[[5]]
nodename = emonpi
se refiere al emonPi. Más abajo en la página hay bloques similares para emonTx (varios bocetos), emonTH, etc.

Dos líneas aquí son de interés. La línea que comienza con "nombres =" enumera los nombres de los elementos de datos que
recibe emonHub, y la línea que comienza con "escalas =" enumera factores de escala para los números correspondientes. El
propósito original de "escalas =" era poder restaurar el valor original cuando, por ejemplo, el voltaje se multiplicaba en la fuente
por 100 para enviar el valor como un entero mientras se conservaba una resolución de 0.01 V. En el ejemplo anterior, "power1",
"power2" y "power1pluspower2" se multiplican por 1 (los valores están en vatios, por lo que no se ha aplicado la escala previa),
pero "vrms" se multiplica por 0.01

Sin embargo, aunque se puede usar "escalas =" para ajustar la calibración de amplitud, no puede ajustar ninguno de los valores en
emonHub para corregir el error de fase.

Por lo tanto, si, por ejemplo, determina que power1 está leyendo 1% bajo y el voltaje está leyendo 1.2% bajo, cambia los valores
primero y cuarto en la línea "escalas =" para que se lea:

scales = 1.01,1,1,0.01012,0.1,0.1,0.1,0.1,0.1,0.1,1
Nota importante: el voltaje y los tres valores de potencia se
calculan antes de enviarlos a emonHub, por lo tanto, no hay
interacción entre ninguno de los factores de escala . Esto
también es cierto para el emonTx.
Calibración teórica del sensor CT

Relación CT / resistencia a la carga = (100A / 0.05A) / 18 ohmios = 111.1 (para el emonTx V2)
Relación CT / resistencia a la carga = (100A / 0.05A) / 22 ohmios = 90.9 (para el emonTx V3 CT1-3)
Relación CT / resistencia a la carga = (100A / 0.05A) / 120 ohmios = 16.67 (para el emonTx V3 CT4)

Relación CT / resistencia a la carga = (100A / 0.05A) / 33 ohmios = 60.6 (para el escudo emonTx)
En la práctica

El CT tiene una precisión establecida de ± 3%. La resistencia de carga CT es un componente de tolerancia del 1%, por lo que el
error total debe ser inferior al 4%. Por lo tanto, el rango esperado para la calibración CT para el emonTx es 106.66 - 115.54
(58.18 - 63.02 para el escudo emonTx), siempre que la referencia interna se haya calibrado con precisión. Debido a que el
firmware emonTx V3 no usa la referencia interna por defecto, se debe agregar un 1% adicional para la tolerancia del regulador de
voltaje y, por lo tanto, el rango esperado debe ser 86.35 - 95.45.

Coeficiente de
Resistencia de carga
calibración actual
15 Ω ± 1% - viejo 133,3
18 Ω ± 1% - enviado de serie en el kit emonTx V2 111,1
22 Ω ± 1% - estándar en emonTx V3 para CTs 1-3 90,9
120 Ω ± 1% - estándar en emonTx V3 para CT 4 16,67
33 Ω ± 1% - enviado de serie en el kit emonTx Shield 60,6
Cómo construir un monitor de energía Arduino: medición de
voltaje y corriente de red
Incluyendo la medición de voltaje a través del adaptador de
voltaje AC-AC y la medición de corriente a través de un sensor
CT.
Esta guía detalla cómo construir un monitor de energía
eléctrica simple que pueda usarse para medir la cantidad de
energía eléctrica que utiliza en su hogar. Mide el voltaje con un
adaptador de alimentación de CA a CA y la corriente con un
clip en el sensor CT, lo que hace que la configuración sea
bastante segura ya que no se necesita trabajo de alto voltaje.

El monitor de energía puede calcular la potencia real, la


potencia aparente, el factor de potencia, el voltaje eficaz, la
corriente eficaz. Todos los cálculos se realizan en el dominio
digital en un Arduino.
Necesitará:

1x Arduino

Electrónica de detección de voltaje:

1x Adaptador de corriente CA-CA de 9V


1x Resistencia de 100kOhm para divisor de voltaje
descendente
1x Resistencia de 10kOhm para divisor de voltaje descendente
2x 470kOhm (para divisor de voltaje, cualquier par de
resistencias de valor equivalente hasta 10K)
1x condensador de 10uF

Electrónica de detección de corriente

1x sensor CT SCT-013-000
1x resistencia de carga 18 ohmios si el voltaje de alimentación
es 3.3V o 33 ohmios si el voltaje de alimentación es 5V
2x 470kOhm (para divisor de voltaje, cualquier par de
resistencias de valor equivalente hasta 10K)
1x condensador 10uF

Otro
Paso dos: ensamble la electrónica
La electrónica consta de los sensores (que producen señales
proporcionales al voltaje y la corriente de la red) y la
electrónica del sensor que convierte estas señales en una forma
con la que el Arduino está contento.

Para un diagrama de circuito y una discusión detallada de


sensores y electrónica, ver:

CT Senors - Introducción
Sensores CT - Interfaz con un Arduino
Medición de voltaje de CA con un adaptador de alimentación
de CA a CA
Ensamble los componentes como en el diagrama de arriba.
Paso tres: sube el boceto Arduino
El boceto Arduino es la pieza de software que se ejecuta en
Arduino. El Arduino convierte los datos sin procesar de su
entrada analógica en buenos valores útiles y luego los envía a
serie.

a) Descargue EmonLib desde github y colóquelo en su carpeta


de bibliotecas arduino.

Descargar: EmonLib

b) Cargue el ejemplo de voltaje y corriente:


#include "EmonLib.h" // Incluye Emon Library
EnergyMonitor emon1; // Crear una instancia

configuración nula ()
{
De serie . comenzar (9600);

emon1.voltage (2, 234.26, 1.7); // Voltaje: pin de entrada,


calibración, cambio de fase
emon1.current (1, 111.1); // Actual: pin de entrada,
calibración.
}

bucle vacío ()
{
emon1.calcVI (20,2000); // Calcular todo. No de
longitudes de onda, time-out
emon1.serialprint (); // Imprime todas las variables
}

También podría gustarte