Go Down

Topic: Como medir potencia y consumo con ACS712?? (Read 13131 times) previous topic - next topic

flico

Quote
flico el dia que vayas a meterte con el tema de los consumos avísame, pensé que podía terminar la documentación mucho antes pero no tengo tiempo ahora. Pero vamos que si vas a ponerte te puedo ayudar mucho.


Pues tomo nota segegsx
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

zigbe31416

Hola,

El sensor, tal como te decían, mide corrientes instantaneas, añadiendo un ofset de 2,5v, para dar tensones positivas aunque haya intensidades negativas. , si son 66mV por A para 30 A tienes que tener na tension de 4,48V. 0,066x30+2,5.

Tendras problemas de precisión en las corrientes bajas.
Ojo, tal como te decían si es corriente alterna tienes valores instantáneos, los promedios dan cero.

Las respuestas están bastante bien explicadas en una app note de Atmel, hay un. Link en esta entrada de mi blog http://www.zigbe.net/?p=540

También hay ejemplos de código para arduino, inspirados en esta appnote, smilares a los de openenergy, que también están extraidos del mismo lugar.

http://www.zigbe.net

Zigbee Labs

http://www.zigbe.net/

riscking

#17
Dec 20, 2011, 10:34 pm Last Edit: Dec 20, 2011, 11:16 pm by riscking Reason: 1
Hola, voy a probar medirlo con un integrado ade7753 o ade7759 y un transformador de corriente, he estado mirando algunos pero hay tantos que no se en que me debo fijar, me gustaria que fuese de los que se pueden abrir para meter el cable, he visto 3, de estos cual creeis que iria mas fino, osea mas preciso?? Seria para medir unos 10A como mucho mucho 15A.
http://www.seeedstudio.com/depot/noninvasive-ac-current-sensor-100a-max-p-547.html?cPath=144_154
http://www.seeedstudio.com/depot/noninvasive-ac-current-sensor-30a-max-p-519.html?cPath=144_154
http://iteadstudio.com/store/index.php?main_page=product_info&cPath=4&products_id=203
He encontrado otros dos:
http://www.dentinstruments.com/media/20A_Mini_Hinged_CT_Specs_112310.pdf
http://www.dentinstruments.com/media/50A_Mini_Hinged_CT_Specs_112310.pdf

Uraken

Hola.

Al final hiciste funcionar el sensor?
Porque yo estoy ahora mismo igual que tú y no salgo del atasco.

Salu2.
Uraken.

riscking

puff que va, lo queria para alterna y al final no sacaba nada en claro y al final lo acabe dejando, si consigues algo con el porfavor dime que tengo 2 unidades cogiendo polvo.
Un saludo

Uraken

Pues nada.... a seguir investigando.

Salu2.
Uraken.

sergioc_g

¿Alguien me puede decir como se conectaría el elemento donde quiero medir la intensidad?

Sergegsx


Hola  , estamos tratando de este mismo tema y ya se ha avanzado muy bien, está en el siguiente link:
http://www.taringa.net/comunidades/arduinga/7572109/Wattimetro-de-alterna-con-nano.html

Ya se tiene las mediciones de tensión y corriente, y estamos en camino de leer el factor de potencia, invoco a la comunidad que brinden todas las ideas y aportes.

Para medir voltaje estoy usando un transformador de voltaje 220/12 VAC, esto lo puedes encontrar de un adaptador y le quitas la parte de rectificación, aquí está:
http://openenergymonitor.org/emon/buildingblocks/measuring-voltage-with-an-acac-power-adapter

y para que midas corriente si no es mucha usa el sensor de efecto hall ACS712 con capacidad de hasta 30 A. Si deseas medir mas potencia ya a nivel industrial yo estoy actualmente desarrollando la medición con bobinas rogowski, es muy efectiva esta bobina en comparación a los de efecto hall, shunt, incluso transformadores de corriente.

Espero te sirva, y sigamos comentando y aportando ideas a todos.

Hasta luego.

Esta es la imagen de la medición que realizaba con el sensor hall ACS 712
proceso FOCO DE 100 W Y LICUADORA(FLECHA AL ENCENDER LICUADORA, Luego se estabiliza y se apaga, solo queda foco de 100 W)
http://i60.tinypic.com/2wh35ue.jpg


Por ahora voy a ver si lo puedo conseguir con arduino, he estado viendo algunas web como esta http://arduinopower.pbworks.com/w/page/10175892/FrontPage que usan un ade7753 con el arduino, que mide irms vrms w va y vaar,
me he encontrado con este codigo que usan con el acs712 para calcular tb el irms vrms , toman dos lecturas no se si del mismo acs712, pero hay cosas como lo del filtro paso alto que multipica por 0.996 que no entiendo y los coeficientes de calibración que no se como medirlos, me tiene que llegar un mini osciloscopio que he pillado que supongo que me sera util para estas cosas.
Code: [Select]
//Basic energy monitoring sketch - by Trystan Lea
//Licenced under GNU General Public Licence more details here
// openenergymonitor.org

