Summary of Measuring Battery Capacity With an Arduino
The article describes a DIY project to measure and compare the energy capacity of AA batteries using an Arduino-based circuit. The author created a device that discharges batteries through a fixed resistive load while measuring voltage and calculating energy output in Joules and Watt-Hours. Additional features include ambient temperature monitoring and USB data logging to track voltage over time. The project aims to provide relative battery performance comparisons rather than precise scientific measurements, housed neatly in an Adafruit case with an LCD display.
Parts used in the Measuring Battery Capacity With an Arduino Project:
- Arduino board
- LCD panel
- Temperature sensor
- Four 22Ω resistors (in parallel)
- Adafruit case with cutouts and standoffs
- Stripboard
- USB cable (for power and data logging)
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.
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:
- Add a temperature sensor to track ambient temperature during the test since that certainly affects battery capacity.
- 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:
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.
For more detail: Measuring Battery Capacity With an Arduino