I'm trying to read the voltage of a 3S 11.1v LiPo battery with an arduino, so it can monitor the battery level and report when the voltage is getting low. The easiest way I've seen to do this is with a voltage divider. I've seen tons of "don't use voltage dividers" posts over the years, all for various reasons. My concern is the wasted power lost to heat that the voltage divider might draw.

If I have a low current drawing circuit hooked up, with a voltage divider to cut the voltage down to the range the arduino can read via the voltage reference pin, how much current will be used/wasted by that divider circuit? Is there a way to estimate that, without actually building the circuit and testing it? This is going in a device that is to run long term, and I'd hate to shave a large percentage of time off the runtime just to monitor the voltage.

Is there a better/more efficient way to read the voltage of a 11.1v lipo on a 5v arduino without using a voltage divider?


3 Answers 3


Use a P channel mosfet to only enable your divider when you need it, (have a weak pullup to battery+ to switch it back off, and an N channel to pull its gate down to turn it on)

This is how its commonly done on other battery monitoring circuits, as its not like the battery voltage changes that much in say 10 seconds.

There are other approaches when you have control of the silicon in a chip, but for general user land, this is usually a good compromise.


A voltage divider is fine, provided you keep the current very small (as you indicated). A reasonable way to do this is with a voltage divider of large value resistors (e.g. 2MEG and 1MEG will drop the 11.1V to 3.7V).

At the juncture of the divider, you will want a buffer of some kind, such as an op-amp follower so that the Arduino won't sink current from the supply.

Does this help or do you need more detail?

  • \$\begingroup\$ More detail would be great - I know a lot from playing with electronics/arduino's for years, but I don't have a solid electronics background. Like 'op-amp follower' is total greek to me. I've basically learned the things I've needed to learn to do the projects I've done - but outside of that - I'm a noob. \$\endgroup\$ Commented Feb 28, 2017 at 14:26
  • \$\begingroup\$ @InfernusDoleo Have you tried plugging "op-amp follower" in your favourite search engine? \$\endgroup\$
    – marcelm
    Commented Feb 28, 2017 at 14:49
  • \$\begingroup\$ Did some googling and I understand now what they are and how they are used. Not much help in finding a part number or one that would be appropriate for what I need. Any suggestions? \$\endgroup\$ Commented Feb 28, 2017 at 15:05
  • \$\begingroup\$ There's a diagram about half way down this page: crazybutable.com/projects/stella/design For this application, you don't need anything fancy. An LM741 or LM358 is fine; pretty much anything will work. \$\endgroup\$
    – witch359
    Commented Feb 28, 2017 at 17:57
  • 1
    \$\begingroup\$ @witch359. The LM741 would not be suitable in a 5 V or 3.3 V Arduino environment since it needs +/- supplies. LM358 would be fine. \$\endgroup\$ Commented Feb 28, 2017 at 18:13

Just use one, but decide when you have too much quiescent current.


simulate this circuit – Schematic created using CircuitLab

5mA is probably fine with forklift traction batteries, but not in your iPhone. While 5uA is fine in your iPhone, it may not be in your Airpods.

Of course, with higher and higher impedances it will become more challenging to maintain a high samplerate. The first one won't need any buffering, but the last one will need a high impedance voltage follower to not change the voltage by measuring it.

If you find a better mosfet than BSS84 you may even get lower leakage.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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