12V battery current monitor

I'm looking at interfacing an Arduino to monitor current flowing in AND out of a 12V lead acid battery. A shunt (rated at +/- 100A with a 75mV drop) is inline with battery minus and load, and the Arduino will be powered (at 5V) from the same battery.

I would need +/- 100mA accuracy or better for light loads (less than 10 Amp's) and a stable reliable zero reference.

How would I best go about interfacing the Arduino to meet above requirements?

Not exactly what you're asking but I'd suggest you forget about the shunt and install a hall effect DC sensing module instead. These are amazingly versatile, inexpensive and offer no voltage loss across the sense element. It can be set up to give a linear output between 0 and 5 volts for -100 amps to +100 amps with 0 amps = 2.5 volts. However to get better resolution and bearing in mind that you won't be ample to charge the battery at 100 amps, you might want to set it up for 0volts = -100 amps, 4 volts = 0 amps, 5 volts = +25 amps. jack

A shunt (rated at +/- 100A with a 75mV drop)

I would need +/- 100mA accuracy or better

So you need to detect voltages of 75uV or smaller. This is too small to detect directly with the arduino so you would have to amplify it. However in a car environment there is lots of electrical noise that will also get amplified, so this is not an easy project at all. If it is possible, which I doubt.

...forget about the shunt and install a hall effect DC sensing module instead.

The non invasive hookup is attractive and so is the possibility to scale and range the output signal. It seems to me however that accurately measuring the strength of a magnetic field (rather than using it as a switch) is a stretch for this technology. Did you perhaps have a specific device in mind?

The application I'm looking at is a current monitor for a boat's "house" (deep cycle) battery. There is obviously no easy way to predict remaining capacity exactly as so many variables are involved (e.g. Peukert's effect, self discharge, aging etc.), but I will certainly get nowhere unless I can gauge amperage in/out with a reasonable accuracy.

I've looked at some integrated monitoring devices (op-amp+ type chips) from Linear Technology, but I have no feel for how they would stand up to reality (perhaps some of you have tried this already). Other options may be a single op-amp or perhaps one op-amp each for charge/discharge (using two ADC channels). Would I generally be better off amplifying the out signal into the 0 to +5V range or rather use the 1.1V reference? What about skipping amplification altogether and look for a high precision, high resolution ADC chip?

Hi Ben

Follow this link for an explanation and model number http://www.cy-sensors.com/CYHCS-ES5A.pdf The unit operatoing voltage is 5volts and is ranged -100/0/+100 amps for an output voltage of +1.5/2.5/3.5

Also if all you want is a visual monitor have a look at a Turnigy unit. Google the name for links. These are rated for +/- 130 amps at any operating voltage up to 60 volts. (and they are inexpensive £25 $25 and probably the same in Euros)

I've used both devices with great success in the past.


What about skipping amplification altogether and look for a high precision, high resolution ADC chip?

I finally got around to finish the aquisition part of this project and ended up using an external 24-bit sigma-delta ADC (ADS1211). After calibration, accuracy is around +/- 25mA for the range +/-100A and mind that is from a +/-50mV input signal.

Link to the ADS1210/ADS1211 datasheet is here: http://focus.ti.com/lit/ds/symlink/ads1210.pdf

I built a separate PCB for the ADC together with a bootloaded Atmega328. Interface is SPI to ADC (AtMega as master) and the aquisition board also expose I2C and RS-485. I2C is used to control a custom three-phase alternator charge regulator (constant current, boost, float).

RS-485 is used to broadcast instant voltage, instant current, net accumulated charge/discharge (amp hours) from the aquisition board and on input supports adjusting regulator set points.

All in all I'm pretty impressed with the sigma-delta ADC (I bid for it on e-bay and only paid 3$ + S/H for it). It is a good alternative to the challenge of building a precision analog amplifier (at least with my limited analog design experience). This allows for high accuracy data aquisition and large dynamic range at a very low cost.