Arduino Voltage Sensing

at first i tried a simple voltage devider, (Oreilly Arduino Cookbook page177)
3x1k + 1x1k, measureing above the 1k .. for measuring max 20Volts,

i connected my Mega2560 via usb… and the values where a little „fluctuating“..
i started calculating middle-values, 10%-influence of new value on old value,.. and so on..
BUT
today i gave a try on adding a external powersupply to the Mega2560.. and hey..
the analog reads went fine.. quite stable!
no need for me for „attopilot voltage current sensor“ anymore (maybe later ;o) )

without external power supply:
528 2.59 10.35
528 2.59 10.35
531 2.60 10.41
529 2.59 10.37
530 2.60 10.39
528 2.59 10.35
529 2.59 10.37
529 2.59 10.37
530 2.60 10.39
528 2.59 10.35

with external power supply:
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00
510 2.50 10.00

another fact, when fluctuating measurments occur, is
when i try to measure above a potentiometer 1kOhm(4Watt) with a 12V LED lamp in serie.
direct measures at the powersource, battery did not fluctuate.

 

 

 

model: 50V / 90A

http://www.sparkfun.com/products/9028 look for the datasheet there

Voltage Measurement Test

Pin Setup:
GND – GND
V – Analog 0

i want to measure Voltages between 11 and 15 Volts…
so i will test Analog Reads and proof at same time with an DigitalMeter.
adding the breakout parallel shows a voltage drop..?!

in datasheet is stated, that the voltage measurment has a 14,7kOhm resistor, my multimeter shows 15,75kOhm, maybe my multimeter isnt good enough.

the breakout is for 3.3V, with 5V you loose some precision.
http://arduino.cc/en/Reference/AnalogReference
so my arduino is a 5 V board, 10-bit resolution (0-1023)

 

measured analog values and an factor x

76 -> 5.74
77 -> 5.82
78 -> 5.89

tips:
http://electronics.stackexchange.com/questions/21963/arduino-mega-0-10v-analog-input

http://www.ladyada.net/learn/sensors/index.html

http://forums.adafruit.com/viewtopic.php?f=25&t=11597
  analogRead(5);
delay(10);
nTemp = analogRead(5) * 5000L / 1024L  / 10;

http://sites.google.com/site/measuringstuff/the-arduino 10-bit arduino explained