Tutorial sensor de corriente AC no invasivo SCT-013 Deja un comentario

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.

Sensores SCT-013

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.

Transformador SCT-013

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 AC 100A No invasivo

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

Sensor de Corriente AC 30A No invasivo

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:

Acondicionador SCT-013-030

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).

Acondicionador SCT-013-100

Debemos de tener en cuenta también los pines del conector, tiene un conector plug de audio:

conector SCT-013

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.

Conexion SCT-013 y 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.

Lectura SCT-013

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.

Plotter Lectura SCT-013

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.

Formula I rms

Y en tiempo discreto la ecuación seria:

Formula discreta I rms

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

Lectura de Potencia y corriente AC 25W

Y a continuación mostramos los resultados cuando se pone la misma carga que se usó en el primer ejemplo.

Lectura de Potencia y corriente AC

Y si verificamos con una pinza amperimétrica podemos validar nuestros resultados.

Lectura de pinza amperimetrica

Si su valor no coincide, hay que modificar el valor de 30 que representa  la proporción (30A/1V) en la ecuación cuyo valor no es 100% correcto. Para realizar esta calibración es recomendable trabajar con cargas grandes.

Adicionalmente en el código, después de calcular la potencia, pueden multiplicarlo por un diferencial de tiempo y con esto medir el consumo de energía.

Pueden adquirir los materiales usados en este tutorial en nuestra tienda:

– Arduino Uno R3

– Sensor de Corriente AC 30A No invasivo

– Sensor de Corriente AC 100A No invasivo

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?