Go Down

Topic: Error con sensor corriente ACS712 (Read 252 times) previous topic - next topic

SGrips

Oct 11, 2014, 09:38 pm Last Edit: Oct 11, 2014, 09:54 pm by SGrips Reason: 1
Hola a tod@s,

tengo un problema con un sensor de corriente ACS715 (5A). No soy capaz de leer la corriente de forma correcta.

He puesto una R=15 ohms, a 12V para hacer una prueba, debería de darme 0.8 A aprox, pues con el sensor me lee 0.40 - 0.45 A.





Lo he comprobado con el teste y me lee 0.74:




Segun el datasheet en la salida debe de dar 2,5V si la corriente es 0, pues a mi me da 2,38V, no llega a los 2,5..

El sensor me da aprox 0 A si no conecto nada, está calibrado:



He estado consultando en esta web el código para hacer el cálculo:

http://www.lucadentella.it/en/2011/11/29/sensore-di-corrente-con-arduino/


He impementado este código:


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {

 Serial.begin(9600);
   lcd.init();                      // initialize the lcd


 lcd.backlight();
  lcd.setCursor(0,0);
 lcd.print("Consumo (A)");
}

void loop() {

 float average = 0;
 for(int i = 0; i < 1000; i++) {
   average = average + (0.0264 * analogRead(A0) -13.38) / 1000;
   delay(1);
 }
   lcd.setCursor(0,1);
 lcd.print("I = ");
 lcd.setCursor(4,1);
 lcd.print(average);
 

}


Sin carga me da 0.02A, pero si pongo alguna carga y mido la corriente no es correcta.


Estoy muy mosqueado que en la salida me de 2,38V si no hay corriente, estoy empezando a pensar que debe de estar dañado....

¿ Alguien le ha pasado algo parecido? ¿Alguna idea de que puede ser? Es una cosa muy sencilla, no sé que puede estar pasando.


maxid

Usa resistencia s de presicion. 1% o mejores
El que pregunta aprende, el que responde aprende a responder.

SGrips

#2
Oct 12, 2014, 11:45 am Last Edit: Oct 12, 2014, 11:48 am by SGrips Reason: 1
Ya he encontrado el fallo..... tengo el ACS712 pero el de 20 Amp máximo no el de 5.... :smiley-yell:

Ahora si me lee bien:



Aquí está la diferencia:




El código final:


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {

  Serial.begin(9600);
    lcd.init();                      // initialize the lcd

  lcd.backlight();
   lcd.setCursor(0,0);
  lcd.print("Consumo (A)");
}

void loop() {

  float average = 0;
  for(int i = 0; i < 1000; i++) {
    average = average + (0.049 * analogRead(A0) -24.89) / 1000;
    delay(5);
  }
    lcd.setCursor(0,1);
  lcd.print("I = ");
  lcd.setCursor(4,1);
  lcd.print(average);

}

surbyte

#3
Oct 13, 2014, 12:50 am Last Edit: Oct 14, 2014, 04:17 pm by surbyte Reason: 1
Mas alla del fallo que encontraste, teng cuidado con la alimentación del ACS712. Verifica que reciba 5V.
Si estas alimentando todo con el USB eso no ocurrirá.
Yo también me quedé sin pestañas y un error tan tonto como suponer que el USB entrega +5 cuando normalmente esta en 4.8 Volts, en mi caso.
Los sensores requieren de algunos cuidados, sino usar alimentación externa, luego medir cuando entrega el regulador en su salida +5 y si por ejemplo lees con el multimetro 5.034 haces las correcciones pertinentes, por correcciones me refiero a una calibración.

SGrips


Go Up