En esta entrada veremos como medir la corriente la frecuencia y la potencia con un sensor de corriente no invasivo SCT-13-50, un amplificador dual LM358. La empresa poweruc a suministrado varios sensores para su revisión puede visitarlos en www.poweruc.com
Lo más interesante de este proyecto, es que la medición de la corriente la podemos hacer sin tener que abrir el circuito, porque el sensor sct013-50 es muy similar a una pinza ampirométrica.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 muchos videos con código fuentes completos y diagramas
Hay que tener en cuenta que sólo se debe pasar uno de los cables para hacer la medición, porque si pasamos los dos conductores obtendremos una lectura errónea.
Circuito
El circuito es muy simple de montar,la vamos a armar con un arduino nano, también podemos usar un arduino mega pero hay que hacer una leve modificación al código, por favor observar los comentarios en el código fuente, para ver que lineas se deben comentar y des comentar.
Vamos ha usar el display sh1106 para visualizar en todo momento la corriente consumida, la frecuencia de red y la potencia aparente. El LM358 es un amplificador operacional, cuya función es la rectificación de la onda alterna que genera el sensor sct-013-50, esta onda no es apta para el pin analógico A0 del arduino, porque este pin soporta tensiones que van desde 0 a 5 voltios y la tensión que puede entregar el sensor de corriente va de +/- 1 voltio.
El semi ciclo negativo puede dañar nuestro arduino, por lo que debemos eliminarlo, esto lo podríamos conseguir con diodos rectificadores pero los diodos de silicio provocan una caída de tensión de 0.7 voltios y los de germanio de 0.6 voltios, esto es demasiado para la señal que nos entrega el sensor de corriente sct0-013-50, así que vamos a usar un amplificador operacional el LM358 en su configuración como seguidor de tensión.
El LM358 es un amplificador operacional doble de propósito general, no requiere fuente dual, de alta ganancia, bajo consumo de potencia, ancho de banda 0.7 MHz.
Características:
-
- No. de amplificadores operacionales: 2
- No requiere fuente dual (Sin embargo con fuente sencilla no es posible que la salida obtenga voltajes negativos)
- Voltaje de alimentación: 3 V a 32 V fuente sencilla (±1.5 V a ±16 V fuente dual)
- Bajo consumo de potencia
- Ancho de banda típico: 0.7 MHz
- Compensado en frecuencia internamente
- Alta ganancia
- Compatible con todas las formas de lógica
La otra configuración del segundo amplificador operacional está seteado como un amplificador operacional no inversor.
Mirar el siguiente circuito
Circuito completo
Vamos a necesitar un resistor de 4.7 Kohm y 1 Mohm, a la salida vamos a tener una onda amplificada y cuadrada apta para conectar a un microcontrolador a un pin digital.
La frecuencia de esta onda, estará directamente relacionada con la frecuencia de red que se utilice en nuestro país, en este ejemplo será de 50 Hz, para lo zona donde vivo.
Vamos a poner un ejemplo tomado desde la experiencia y capturado con un osciloscopio.
La onda que genera el sensor de corriente, es una onda que va desde -1 voltios a 1 voltio, es una onda senoidal. El valor de voltaje entregado por el sensor, va a depender de la corriente consumida por el electrodoméstico.
A mayor corriente consumida, mayor voltaje entregado por el sensor.
Una vez rectificada la onda, por el primer amplificador operacional (recordemos que el LM358 tiene dos), sólo vamos a ver el semiciclo positivo de la onda, la cual la hace apta para los pines analógicos de cualquier microcontrolador.
PinOut LM358
En esta imagen podemos ver en la onda senoidal amarilla una señal alterna, que no es apta para nuestro arduino, más abajo en la onda verde vemos un una onda con rectificación de media onda.
Se observa que la frecuencia es casi de 5o Herz, la misma que la de la red eléctrica, que se usa es mi país, aprovecharemos esta frecuencia para obtener información y enviarla al arduino para su representación un display oled.
Comparamos las dos ondas, y observamos que la parte amarilla es el semiciclo negativo que no vamos a usar.
Comparamos las dos ondas, a primera vista parece que ambas ondas tienen la misma amplitud, pero si miramos bien los datos del osciloscopio, veremos que la onda cuadrada tiene 3.7 voltios, mientras que la semi onda rectificada es de 132 mV. 
Si vemos el multímetro la lectura es casi cero al igual que en el display oled, pero en el mismo podemos ver la intensidad consumida, la potencia y la frecuencia de red.
Para poder medir con el sensor la corriente sólo debemos pasar uno de los cables.
Acá podemos ver el consumo de corriente tanto en el multímetro como en el display, es casi igual , aunque podemos mejorar la presión modificando algunos parámetros en el código fuente.
Código Fuente
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
#include "U8glib.h"//Librería para el control del display oled #include <FreqCount.h>//Librería para medir la frecuencia de una señal U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);// I2C / TWI // Se habilita esta linea según el display a usar en este caso el driver SH1106 unsigned long contador=0; float intencidad; float sensor; float potencia; void setup() { Serial.begin(9600);//velocidad de seteo del puerto serial analogReference(INTERNAL);//Configura la tensión de referencia utilizada para la entrada analógica 1.1 voltios //analogReference(INTERNAL1V1); //si usamos Arduino Mega FreqCount.begin(1000); } void loop() { float ondac=0; long retardo=millis(); int s=0; while(millis()-retardo<1000)//Duración de un segundo { //-------Ecuaciones para el calculo de la intencidad y potencia sensor = analogRead(A0) * (1.1 / 1023.0);//voltaje del sensor(se puede cambiar el valor para lograr mayor presisción) intencidad=sensor*50; //(50A/1V) ondac=ondac+sq(intencidad);//Sumatoria de Cuadrados/ sq-->cuadrado de un número s=s+1; delay(1); } ondac=ondac*2;//Para compensar los cuadrados de los semiciclos negativos. intencidad=sqrt((ondac)/s); //ecuación del RMS sqrt-->raiz cuadrada potencia=intencidad*220.0; // P=IV (Watts) cualculo de la potencia Serial.print("Corriente: "); Serial.print(intencidad,4); Serial.print(" Amperes, Potencia: "); Serial.print(potencia,4); Serial.println(" Watts"); contador = FreqCount.read();//Devuelve la medición más reciente, la medición se hace por defecto en el pin numero 5 del arduino Serial.print("Freq:"); Serial.println(contador);//Imprime el valor de la frecuencia obtenida en el monitor serial //} //--------Muestra en la pantalla los valores obtenidos de intencidad, potencia y frecuencia----------------- u8g.firstPage(); do { draw();//Llama a la función draw } while( u8g.nextPage() ); // Reconstruye la imagen después de un tiempo delay(50); } void draw(void) { //Los comandos gráficos para volver a dibujar la pantalla completa deben colocarse aquí u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); u8g.print("Int:"); u8g.print(intencidad,4); u8g.print("A"); u8g.setPrintPos(0, 40); u8g.print("Pot:"); u8g.print(potencia,4); u8g.print("W"); u8g.setPrintPos(0, 60); u8g.print("Fre:"); u8g.print(contador); u8g.print("Hz"); } |
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 muchos videos con código fuentes completos y diagramas
SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS MÁS DESTACADAS, SÓLO INGRESANDO TU CORREO ELECTRÓNICO
[wysija_form id=”1″]
VIDEO RECOMENDADO









Hola, primero que todo tu proyecto es muy interesante, lo ajuste a los valores de mi país pero tengo un problema con los ajustes, los valores iniciales con el sensor sin sensar no dan cero y cuando le conecto el sensor tampoco varia ni marca frecuencia, yo utilice a diferencia un arduino uno r3, y un sct 013 100A/50mA, 60 Hz , 110 V, como hago para que sin sensar nada marque 0 , te lo agradeceria.
sensor = analogRead(A0) * (1.1 / 1023.0);//
estimado me puedes explicar el parámetro 1023, te quedo agradecido