Arduino Lead Acid Battery Capacity Tester

Lead Acid Battery Capacity Tester

Arduino LED Projects

Lead Acid Battery Capacity Tester

Yosh! At last, finished working on lead acid battery capacity tester project. I have been working on this project for a while, then got bored and left the remaining work ( mostly firmware ) for a couple of months, ah ! the longest project I ever did!

Lead Acid Battery Capacity Tester

What’s all about Lead Acid Battery Capacity Tester?

This project is about discharging the lead acid battery at a constant current to measure its actual capacity.

Due to hardware and design constrain there are few limitations :

Only 12 Volts Lead Acid Batteries up to 200Ah can be Discharge! Because of measurement offset (to achieve better Voltage Measurement Resolution), only Voltages from 10.1 V to 14.7 V can be measured, which means any voltage below 10.1 volts will read 10.1 volts. Besides, a 12 Volt Lead Acid Battery that reads 10 volts is practically Dead!

Current Measurement Resolution is 25 mA to cover a wider measurement range (0-13.9 A) which can be a problem for measuring very small Discharge Rate ( below 300 mA )

Voltage Measurement Resolution is 5 mV. Measured voltages are stored in EEPROM periodically (every 5th minute) and exported through USB-Serial after the test is completed.

Discharge Current can be (Set) Programmed by User through S1/S2 buttons and which can be any value multiple of 0.1 A (100mA) from 0.1 A to 10.0 A.

C-Rate (which is equal to Discharge Time/Expected Test Duration) can be configured by User for 5 hrs or 10 hrs or 20 hrs. For example, if a 35 Ah Battery is discharged at a C-Rate of C/10 then the Discharge Current will be 3.5 A (3500 mA) and the expected Discharge Duration should be 10 hrs.

READ  Quick Arduino Hygrometer with OLED display

The test can be Aborted by the user (with proper Ramp Down of Current to 0 A) by pressing S1/S2 buttons according to the instructions shown on OLED screen Menu!

During the Test Run, the OLED Display will show Test Time, Discharge Current, Battery Terminal Voltage on the screen.

The test will stop automatically whenever Battery Cut Off (here 10.5 V) is reached or Time (=C hrs) is elapsed.

Timekeeping is done using the AVR internal Timer1 with Interrupt. S1/S2 Buttons are connected to INT0/INT1 of Atmega328 microcontroller for controlling User Interface.

How Does it Work?

The LOAD through which the discharge current runs is a Programmable Active Load. It is driven such a way that a constant current flows through it regardless of the drop in battery voltage over time due to discharge!


Active Load consists of a MOSFET(Q1) and High Wattage Resistors Network (shown as single Resistor R1), the MOSFET’s Drain to Source Channel acts as a Variable Resistor and the High Wattage Resistor Network has a Fixed Value Resistance (until it heats up too much).

arduino projects for beginners: Lead Acid Battery Capacity Tester

For more detail: Click Here

Leave comment for this post......