Measuring Battery Capacity With an Arduino

I needed a couple of AA batteries and found the display at the supermarket where they were all arrayed. Normally when I’m shopping in the supermarket, I tend to look at the price/kg or price/l when comparing similar products. In the case of the batteries, there was no such indicator. Fine, I thought, I’ll work it out myself. I grabbed a few different makes and scanned the packaging for some measure of their capacity. Nothing. Not a single one of the batteries had any indicator of how much energy they would provide. Instead, they all had terms like ‘PLUS’, ‘SUPER’, ‘ULTRA’ and of course had wildly differing prices. So, I decided that it was time for an experiment and bought one pack of every type I could find.

Arduino Measuring Battery Capacity

The Plan

My idea was really simple: I would make a circuit that would fully discharge each of the batteries while measuring how much energy it produced (displayed in Joules and in Watt-Hours. I had an Arduino and an LCD panel left over from a different project so I thought I’d make a standalone unit. As the design evolved, I let two additional features creep in:

  1. Add a temperature sensor to track ambient temperature during the test since that certainly affects battery capacity.
  2. Add a USB logging capability so that I could capture all the data to plot terminal voltage as the battery discharges.

Note: This was never intended to be a scientific instrument to measure how long a battery would power your circuit – it’s designed to provide a relative comparison of different batteries using a similar load.

The Design

The circuit works by measuring the voltage across a fixed load every second until the voltage drops to less than 0.2V. For simplicity, I used a resistive load (the original plan was to use a 4.7R resistor but I didn’t have any high power resistors to hand so I used 4 22R resistors in parallel instead giving me an effective load of 5.5R. Here’s the final circuit:

Arduino Measuring Battery Capacity schematic

This case from adafruit ended up being perfect because it already has cutouts and standoffs for the arduino and the LCD. All that was left was to add a little bit of stripboard to hold the extra components. Note that the whole circuit is powered from the USB connection (or the DC jack) – all the power from the battery is consumed by the load resistors.

[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14 ” radius=”20 ” border=”#985D12″ float=”right” head=”Major Components in Project” headbg=”#FFEB70″ headcolor=”#985D00″]Arduino[/box]

For more detail: Measuring Battery Capacity With an Arduino


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top