Electronic – Convert LiPoly-Voltage to charge state

lipo

I'm using an ATmega32u4 (Arduino-board) and internal reference to measure the VCC voltage (handheld device with LiPoly-battery). For a very long time I'm getting 3.27V before it drops when it is near the end. How usually the measured battery voltage is converted to a state of charge in %?

Best Answer

A Lipo cell goes from 4.2V to 3.0V as it discharges. However the discharge curve is not linear, and increased current will pull the voltage lower. It is possible to get a reasonably accurate state of charge measurement if you take these factors into account.

Here are example curves for a 3C rated Lipo cell discharged at different currents:- enter image description here

At 0.2C (5 hour discharge time) it goes does down fairly linearly from about 4.1V to 3.6V. At 1C (1 hour discharge time) the curve is similar, but the start and end points are lower.

If your device has predictable current draw then you may be to do a test discharge and measure the voltage as it runs down to get a profile, which can then be used to estimate state of charge in normal operation.

For a very long time I'm getting 3.27V before it drops when it is near the end.

As you can see from the graph above, 3.27V is almost empty for a Lipo battery. Are you sure it is Lipoly and not some other chemistry (eg. LiFePO4)?

EDIT: You say that your ATmega32u4 is measuring the 'VCC voltage' which might actually be the output of the 3.3V regulator, not the battery! To measure voltages higher than VCC you must use a voltage divider to get inside the ADC input's voltage range.