I would like to ask if there is some easy enough way to calculate Li-Ion battery capacity if I measure the discharge time with constant load (not constant current!).

I have made a "discharger" using arduino, relay and 3.9ohm resistor. I measure time from start (4.2V) to 3.3V and then disconnect the battery using the relay. I get the time in seconds on the display.

I know the best way would be saving voltage through the discharge cycle and then get the capacity using integral. My mathematics skill is too low to make it there (maybe programing skill too).

Is there easier way to use? Could I simply do it by:

Voltage / Load * Time

What voltage should I use in this calculation? 3.7V?

Are there any other ways?

(I can't switch to constant current method because I already made the discharger and put some effort, time and money in it. I don't want to leave it and start over)


Since battery capacity is normally measured in amp-hours, to be accurate you want to calculate the current as I=V/R as V varies during the discharge.

So for example, every minute (or even every second), when you measure V, divide by R (e.g. 3.9), add that many amp-minutes (or amp-seconds) to the total so far. (Amp-seconds have another name : coulombs).

When you cut off at 3.3V, divide that total by 60 (or 3600) to show the capacity in amp-hours.

  • \$\begingroup\$ This seems easy enough and accurate and well said. I don't know how it works here (besides accepting answer), so let me thank you this way. \$\endgroup\$ – Pavouk106 Feb 12 '16 at 9:37

You are trying to measure energy, of which the Joule is the basic unit.

The unit of Power is Watts, which is Joules/s

Voltage x Current = Instantaneous Power in Watts

If you sample the instantaneous power every second, you can simply add up the measurements.

Battery Capacity in Joules = (V0 * I0 * 1s) + (V1 * I1 * 1s) + ... + (Vx * Ix * 1s)

For very low loads (high resistances), you can bring this out to minutes since the battery voltage won't be changing very fast. For heavy loads (3.9ohms), you probably want to measure at least once every 10s.

Good luck.

--- edited to add ---

You don't have to measure current if you have a known resistor since you know the voltage, you can calculate the current at those voltages.

  • \$\begingroup\$ I see the importance of "minutes for low loads, seconds for high loads" section. Thanks for your answer, the other one is just easier to understand for me. \$\endgroup\$ – Pavouk106 Feb 12 '16 at 9:40
  • \$\begingroup\$ No prob, glad you found what you were looking for. \$\endgroup\$ – slightlynybbled Feb 12 '16 at 18:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.