Cell/Battery Internal Resistance Calculator
The internal resistance of a cell (battery) is important as, among other things, it dictates the ability to deliver the expectation of current into a load at the required voltage (barring design flaws). Internal resistance is also a key value you need to calculate power dissipation in the cell itself while under load. Now you can work out why the fluid is boiling in your lead/acid battery
Recently, I had a problem with a real-time clock chip (RTC) where the registers were going static while on battery power. This is an expected behaviour of the chip in question where it will stop it's internal oscillator if the battery voltage gets too low in an attempt to conserve power to the max and give an indication of when the clock stopped running (you also get a flag in the status register to indicate the oscillator has been stopped at some point).
It was quite a tricky problem at the time and was eventually traced to crappy coin cells with an enormous internal resistance of about 45K(!). This meant that as the expected current was drawn (a tiny 59uA), the voltage dropped away to almost nothing to the point the RTC could no longer run it's oscillator and maintain the time.
The calculation is fairly simple; the voltage difference between on/off load and the current drawn while on load… divide one into the other gives your internal resistance using Ohm's law.
Below is a tiddly trinket (I used MMBasic but it is simple enough to transcribe into just about any language) to take the above values and quickly determine the interesting stuff. It isn't rocket-science but it takes the grunt out of one more chore. Oh, and those cells? in the recycling.
The Code
Dim Float VOffLoad,VOnload,VDelta,IOnLoad,RInternal Input "Enter Off-Load Voltage: ",VOffLoad Input "Enter On-Load Voltage: ",VOnLoad Input "Enter On-Load Current (A): ",IOnLoad VDelta=VOffLoad-VOnload Print "On-load Voltage drop is: ";VDelta;"V" RInternal=VDelta/IOnLoad Print "Cell Internal Resistance is (Ohms): ";RInternal Print "Cell Power Dissipation is (Watts): ";(IOnLoad^2)*RInternal
To gather the input values, you'll need to measure both voltage and current (ideally at the battery positive terminal). Try to use two meters if you can so that the internal workings of the meter don't interfere with the readings as you move it from one section to the next. Set up your test as follows (the cell being tested is in the red box). Make sure your load represents “real life” i.e. what you are expecting the cell to do in anger. Unrealistic tests and expectations lead to unrealistic capabilities. The switch can just be a crocodile clip lead.
Testing is easy; follow these steps:
- Open the switch
- Measure the voltage - this is your off-load voltage
- Close the switch
- Measure the voltage again - this is your on-load voltage
- Measure the current - this is your on-load current draw
Feed the numbers into the program above and wonder at the internal resistance of your battery.
Here is the example using the values from those garbage coin cells… now you see why I binned them. Couldn't drive 3V into a 59uA load and the figures show why:
> RUN Enter Off-Load Voltage: 3.232 Enter On-Load Voltage: 0.6 Enter On-Load Current (A): 0.000059 On-load Voltage drop is: 2.632V Cell Internal Resistance is (Ohms): 44610.2 Cell Power Dissipation is (Watts): 0.000155288 >