Error con sensor corriente ACS712

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.

Usa resistencia s de presicion. 1% o mejores

Ya he encontrado el fallo..... tengo el ACS712 pero el de 20 Amp máximo no el de 5.... :stuck_out_tongue_closed_eyes:

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);

}

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.

Gracias lo revisaré

SGrips:
Gracias lo revisaré

Como es para un sesor de 30 ? D: