Measuring a battery's resistance

With an arduino, I want to measure the internal resistance of a battery.
So if no battery is connected it would read as a completely open circuit, and if one is connected it would read something to 0 ohms. Battery could have voltage from 0v to 14v.

What would be a good method to measure the resistance? Simplicity outweighs efficiency here. 'ballpark' figures are fine, I don't need sub-ohm resolution.

thanks

daveyjones:
With an arduino, I want to measure the internal resistance of a battery.

The internal (discharge) resistance of a battery can be calculated by measuring the voltage of the battery unloaded and loaded. Pulse-load the battery with a known (high) current, and measure during the pulse. Internal resistance can be calculated from the voltage difference.

daveyjones:
So if no battery is connected it would read as a completely open circuit, and if one is connected it would read something to 0 ohms. Battery could have voltage from 0v to 14v.

Not sure what you mean here.
It seems you simply want to know if a battery is connected or not.
Leo..

I want to measure the internal resistance of a battery.

It is not something that you can directly measure. You can take other measurements and calculate it but it is not like a real resistor, it is a abstract concept that embodies the limitations of battery size, construction and chemistry.

Its a real resistance for sure (or rather several) in the terminals, electrodes and electrolyte, not
an abstract concept (well no more abstract than any other resistance). Its where heat is generated
when a battery is heavily discharged or charged for instance. Its also variable due to the composition
of the electrolyte changing with the state-of-charge (and the electrodes growing and shrinking too
I guess).

not an abstract concept

So how do you account for different battery chemistry affecting the effective resistance. The word "effective" should be a clue.

OK then MarkT do you suggest measuring it with a DVM?

You don't need to post on the forum to find out how to do that.
How+to+measure+internal+resistance+of+battery

AnalogRead

measuring-internal-resistance-of-batteries

Grumpy_Mike:
It is not something that you can directly measure. You can take other measurements and calculate it

Would you be able to point me in the direction of what measurements are needed and the formula to calculate it?

Since it requires significant current to measure a battery's resistance, You have to be careful because you can overheat the battery and possibly start a fire! And, your load resistance has to be able to handle the power.

To expand on what Wawa said -

The battery can be approximated as an ideal (zero resistance) battery with a resistor in series.* When you add a load you create a [u]voltage divider[/u] where Z1 is the battery's internal resistance and Z2 is the load.

So for example, if you vary Z2 until the voltage falls to 90% of the no-load voltage, you know you have a 1:9 voltage divider. Knowing Z2, you can calculate Z1. (Then, you should probably go back and check the no-load voltage because you may have partially discharged the battery by doing the experiment.)

You're probably not going to find the exact 90% point but as long as you get a measurable voltage drop and you know the resistance you can make a calculation.

