- Mensajes: 2
- Gracias recibidas: 0
Aviso
El foro está en modo de sólo lectura.
Error medición de corriente con sensor ACS712
- andoni64
- Autor del tema
- Fuera de línea
- Navegador Iniciado
Menos
Más
6 años 10 meses antes #477
por andoni64
Error medición de corriente con sensor ACS712 Publicado por andoni64
Hola,
Estoy intentando de monitorizar el consumo de una bombilla AC mediante un sensor ACS712 de 30 amperios. El problema que tengo es que el valor que me devuelve arduino por la consola varia muy poco y no llego a entender porque.
Antes de encender la bombilla, la tensión de salida del modulo es 2,48 por lo que el valor que me devuelve es 0,13 amp..Una vez encendida la tensión fluctúa algo pero muy poco por lo que la corriente también fluctúa entre 0,13 y 0,18 amp. no entiendo porque el consumo no es mayor cuando pongo la bombilla, y empiezo a pensar que mi modulo esta roto...
Este es el código que he usado para mi proyecto:
Estoy intentando de monitorizar el consumo de una bombilla AC mediante un sensor ACS712 de 30 amperios. El problema que tengo es que el valor que me devuelve arduino por la consola varia muy poco y no llego a entender porque.
Antes de encender la bombilla, la tensión de salida del modulo es 2,48 por lo que el valor que me devuelve es 0,13 amp..Una vez encendida la tensión fluctúa algo pero muy poco por lo que la corriente también fluctúa entre 0,13 y 0,18 amp. no entiendo porque el consumo no es mayor cuando pongo la bombilla, y empiezo a pensar que mi modulo esta roto...
Este es el código que he usado para mi proyecto:
/*
Measuring AC Current Using ACS712
*/
const int sensorIn = A0;
int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module
double Voltage = 0;
double VRMS = 0;
double AmpsRMS = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
Voltage = getVPP();
VRMS = (Voltage/2.0) *0.707;
AmpsRMS = (VRMS * 1000)/mVperAmp;
Serial.print(AmpsRMS);
Serial.println(" Amps RMS");
}
float getVPP()
{
float result;
int readValue; //value read from the sensor
int maxValue = 0; // store max value here
int minValue = 1024; // store min value here
uint32_t start_time = millis();
while((millis()-start_time) < 1000) //sample for 1 Sec
{
readValue = analogRead(sensorIn);
// see if you have a new maxValue
if (readValue > maxValue)
{
/*record the maximum sensor value*/
maxValue = readValue;
}
if (readValue < minValue)
{
/*record the maximum sensor value*/
minValue = readValue;
}
}
// Subtract min from max
result = ((maxValue - minValue) * 5.0)/1024.0;
return result;
}
- Jose Luis
- Fuera de línea
- Navegador Platino
Menos
Más
- Mensajes: 620
- Karma: 6
- Gracias recibidas: 68
6 años 10 meses antes #478
por Jose Luis
Respuesta de Jose Luis sobre el tema Error medición de corriente con sensor ACS712
Un modulo de 30A, en un entorno real, la resolucion minima no creo que baje de 0.2 o 0.1. Y en la franja central, solo por el ruido, yo eliminaría todo lo que bajara de 0.3 A. Resumiendo, según mi opinión, un acs712 de 30 amperios, no esta pensado para medir una bombilla de 60w, ya que con el consumo tan pequeño y el ruido que suelen tener eses dispositivos, vas tener muchos problemas a la hora de medir.
Por ese motivos los hacen de 5, 20 y 30.
Un saludo.
Por ese motivos los hacen de 5, 20 y 30.
Un saludo.
- andoni64
- Autor del tema
- Fuera de línea
- Navegador Iniciado
Menos
Más
- Mensajes: 2
- Gracias recibidas: 0
6 años 10 meses antes #480
por andoni64
Respuesta de andoni64 sobre el tema Error medición de corriente con sensor ACS712
Muchas gracias Jose Luis,
Compre un modulo ACS712 de 5 amperios para hacer la prueba, y como comentas ahora las medidas que me devuelve son mas logicas. Sin embargo la bombilla que estoy tratando de medir consume 80 mAmperios y aun introduciendo parámetros de ruido para filtrar por software el ruido en la linea las lecturas son de 50 mAmperios y oscilan notablemet, variando desde 30 hasta 50 mAmp.
¿Hay alguna forma de hacer mas precisa la medición?
Por cierto esta vez he usado esste codigo:
[/color]
Compre un modulo ACS712 de 5 amperios para hacer la prueba, y como comentas ahora las medidas que me devuelve son mas logicas. Sin embargo la bombilla que estoy tratando de medir consume 80 mAmperios y aun introduciendo parámetros de ruido para filtrar por software el ruido en la linea las lecturas son de 50 mAmperios y oscilan notablemet, variando desde 30 hasta 50 mAmp.
¿Hay alguna forma de hacer mas precisa la medición?
Por cierto esta vez he usado esste codigo:
/*
Measuring AC Current Using ACS712
*/
float sensibilidad = 0.185; //5A = 185; 20A = 100; 30A = 66
float ruido = 0.070; //filtro para eliminar ruido.
const int sensorIntensidad = A0; //Pin donde conectamos sensor.
float valorReposo = 2.5097;
float intensidadPico = 0;
float tensionDeRed = 230.0;
void setup() {
Serial.begin(9600); //Iniciamos puerto serie.
}
void loop() {
intensidadPico = leerCorriente(); //Leemos corriente.
mostrarValores();
}
float leerCorriente() {
float valorVoltajeSensor;
float corriente = 0;
long tiempo = millis();
float intensidadMaxima = 0;
float intensidadMinima = 0;
while (millis() - tiempo < 500)//realizamos mediciones durante 0.5 segundos
{
valorVoltajeSensor = analogRead(sensorIntensidad)*(5.0 / 1023.0); //lectura del sensor en voltios
corriente = 0.9*corriente + 0.1*((valorVoltajeSensor - valorReposo) / sensibilidad);//Ecucacion para obtener la corriente
if (corriente > intensidadMaxima) intensidadMaxima = corriente;
if (corriente < intensidadMinima) intensidadMinima = corriente;
}
return(((intensidadMaxima-intensidadMinima)/2)-ruido);
}
void mostrarValores() {
float Irms = intensidadPico*0.707;
Serial.print("Intensidad Pico:");
Serial.print(intensidadPico, 3);
Serial.print("A , Irms: ");
Serial.print(Irms, 3);
Serial.print("A. ");
Serial.print("\n");
delay(100);
}
- Jose Luis
- Fuera de línea
- Navegador Platino
Menos
Más
- Mensajes: 620
- Karma: 6
- Gracias recibidas: 68
6 años 10 meses antes #481
por Jose Luis
Respuesta de Jose Luis sobre el tema Error medición de corriente con sensor ACS712
80mA no la vas poder medir de forma fiable., por culpa del ruido eléctrico, ya que 80mA esta en un rango muy muy bajo y cualquier perturbación eléctrica te generara ruido, y te dara faltas medidas. A veces te parecerá que mide bien y a veces, sin saber por que, veras que te da unos 50 o 75 mA de mas. Al menos esto en mis pruebas, puedes intentar filtrar antes de la medida, pero yo no creo que a este sensor le puedas sacar eses 50Ma que tu quieres de precisión.
Tiempo de carga de la página: 0.102 segundos