Medir consumo eléctrico.

Hola.

Llevo poco tiempo en el "Mundo Arduino", y la verdad es que es apasionante. Cada día se me ocurre algo nuevo para montar, lo malo es que no tengo tanto tiempo para dedicarle como me gustaría, pero en fin...

Al grano:
Estoy a medias en un proyecto y le quiero añadir un sistema para medir consumo de corriente eléctrica a 220V.
He visto este sensor (bueno, ya lo he comprado, jeje):

http://www.ebay.es/itm/110913996654?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_4261wt_952

El problema es que es lo único que he encontrado para medir corriente, y no encuentro ninguna información con respecto a cómo conectarlo a Arduino.
A ver si alguien me puede echar un manita. Un link o algo.
Muchas gracias.

Salu2.
Uraken.

Hola:
yo estoy haciendo algo parecido y el sensor que he comprado es el siguiente:
http://es.farnell.com/fw-bell/na25/hall-effect-current-sensor/dp/1530423
todavia no me ha llegado pero es lo que he encontrado.
Espero que te sirva la información, de todas maneras si consigo que funciones lo posteare.
Un saludo.

El problema es que soy un poco ansioso y compré el del link, jeje, así que ya que lo tengo trataré de aprovecharlo.
Si no, la tuya es una buena opción.

Salu2.
Uraken.

@Uraken tu sensor es sencillo de conectar a Arduino. Existe un proyecto bastante conocido y nombrado otras veces en este foro para realizar un medidor de energía eléctrica, es http://openenergymonitor.org
Para medir la corriente lo hacen con un sensor como el tuyo, un transformador de intensidad. Puedes ver cómo lo hacen en http://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface

Cheyenne:
@Uraken tu sensor es sencillo de conectar a Arduino. Existe un proyecto bastante conocido y nombrado otras veces en este foro para realizar un medidor de energía eléctrica, es http://openenergymonitor.org
Para medir la corriente lo hacen con un sensor como el tuyo, un transformador de intensidad. Puedes ver cómo lo hacen en http://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface

Gracias Cheyenne por la información, pero ese blog es lo único que había encontrado interesante sobre el tema y no me aclara mucho, por eso puse este post aquí.

Salu2.
Uraken.

Uraken:

Cheyenne:
@Uraken tu sensor es sencillo de conectar a Arduino. Existe un proyecto bastante conocido y nombrado otras veces en este foro para realizar un medidor de energía eléctrica, es http://openenergymonitor.org
Para medir la corriente lo hacen con un sensor como el tuyo, un transformador de intensidad. Puedes ver cómo lo hacen en http://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface

Gracias Cheyenne por la información, pero ese blog es lo único que había encontrado interesante sobre el tema y no me aclara mucho, por eso puse este post aquí.

Salu2.
Uraken.

hombre pues si ese blog no te aclara cosas mal lo tienes ejej
nunca he visto un proyecto tan bien explicado, tan detallado, con fotos, esquemas, codigo...etc
yo gracias a el he aprendido muchisimo, de hecho tengo un arduino basado en ese proyecto funcionando en mi casa ya 2 o 3 años y estoy mejorandolo dia a dia.
di que no te queda claro, quiza sea proque no hablas ingles?

Lo que no he entendido es la parte electrónica, cómo conectarlo al Arduino.
Sale este esquema:

Y no lo entiendo muy bien.
La Burden resistor esa, es algún tipo de limitador de corriente? También parece que hay un divisor de tensión....pero bueno, que no acabo de entenderlo, aparte de que mi inglés es de andar por casa, jeje.

Por otra parte he encontrado un sketch para probarlo:

#include "EmonLib.h" // Include Emon Library
EnergyMonitor emon1; // Create an instance

void setup()
{
Serial.begin(9600);
emon1.current(1, 111.1); // Current: input pin, calibration.
}

void loop()
{
double Irms = emon1.calcIrms(1480); // Calculate Irms only
Serial.print(Irms*230.0); // Apparent power
Serial.print(" ");
Serial.println(Irms); // Irms
}

Eso no parece muy complicao, jeje.

Salu2.
Uraken.

Uraken:
Lo que no he entendido es la parte electrónica, cómo conectarlo al Arduino.
Sale este esquema:

Y no lo entiendo muy bien.
La Burden resistor esa, es algún tipo de limitador de corriente? También parece que hay un divisor de tensión....pero bueno, que no acabo de entenderlo, aparte de que mi inglés es de andar por casa, jeje.

Vale ahora nos entendemos jeje

mira el burden es una resistencia normal y corriente. se utiliza porque el CT sensor lo que hace es sacar CORRIENTE y lo que nosotros necesitamos en VOLTAJE para poder medirlo con una entrada analogica del arduino. esa es la funcion del burden resistor, este puede tener cualquier valor, lo tienes que graduar tu según la potencia que vaya a pasar por tu cable, para que así genere un voltaje que sea menor siempre de 2,5Vdc. entendido ahora?

las dos resistencias Rvd son un simple divisor de tensión. Cogen los 5 V y Ground y sacan por tanto 2,5V. porque hacemos esto? porque arduino solo puede leer de 0 a 5V positivos. no puede leer voltaje negativo. la tensión que va a generar el burden resistor sera en AC ya que viene inducida por la corriente que pasa por el CT que es AC. al ser voltaje en AC lo que va a llegar al "analog in" hay que asegurarse que no es negativo, para eso aliemntamos con +2.5V y creamos un offset, es decir el voltaje que salga del burden sera con una base de 2,5V. subira ahcia 5V y bajara hacia 0V. por ello te tienes que asegurar que elijes un burden que no genere mas de 2,5V en AC, ya que sino sumarias 2,5Vac del CT y otros tanto del divisor de tensión y sobrepasarias los 5V de la entrada digital. queda claro este punto?

el condensador simplemenet es para suavizar los 2,5V.

ahora entiendes el circuito? yo tarde tambien mucho en entenderlo ya que no es mi especialidad.

Entonces, por lo que yo he entendido, la burden lo que hace es modificar su tensión según la corriente que circula con ella dependiendo de la que genere la bobina, ya que en Arduino sólo podemos medir una diferencia de tensión, y no de corriente.
No sé si lo he entendido bien...
Con lo que explica para calcular los componentes sí que no pillo ni papa....

  1. Choose the current range you want to measure

The YHDC SCT-013-000 CT has a current range of 0 to 100A so for this example lets choose 100A as our maximum current.

  1. Convert maximum RMS current to peak-current by multiplying by sqrt(2).

Primary peak-current = RMS current x sqrt(2) = 100A x 1.414 = 141.4A
3) Divide the peak-current by the number of turns in the CT to give the peak-current in the secondary coil.

The YHDC SCT-013-000 CT has 2000 turns and so the secondary peak current will be:

Secondary peak-current = Primary peak-current / no. of turns = 141.4A / 2000 = 0.0707A
4) To maximise measurement resolution the voltage over the burden resistor at peak-current should be the arduino analog reference voltage (AREF) divided by 2

If your using an arduino running at 5V: AREF / 2 will be 5V / 2 = 2.5V and so the ideal burden resistance will be

Ideal burden resistance = (AREF/2) / Secondary peak-current = 2.5V / 0.0707A = 35.4 Ohms
35 ohm is not a common resistor value we have a choice of 39 ohms or 33 ohms. We recommend going for 33 ohms +- 1%

If you're using an emontx operating off battery AREF will start at 3.3V and slowly decrease as the battery discharges to 2.7V. The ideal burden resistance for the minimum voltage would therefore be:

Ideal burden resistance = (AREF/2) / Secondary peak-current = 1.35V / 0.0707A = 19.1 Ohms
19 ohms is not a common value, we have a choice of 18 ohms or 22 ohms. We recommend going for 18 ohms +- 1%

Y lo de las Rvd tres cuartos de lo mismo.
Por cierto, muchas gracias por la ayuda.

Salu2.
Uraken.

pero has entendido la explicación de para que sirve cada cosa?
en la web te pone valores con los que realizar el circuito, empieza por ellos y cuando tengas el cirucito montado, empieza a medir tensiones en el para ver lo que esta pasando cuando pones diferentes cargas.
recomiendo un secador de pelo de esos con diferentes velocidades y diferentes puntos de calor. así puedes probar un abanico bastante grande de diferentes potencias.

Muy buenas señoreres....

Yo estoy con un proyectillo similar, pero en vez de gastar 10 o 20€ en sensor hall de corriente me he fabricado uno casero con un toroide de una bobina de una fuente de alimentacion vieja, le he quitado el bobinado que tenia y le he enrrollado un cable, unas 20 vueltas cre, luego un operacional para subir la tension que genera por induccion y listo.

En cuanto pueda os pongo unas fotos y un video para que veais como va.

Un saludo a todos.

Sergegsx:
pero has entendido la explicación de para que sirve cada cosa?
en la web te pone valores con los que realizar el circuito, empieza por ellos y cuando tengas el cirucito montado, empieza a medir tensiones en el para ver lo que esta pasando cuando pones diferentes cargas.
recomiendo un secador de pelo de esos con diferentes velocidades y diferentes puntos de calor. así puedes probar un abanico bastante grande de diferentes potencias.

Pues yo pensaba que sí , pero como me has contestado va a ser que no, jeje.
Voy a ver si encuentro esos valores de los componentes que me dices para probar, que será lo mejor.
A ver si recibo el sensor.

Salu2.
Uraken.

shaktale:
Muy buenas señoreres....

Yo estoy con un proyectillo similar, pero en vez de gastar 10 o 20€ en sensor hall de corriente me he fabricado uno casero con un toroide de una bobina de una fuente de alimentacion vieja, le he quitado el bobinado que tenia y le he enrrollado un cable, unas 20 vueltas cre, luego un operacional para subir la tension que genera por induccion y listo.

En cuanto pueda os pongo unas fotos y un video para que veais como va.

Un saludo a todos.

hombre tanto como 10 o 20Euros, en ebay los encuentras por unos 5 euros y son compactos y con un bobinado secundario con el que obtener buenos registros.
pero estoy muy interesado en tu sistema, pon fotos y video cuando puedas

mi sistema en casa tiene 5 CTs por lo que podeis imaginar que me interesa bastante cualquier opción de mejora aunq actualmente prefiero los CT azueles de ebay ya que no hace falta desconectar nada y se pueden conseguir facilmente y son todos iguales, es decir, hasta cierto punto, intercambiables.

Uraken:

Sergegsx:
pero has entendido la explicación de para que sirve cada cosa?
en la web te pone valores con los que realizar el circuito, empieza por ellos y cuando tengas el cirucito montado, empieza a medir tensiones en el para ver lo que esta pasando cuando pones diferentes cargas.
recomiendo un secador de pelo de esos con diferentes velocidades y diferentes puntos de calor. así puedes probar un abanico bastante grande de diferentes potencias.

Pues yo pensaba que sí , pero como me has contestado va a ser que no, jeje.
Voy a ver si encuentro esos valores de los componentes que me dices para probar, que será lo mejor.
A ver si recibo el sensor.

Salu2.
Uraken.

otra opción es que me digas que no has entendido y volvemos a analizarlo. o puedes explicar tu lo que has entendido de la funcion de cada componente y veo si lo has pillado.

Hola Sergegsx:

Leo que ya has realizado el montaje y que te funciona.
Yo estoy montándolo y no obtengo mediciones correctas. El CT que tengo es el SCT-013-000 y siguiendo las instrucciones de openenergymonitor, le he puesto una resistencia de carga de 33 ohm. Para poner en el código, la constante de corriente resulta:
constante de corriente = (100 / 0,050) / 33 = 60.60

En el sketch queda:
emon1.voltage(2, 234.26, 1.7); // Voltage: input pin, calibration, phase_shift
emon1.current(1, 60.60); // Current: input pin, calibration.

El problema es que midiendo una carga resistiva pura (una bombilla incandescente de 60w) y comparando con un medidor comercial, arduino me propociona los siguientes valores:
tensión: 230v
intensidad: 0,3A (debe ser 0,26)
Potencia: 69w (debe ser 60.1)
Factor d potencia: 0.93 (debe ser1).

¿Alguna idea?
Gracias

todo es correcto.
tienes que tener en cuenta que estas tratando con un medidor que lee hasta 100A y leugo tambien la resolución analogica del arduino. aparte que para poder leer el sensor usas solo la mitad del rango de 0 a 5V ya que le añades el desfase de 2,5V.

Vamos que es normal lo que te ocurre. ademas, has comprobado que el medidor comercial lee bien? lo mejor es usar una pinza amperimetrica.
pero ya te digo que es normal.
en mi caso, no busco saber el watio exacto del consumo de mi casa, pero si algo muy aproximado, por lo que el sistema funciona de maravillas, lo tengo instalado en dos casa, mis padres y la mia y registrando a la web mediante un interfaz que cree.
te animo a que sigas ya que vas por el buen camino.

lo que tengo pensado mirar ahora es la Irms, si puedo añadirle mas decimales ya que ahi se pierde bastante resolución al redondear solo a un decimal

Gracias por la respuesta.
Efectivamente, leyendo un poco más en la web de openenergy (Home | OpenEnergyMonitor) ya he visto que tiene un error importante midiento potencias bajas, más de un 10%, por lo que mi medida esta dentro de lo esperado.
Con una carga mayor, (una estufa de resistencia) ya el factor de potencia tiene valor 1 y me da lecturas de unos 525w, frente a los 541 del medidor (+ ó - un 3% de error). Eso si consideramos más preciso el medidor (Perel: http://www.sonicolor.es/productos/accesorios-electronicos+audio+video/material-electrico/material-electrico.html) que dice tener precisión de +/- 3%

Hola a todos, llevo un tiempo leyendo artículos para hacerme un medidor de energía casero como el de energy monitor, el caso es que si que me interesa que sea un poco más preciso de lo que comentáis con el SCT-013-000, supongo que el problema viene por que el rango como comentáis es de 0-100A.

Mi pregunta es, si el transformador de corriente en vez de ser el SCT-013-000, es el SCT-013-030 cuyo rango es de 0-30 A, medirá mejor???? (en mi casa no creo que pase de 20 A...)

Muchas gracias!! :slight_smile:

Sí, tendrás más resolución, en torno a 30 / 1024 ~= 30 mA.

recuerda que uno de ellos ya lleva el burden resistor pero el otro no. no recuerdo cual de los dos.
Tambien que es en función de este "burden resistor" la salida en voltaje del sensor.