Or... Check the datasheet for the battery to see if they specify resistance. :wink:

  • There is also an effective parallel resistance through-which the battery discharges with no load (which determines it's shelf life). The only way to measure that would be to wait for the battery to self-discharge. This too is not a "pure" resistance and may just be the result of chemical reactions.

DVDdoug:
Then, you should probably go back and check the no-load voltage because you may have partially discharged the battery by doing the experiment.

A way around that is to connect an AC current to the battery.
e.g. A square wave from an Arduino pin connected to batt+ via a CL resistor and DC blocking cap.
Then measure remaining AC voltage on the battery.
Same principle as a low ESR meter for capacitors.

Still not sure why OP wants to know battery resistance.
Leo..

Has anyone noticed the OP has yet to specify what kind of battrry he hss. Does that seem odd ?
Maybe there is no battery and it's a homework assignment.

raschemmel:
Has anyone noticed the OP has yet to specify what kind of battrry he hss. Does that seem odd ?
Maybe there is no battery and it's a homework assignment.

Not a homework assignment.... totally wrong major.
I missed the question, it's for deep cycle lead acid batteries (even better if it covers agm & gel too, but LA is primary)
The reason is to help assess batteries overall health & remaining life.

daveyjones:
Not a homework assignment.... totally wrong major.
I missed the question, it's for deep cycle lead acid batteries (even better if it covers agm & gel too, but LA is primary)
The reason is to help assess batteries overall health & remaining life.

In other words, big and chunky with a nominal IR probably in the 10s of milliohm range normally. You'd probably need to pull a few amps at least out of the batteries to get an appreciable voltage drop, which would be serious wattage even for a small 6V battery. 12 or 24V would be even worse. You'd need some seriously chunky heatsinking to burn that much power away.

I don't need sub-ohm resolution.

How high are you expecting the IR to be?

Maybe you could mod a de-sulphater circuit to measure peak voltage during the flyback pulse.
Leo..

Yikes; this may be out of what I would want to do. I have two testers here that measure the batteries resistance, one while desulfating, and neither are a big amp draw.
The desulfating one is a totally separate circuit, but I'm intrigued on your idea of modifying a desulfator, would you expand on your idea?

AFAIK a de-sulphater circuit uses the kickback of inductors to create high current spikes.
During those spikes, the voltage of the battery must be slightly higher.
If you measure battery voltage just before and during the spike, you should have some sort of Ri indicator.
Leo..

Most battery companies do no recommend measuring the internal resistance of deep cycle batteries, like Trojan T126,L16g batteries. We tested a £2000 units and found the readings where unusable even on a new battery was indicating high resistance and this was an expensive bit of kit. It was designed to test the internal resistance of traction cell used for UPS supplies, The idea by it these are fixed batteries and once a week/month you carry out a test on each individual cell say 36 cells 72V system(as these are 2V cells), Then each time the date and time is recorded so you build a picture over a period of time and once the readings change this COULD only indicate the cell may be coming to the end of it's useful life. There is many companies out there claim for battery testers that work. We found depending the state of charge of the battery is in what readings you got even a fully charged battery gave low internal reading but we still found that the battery was faulty.
There are a few ways you can test a battery, 1 been the specific gravity along with the battery voltage, The way we do it for traction cells is place it on charge take it through a full cycle then place back on charge and while on charge measure the end of charge voltage each cell should read 2.75vPC with a SG reading of 1.280 anything over 1.300 indicates that the paste is coming away from the plates and the acid contents are to strong and the battery will not hold charge. like anti-freeze in cars if it's to strong it can damage the engine or to weak it can freeze, If the voltage reaches 2.75VPC and the SG only reaches 1.180-1.250 indicates the cell could be badly desulfated or coming to the end of it's useful life.
You could have a good battery today and tomorrow it could be bad but regular testing would give an early indication. The true way say for a Trojan T125 should be able to supply 25amps for 488minutes. We designed and built a tester to suit our needs where if we suspected a faulty battery bank(mainly 6V deep cycle batteries)not to be holding charge like many of our customers say. We would place them on charge carry out the SG reading and end of charge voltage then test them individually then using the Peukert's law discharging them at a constant 30amps roughly calculate the capacity of a battery, The test should take 4.127hours Manufacturer's recommended 80% Discharged rate while monitoring the battery if they reached 1.75VPC before the end of the time the test would stop, This would/could indicate the battery has come to the end of it's useful life, Many of them over the last 4 years are still in service or lasted another 2 years. We only carry out this test once as it's not good for the batteries to keep doing it.

Sorry it does not had to much value to the topic but it's just my 2 pennies worth and batteries are a mind field.
I'd be intrigued if you came up with a good reliable tester as the £2000 unit did not do what it said on the tin. May be good what it was designed for but our batteries are not fixed and left on charge all the time like the UPS ones and customers abuse them by over discharging them all the time which shortens the battery life :slight_smile:

Thanks for the idea Leo -- I have a desulfator on a breadboard I can play with. Thanks for the idea.

@Stevieboy -- I think "real world" experience adds a great value to the topic, and it was well laid out. Thank you. That gives me a couple ideas, as well as hits the point home that 'automated testing' doesn't appear to be worth the effort. (but still, I may play around with some ideas, and incorporate your info)

Thank you.

Your welcome, many years ago I worked for a comanpy for 10years doing battery chargers and batteries and had to carry out many warranty claims most failures were over Charing and even over discharged, we had one set tipped over and they filled it with water so we had to Carry out and acid adjustment but managed to save it.
The tester I design was based on idea of the alphabat tester pro,but this could only test one battery at a time. We needed it to do 4 batteries at once individually hooked up. It took 2 years on and off in designing and testing it. Altouth it works very well I was considering in redesigning it using arduino with touch screen and 16bit adc. But lower the current to 25amps and use the recommended run time stated by the manufacture. Our tester is a resistive load rather than dynamic load testing as the dynamic loading gets very hot and kept blowing up. Each channel consists of 4 x 90w wirewound resistors and 2 mosfets mounted on a smallish heatsink controlled by PWM so it continuously monitors the current and adjusts it to maintain the constant current. It does both 12 & 6 volt batteries. You can't test any batteries in series which could lead to false testing, if one is weak the run time will be cut short and you will not know which one.
Sometime ago I did find a curcuit which looked very clever that induced an ac voltage across the battery and give an output of a DC voltage in relation to the internal resistance of the battery will see if I could find it out.
The trouble by measuring the internal resistance is its hard to find the correct data so you can bench mark it against good or bad as most manufactures for deep cycle don't give this information out even that company of the 2 grand unit could not tell us what was good or bad.
Sounds like a good project and don't give up

An ESR meter meant to test capacitors in circuit can give some indication of battery/cell ESR, as long as it is one that has DC isolation. IE, a series capacitor.

C5 in this schematic serves that purpose.

I can't speak to how accurate it is, measuring battery ESR at 50 to 100kHz.

Thanks Steve! That looks interesting & easy enough.