//Sketch measures voltage and current.
//and then calculates useful values like real power,
//apparent power, powerfactor, Vrms, Irms.

//Setup variables
int numberOfSamples = 3000;

//Set Voltage and current input pins
int inPinV = 2;
int inPinI = 1;

//Calibration coeficients
//These need to be set in order to obtain accurate results
double VCAL = 1.0;
double ICAL = 1.0;
double PHASECAL = 2.3;

//Sample variables
int lastSampleV,lastSampleI,sampleV,sampleI;

//Filter variables
double lastFilteredV, lastFilteredI, filteredV, filteredI;
double filterTemp;

//Stores the phase calibrated instantaneous voltage.
double calibratedV;

//Power calculation variables
double sqI,sqV,instP,sumI,sumV,sumP;

//Useful value variables
double realPower,
       apparentPower,
       powerFactor,
       Vrms,
       Irms;
       
void setup()
{
   Serial.begin(9600);
}

void loop()
{

for (int n=0; n<numberOfSamples; n++)
{

   //Used for offset removal
   lastSampleV=sampleV;
   lastSampleI=sampleI;
   
   //Read in voltage and current samples.   
   sampleV = analogRead(inPinV);
   sampleI = analogRead(inPinI);
   
   //Used for offset removal
   lastFilteredV = filteredV;
   lastFilteredI = filteredI;
 
   //Digital high pass filters to remove 2.5V DC offset.
   filteredV = 0.996*(lastFilteredV+sampleV-lastSampleV);
   filteredI = 0.996*(lastFilteredI+sampleI-lastSampleI);
   
   //Phase calibration goes here.
   calibratedV = lastFilteredV + PHASECAL * (filteredV - lastFilteredV);
 
   //Root-mean-square method voltage
   //1) square voltage values
   sqV= calibratedV * calibratedV;
   //2) sum
   sumV += sqV;
   
   //Root-mean-square method current
   //1) square current values
   sqI = filteredI * filteredI;
   //2) sum
   sumI += sqI;

   //Instantaneous Power
   instP = calibratedV * filteredI;
   //Sum
   sumP +=instP;
}

//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Vrms = VCAL*sqrt(sumV / numberOfSamples);
Irms = ICAL*sqrt(sumI / numberOfSamples);

//Calculation power values
realPower = VCAL*ICAL*sumP / numberOfSamples;
apparentPower = Vrms * Irms;
powerFactor = realPower / apparentPower;

//Output to serial
Serial.print(realPower);
Serial.print(' ');
Serial.print(apparentPower);
Serial.print(' ');
Serial.print(powerFactor);
Serial.print(' ');
Serial.print(Vrms);
Serial.print(' ');
Serial.println(Irms);

//Reset accumulators
sumV = 0;
sumI = 0;
sumP = 0;

}

Hice correr este código y funciona perfectamente, por lo que ahora revisaré el código y ver los factores de calibración y corregirlos.

Saludos.

surbyte

#26
Jan 23, 2015, 08:50 pm Last Edit: Jan 23, 2015, 09:06 pm by surbyte
El filtro es un filtro digital y esos son coeficientes del filtro digital.

Por favor para usar códigos y enlaces debes usar tags y leer Normas del Foro

Code: [Select]

Tienes muchos elementos a considerar.
// Voltage is reduced both by wall xfmr & voltage divider
#define AC_WALL_VOLTAGE  220 // 122   
#define AC_ADAPTER_VOLTAGE 15.2   // valor a ajustar segun salida de tu trafo
// Ratio of the voltage divider in the circuit
#define AC_VOLTAGE_DIV_RATIO 11   // 220/12 = 18.33
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 68    // si usas transformador de intensidad
#define CT_TURNS 1012                    // propio del trafo de intensidad


Quien tolera esto en ram

Code: [Select]
int numberOfSamples = 3000;

Para el
Code: [Select]
#define AC_ADAPTER_VOLTAGE 15.2 
lo mejor es el osciloscopio, mides el valor Pico y listo ese es tu dato, de lo contrario lees con un voltimero en AC y su valor lo multiplicas por Raiz(2) o sea 1.41

max_saeta

Saludos
Esto parece the walking dead. Este post tenia un año inactivo. En cuanto pueda paso un sketch que hice para un medidor de factor de potencia para compartir

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy