Car battery current monitor

I want to measure the total current consumption in my car, I want to add additional electrical items and worried I will have a flat battery. I also want to log the current, so thinking ardunio would be ideal.

The question is how to measure the current, I have been looking at shunts and hall effect sensors. Both seem to do the job, but when the vehicle current drops to 30mA at key off this is a very small current to measure and so many factors could affect it such as cable length to the sensor.

I have been looking at amplifiers, but there is so much information about monitoring temperature with the shunt and protecting the hall effect sensor from external factors which could be present in the engine bay.

Any help would be appreciated, I know this is not a direct Arduino project but seem to go around in circles to understand if this is possible.

Consider that the car battery has to supply several hundred amperes to the starter motor, as well as a few milliamperes to the indicators.

Most vehicles have a current shunt already in the circuit for current measurement for engine controls and/or vehicle monitors. Check the vehicle electrics for details. Measure the voltage across the shunt and you have current. The shunt may look like a short piece of wire (made that mistake once).

Since you are measuring a very low voltage with a low current on your wire, then the error should be small.

The 30mA current drain is only 0.01% of the 300 or more cranking current you need to measure. So you need an equivalent to a 5 or 6 digit (300.03) volt meter or an amplifier for auto ranging the input. A single ADC would have to be 15bit resolution. 2^15 = 32768 steps.

I found this article on oversampling the AVR ADC input. Can go up to 21 bits.

AVR ADC Oversampling

I would have to try it and see how well it would work.

The ADC input impedance is 100Mohm. Use large enough wire and the losses would be minimal. Across the battery, the current drawn for the ADC would be under 0.140mA.

Hi, do you need to go to mA resolution, your measuring and monitoring circuit, ie arduino and display will probably drawn more than this.

I think 1A resolution would be more than adequate for a car, you need to worry that when the engine is running you have charge current.

No, matter what load you have you will flatten the battery without the engine running.

So all I would be looking at is that the battery is at 13.8V after a few minutes of battery recovery from starting discharge.

Alternators these days on some cars are up to 80Amps because of the electronics that we demand in our cars.

So I would look at current, yes, but more important look at battery volts to 0.1V resolution.

Tom...... :slight_smile:

I agree on battery voltage as well. Heck, monitor both. It isn't that hard.

One way to get around the resolution errors arising from the large range of currents, is to consider how the wiring of your car is arranged.

There will be a path of very thick wires from the battery to the starting relay to the starter motor and then back to the battery somehow.

Somewhere near the battery, there will be another wire or bunch of wires which supply "everything else" ( other than the starter motor ).

You can figure out what the maximum current in these wires is likely to be, and have some kind of shunt or current sensor tailored to that level. Depending what is in your car, a 30 amp current sensor module may be enough.

I will probably be going with an AD620 for the amp to calculate the current, and an MCP3301 for the ADC. Anyways, there is a nice list of instrumentation amplifiers in the question I linked. As for using an instrumentation amp, yes you can find some that are single supply which would let you power it from USB. For instance, the INA122 is a single supply amp that can be powered by anything from 2.2 to 36V. My only question would be: why? Are you going to route a wire from a cigarette to usb through the dash? You're creating a circuit to measure a car battery, why not use the car battery to power it? At least that's what I'm doing.