/*
Measuring Current Using ACS712
*/
void setup(){
Serial.begin(9600);
}
void loop(){
float current;
float maxCurr;
float minCurr;
static char disp[7];
int rawcurr = analogRead(0);
for( int i=0; i<10; i++)
{
float current = current + (516 - rawcurr) * 45/1023.0;
current = current / 10.0;
dtostrf(current, 5,3,disp);
maxCurr = max(maxCurr, current);
minCurr = min(minCurr, current);
delay(50);
}
float noise = maxCurr - minCurr;
delay(10);
//Serial.print( current);
//Serial.print((float)(current),2);
//Serial.print(" , ");
Serial.print(disp);
Serial.print(" , ");
Serial.print(noise);
Serial.print(" , ");
Serial.print(current, 3);
Serial.print(" , ");
Serial.println(rawcurr);
}
At 0.5A load, "disp" shows around 0.100, "noise" around 0.1, "current, 3" shows zero, and "rawcurr" shows around 500.