hello everyone,
i'm building device simple battery level indicator. there voltage divider bound analog input 8.
i several readings arduino , averaging them.
and strange thing: averaged value varies number of readings.
here (simpliefied) source:
and results:
with battsamples=10 --> battvoltsmedian=9.82
with battsamples=500 --> battvoltsmedian=8.90
with higher number of readings (500 or more), value stabilising. measured multimeter, gave same value (approx. 8.90 v).
i cannot understand, since device fed stabilised power source, why reads high value (9.92) 10 samples.
is other way better compute mean value, statistical ?
maybe combine last computed mean value current reading.
so there won't series anymore, continuous reading , average computing.
regards,
ciprian
i'm building device simple battery level indicator. there voltage divider bound analog input 8.
i several readings arduino , averaging them.
and strange thing: averaged value varies number of readings.
here (simpliefied) source:
code: [select]
int battmeasurecount = 0;
float battvolts = 0;
float battvoltsmedian = 0;
int battsamples = 10;
void batteryupdate() { // called @ every cycle
if (battmeasurecount <= battsamples) { // battsamples readings...
battvolts = battvolts + 12.10 * analogread(8) / 1024; // empirical formula
battmeasurecount++;
}
else
{ // reached desired samples count...
battvoltsmedian = battvolts / battsamples; // computing mean value
serial.print("battvoltsmedian="); serial.println(battvoltsmedian);
// resetting variables
battmeasurecount = 0;
battvolts = 0;
}
}
void setup() {
pinmode(8, input);
}
void loop() {
batteryupdate();
}
and results:
with battsamples=10 --> battvoltsmedian=9.82
with battsamples=500 --> battvoltsmedian=8.90
with higher number of readings (500 or more), value stabilising. measured multimeter, gave same value (approx. 8.90 v).
i cannot understand, since device fed stabilised power source, why reads high value (9.92) 10 samples.
is other way better compute mean value, statistical ?
maybe combine last computed mean value current reading.
so there won't series anymore, continuous reading , average computing.
regards,
ciprian
you should post code between code tags, </> in 'post' window, rather inline in post. it's not bad idea read "how use forum" post @ top of section's index page posting guidelines.
before else, arduino using?
before else, arduino using?
Arduino Forum > Using Arduino > General Electronics > how to read correctly from a voltage divider
arduino
Comments
Post a Comment