Main Site Documentation

Battery level !?


Hi guys !

For a project at school, I have to know the level of a battery NiMH in reel time. It’s very easy with a lead–acid battery but with a NiMH battery, I have no idea how can I make it.

If you have an idea, would be really cool !


Reading the voltage level of a NiMH battery is the same as a lead-acid battery. Nothing different.


Reading the Voltage is not going to be the problem but determine the state of charge is not that easy for NiHM. The easiest way is to do Coulomb counting (measuring energy input (during charge) minus energy output (discharge)) to get a SOC value that still is not really accurate (±10%)


Here you have a global overview off the different possibilities:


Thank you for your answers guys.

Iggmoe, effctively reading the voltage is not the problem.
David, if you can explain me more how I can do this, it would be cool because i’m not very experienced.

(it’s at the prototype stage, it’s not a prolbem if it’s not very precise)
(Sorry for my english i’m french)

Ty !


The basics:

You need to put a current shunt in series with the battery. Then you will measure the voltage drop over the shunt, this is a very small voltage, you will need a opamp circuit the translate this to a value suitable for the ADC. With this you have a voltage you can measure that is a representation the current flowing in or out your battery. Next you need to start counting in / out but not constant, use sampling to get a in/out value over time. (multiply time and amps) Next you need a reference point, this is set when charging is complete. From this reference point you start counting down during discharge and counting up when charging + reset again when charging is at 100%.

This is just to give you a global idea, I’m sure Google is able to serve you some articles and samples :slight_smile:


Another option is to look at the battery gauge devices from the likes of Maxim. No need for any op-amp, just I2C or 1-wire interface and only needs an external shunt resistor.

The DS2745, for instance, is easy to use and has registers for calculating all the information you need.