|
Arduino Nano |
x 1 | |
|
0.96" OLED Diasplay |
x 1 | |
|
Opamp LM358 |
x 1 | |
|
Power Resistor 1R / 5W |
x 1 | |
|
Resistor 1M |
x 1 | |
|
Resistor 4.7K |
x 2 | |
|
Resistor 330R |
x 1 | |
|
Capacitor 100nF |
x 4 | |
|
Capacitor 220uF /16V |
x 1 | |
|
Piezo buzzer |
x 1 | |
|
Button Switch |
x 3 | |
|
Button Switch Cap |
x 3 | |
|
8 pin DIP Socket |
x 1 | |
|
Female Header 15 pins |
x 2 | |
|
Female Header 4 pins |
x 1 | |
|
Heat Sink |
x 1 | |
|
Screw Terminal |
x 1 | |
|
DC Jack |
x 1 | |
|
5mm LED |
x 1 | |
|
LM385BZ-1.2 |
x 1 |
Arduino Battery Capacity Tester V2.0
Nowadays fake Lithium and NiMH batteries are everywhere which is sold by advertising with higher capacities than their true capacity. So it is really difficult to distinguish between a real and a fake battery. Similarly, it is difficult to know the capacity retained in the salvaged 18650 laptop batteries. So, a device is required to measure the true capacity of the batteries.
In the year 2016, I have written an tutorial on " Arduino Capacity Tester - V1.0 " which was a very straight forward and simple device. The earlier version was based on Ohms Law. The battery to be tested is discharged through a fixed resistor, current and time duration is measured by Arduino Nano and capacity is calculated by multiplying both the readings ( Discharge current and time ).
The drawback of the earlier version was that during the testing, as as the battery voltage decrease, the current also decreases which make the calculations complex and inaccurate. To overcome this, I have made the V2.0 which is designed in such a way that the current will remain constant throughout the discharging process. I made this device by inspiring the original design by MyVanitar
The main features of Capacity Tester V2.0 are :
1. Capable of measuring the capacity of AA / AAA NiMh / NiCd, 18650 Li-ion, Li-Polymer, and Li FePO4 battery. It is suitable for almost any kind of battery rated below 5V.
2. Users can set the discharge current by using the push-buttons.
3. OLED user Interface
4. The device can be used as an Electronic Load
Update on 02.12.2019
Now you can order the PCB and components together in a kit from PCBWay
Disclaimer:Please note that you are working with Li-Ion battery which is highly explosive and dangerous. I cannot be held responsible for any loss of property, damage, or loss of life if it comes to that. This tutorial was written for those who have knowledge of rechargeable lithium-ion technology. Please do not attempt this if you are a novice. Stay Safe.
Schematic Diagram
The whole schematic is divided into to followings sections:
1. Power Supply Circuit
2. Constant Current Load Circuit
3. Battery Voltage Measurement Circuit
4. User Interface Circuit
5. Buzzer Circuit
1. Power Supply Circuit
The power supply circuit is consists of a DC Jack ( 7-9V) and two filter capacitors C1 and C2. The power output (Vin) is connected to the Arduino pin Vin. Here I am using the Arduino on-board voltage regulator to step down the voltage to 5V.
2. Constant Current Load Circuit
The core component of the circuit is Op-amp LM358 which contains two operational amplifiers. The PWM signal from the Arduino pin D10 is filtered by a low-pass filter ( R2 and C6 ) and fed to the second operational amplifier. The output of the second op-amp is connected to the first op-amp in voltage follower configuration. The power supply to LM358 is filtered by a decoupling capacitor C5.
The first op-amp, R1, and Q1 build a constant current load circuit. So now we can control the current through the load resistor (R1) by changing the PWM signal pulse width.
3. Battery Voltage Measurement Circuit
The battery voltage is measured by the Arduino analog input pin A0. Two capacitors C3 and C4 are used to filter out the noises coming from the constant current load circuit which can degrade the ADC conversion performance.
4. User Interface Circuit
The user interface circuit is consists of two push-buttons and a 0.96" I2C OLED display. The Up and Down push-button is to increase or decrease the PWM pulse width. R3 and R4 are pull-up resistors for the Up and Down push-buttons. C7 and C8 are used to debounce the push-buttons. The third push-button (RST) is used for resetting the Arduino.
5. Buzzer Circuit
The buzzer circuit is used to alert the starting and end of the test. A 5V buzzer is hooked to Arduino digital pin D9.
How Does It Work?
The theory is based on the voltage comparison of the inverting (pin-2) and the non-inverting (pin-3) inputs of the OpAmp, configured as a unity amplifier. When you set the voltage applied to the non-inverting input by adjusting the PWM signal, the output of the opamp opens the gate of MOSFET. As the MOSFET turn-on, the current runs through R1, it creates a voltage drop, which provides negative feedback to OpAmp. It controls the MOSFET in such a way that the voltages at its inverting and non-inverting inputs are equal. So, the current through the load resistor is proportional to the voltage at the non-inverting input of the OpAmp.
Capacity Measurement
Here Battery is discharged to its low-level threshold voltage ( 3.2V).
Battery Capacity (mAh) = Current ( I ) in mA x Time (T ) in Hours
From the above equation it is clear that to calculate battery capacity (mAh), we have to know the current in mA and time in Hour. The designed circuit is a constant current load circuit, so the discharge current remains constant throughout the testing period.
The discharge current can be adjusted by pressing the Up and Down Button. The time duration is measured by using a timer in the Arduino code.
Assemble the PCB
For Soldering, you will need a decent Soldering Iron, Solder, Nipper and a multimeter. It is good practice to solder the components according to their height. Solder the lesser height components first.
You can follow the following steps to solder the components :
1. Push the component legs through their holes, and turn the PCB on its back.
2. Hold the tip of the soldering iron to the junction of the pad and the leg of the component.
3. Feed solder into the joint so that it flows all around the lead and covers the pad. Once it has flowed all around, move the tip away.
Software & Libraries
First, download the attached Arduino Code. Then download the following libraries and install them.
Libraries:
Download and install the following libraries:
1. JC_Button: https://github.com/JChristensen/JC_Button
2. Adafruit_SSD1306: https://github.com/JChristensen/JC_Button
In the code, you have to change the following two things.
1. Current Arrays values: This can be done by connecting a multimeter in series with the battery. Press the up button and measure the current, the current values are the elements of the array.
2. Vcc: You use a multimeter to measure the voltage at the Arduino 5V pin. In my case it is 4.96V.
Updated on 20.11.2019
You can change the Low_BAT_Level value in the code as per the battery chemistry. It is better to take a little margin over the cut off voltage stated below.
Here is the discharge rates and cutoff voltages for various Lithium-Ion Battery chemistry:
1. Lithium Cobalt Oxide: Cut-off Voltage = 2.5V at 1C discharge rate
2. Lithium Manganese Oxide: Cut-off Voltage = 2.5V at 1C discharge rate
3. Lithium Iron Phosphate: Cut-off Voltage = 2.5V at 1C discharge rate
4. Lithium Titanate: Cut-off Voltage = 1.8V at 1C discharge rate
5. Lithium Nickel Manganese Cobalt Oxide: Cut-off Voltage = 2.5V at 1C discharge rate
6. Lithium Nickel Cobalt Aluminum Oxide: Cut-off Voltage = 3.0V at 1C discharge rate
Conclusion
To test the circuit, first I charged a good Samsung 18650 battery using my ISDT C4 Charger. Then connect the battery to the battery terminal. Now set the current to according to your requirement and long-pressed the “UP” button. Then you should hear a beep and the test procedure starts. During the test, you will monitor all the parameters on the OLED display. The battery will discharge until its voltage reaches its low-level threshold (3.2V). The test process will be finished by two long beeps.
Note: The project is still under development stage. You can join me for any improvements. Raise comments if any mistakes or errors. I am designing a PCB for this project. Stay connected for more updates to the project.
Hope my tutorial is helpful. If you like it, don't forget to share :) Subscribe for more DIY projects.
Thank You.
Arduino Battery Capacity Tester V2.0
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(8)
- Likes(42)
- Radion Mynayev Oct 29,2024
- Engineer Sep 21,2024
- kilic.davut Jun 23,2024
- Engineer May 16,2024
- Dobrica Daniel Dec 30,2023
- Im' Peer Dec 16,2023
- Engineer Nov 22,2023
- OmarMuttawa Nov 08,2023
- timtas Oct 30,2023
- Engineer Oct 16,2023
- Engineer Aug 25,2023
- Engineer Jun 11,2023
- Engineer Jun 02,2023
- Arnab Macho May 12,2023
- DRV Apr 07,2023
- Engineer Feb 02,2023
- Ethan Solomon Jan 08,2023
- sonofcy Sep 01,2022
- Fausto Iocchi Aug 21,2022
- Commodore Bench Aug 15,2022
- Engineer Aug 14,2022
- chmeldaa Jun 24,2022
- Enrique Diaz Jun 01,2022
- Engineer May 13,2022
- Engineer Apr 22,2022
- Andrius Gailius Dec 01,2021
- Jaroslav Adamec Nov 13,2021
- blazm Aug 09,2021
- Patrick Colombi Jun 13,2021
- Dusan Chlpek Feb 11,2021
- ANIL Feb 05,2021
- Engineer Dec 17,2020
- Engineer Dec 13,2020
- KHALID ALQAHTANI Nov 05,2020
- Peter Zilinec Oct 09,2020
- Wolfgang Gregoritsch Sep 05,2020
- Hink Aug 09,2020
- Chad Pomerleau Jul 05,2020
- Engineer May 22,2020
- Engineer Mar 05,2020
- Kelly Suyemoto Jan 04,2020
- Dmytro Koval' Nov 13,2019
- 15 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
8usability
-
5creativity
-
9content
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
10usability
-
10creativity
-
10content
-
6design
-
7usability
-
9creativity
-
10content
-
9design
-
10usability
-
10creativity
-
9content
-
7design
-
7usability
-
6creativity
-
9content
-
9design
-
9usability
-
9creativity
-
10content
-
7design
-
8usability
-
6creativity
-
9content
-
9design
-
8usability
-
8creativity
-
9content
-
9design
-
9usability
-
9creativity
-
10content
-
9design
-
8usability
-
5creativity
-
10content
-
9design
-
10usability
-
10creativity
-
10content
More by Open Green Energy
- DIY Smart Multipurpose Battery Tester In recent years, the market has been flooded with low-cost batteries, many of which originate from u...
- Solar Powered WiFi Weather Station V4.0 This is an affordable weather station for various applications like smart agriculture, smart city, s...
- DIY Solar Bottle Lamp V1.0 Solar Bottle Lamp is a solar-powered light that is constructed from waste plastic bottles. The desig...
- DIY Solar Mason Jar Lamp Making a solar mason Jar Lamp is not just a fun project; it’s also a fantastic way to learn about re...
- LED PCB for DIY Solar Bottle Lamp V2.0 DIY Solar Bottle Lamp V2.0 contains two PCBs, one is the Main PCB and the other is the LED PCB.This ...
- DIY Portable Solar Generator V2 A DIY portable solar generator is an excellent project for individuals who want to harness the power...
- DIY 18650 Power Bank With Flashlight BOM :Powerbank Module: https://s.click.aliexpress.com/e/_DBELYV918650 Battery: https://s.click.aliex...
- Solar WiFi Weather Station V4 Receiver ( Rx ) Note:One more important thing, both the transmitter and receiver board must be in the same frequency...
- DIY Solar Panel Monitoring System – V2.0 As solar photovoltaic (PV) systems become increasingly popular as a clean and renewable source of en...
- Main PCB for DIY Solar Bottle Lamp V2.0 PCBWay Note: DIY Solar Bottle Lamp V2.0 contains two PCBs, one is the Main PCB and the other is the ...
- How to Make a 12V Lead Acid Battery Charger with CC & CV I made a simple battery charger for charging my 12V/7Ah SLA battery commonly used inside the UPS for...
- TP4056 Based Solar Bottle Lamp Solar Bottle Lamp is a solar-powered light that is constructed from waste plastic bottles. The desig...
- DIY Mini UPS for WiFi Router V5.0 The pandemic COVID-19 outbreak forced companies to continue with work-from-home policy to maintain s...
- ESP8266 Weather Widget V2.0 Welcome to my new Weather Widget Project. Earlier I have posted an article on the weather widget, th...
- DIY Non Contact IR Thermometer V1.0 Currently, we are chasing an invisible monster named Corona Virus ( COVID-19 ) and we are going thro...
- Solar Powered WiFi Weather Station V3.0 Note: now the version is 3.2 This Weather Station is such compact weather station that consists of s...
- DIY Emergency Light Features:● Long Battery Backup ( 6V / 4.5Ah )● Light can bе соnnесtеd tо the power source аll t?mе.●...
- DIY Rainbow Solar Mason Jar In this tutorial, I am going to show you how to make a Rainbow Solar Mason jar. This is a great proj...
-
-
-
kmMiniSchield MIDI I/O - IN/OUT/THROUGH MIDI extension for kmMidiMini
109 0 0 -
DIY Laser Power Meter with Arduino
155 0 2 -
-
-
Box & Bolt, 3D Printed Cardboard Crafting Tools
152 0 2 -
-
A DIY Soldering Station Perfect for Learning (Floppy Soldering Station 3.0)
542 0 2