Product Description

Arduino Battery Capacity Tester V2.0

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


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.

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

  • Comments(0)
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP
    View More

    You might like

    • ATM90E26 FeatherWing
      3000 Beans or US $30.00
      BUY NOW
    • Arduino Battery Capacity Tester V2.0
      3000 Beans or US $30.00
      BUY NOW
    • Sipeed Longan Nano
      700 Beans or US $7.00
      BUY NOW
    • Sipeed Lichee Nano
      700 Beans or US $7.00
      BUY NOW
    • Sipeed MAix BiT for RISC-V AI+IoT
      1300 Beans or US $13.00
      BUY NOW
    • TTGO T-Display ESP32 WiFi and Bluetooth Module Development Board For Arduino 1.14 Inch LCD
      800 Beans or US $8.00
      BUY NOW
    • TTGO T-BeamV1.0ESP32LoRa 868Mhz WiFi GPS NEO-6M18650
      3000 Beans or US $30.00
      BUY NOW
    • 4 ports Isolated USB - UART Converter
      3300 Beans or US $33.00
      BUY NOW
    • UFO Alien-I CAN SODLER KIT 2019 SILVER AWARD
      700 Beans or US $7.00
      BUY NOW
    • TTGO T-Camera ESP32 WROVER & PSRAM Camera Module ESP32-WROVER-B OV2640 Camera Module 0.96 OLED(Fish-eye Lens)
      1800 Beans or US $18.00
      BUY NOW
    • Solar Powered WiFi Weather Station V2.0
      3000 Beans or US $30.00
      BUY NOW
    • Debug Board USB to RS232 Isolated Serial Converter
      1200 Beans or US $12.00
      BUY NOW
    • I2C NavKey: 7 functions joypad on the I2C bus
      1800 Beans or US $18.00
      BUY NOW
    • PogoProg Model B Pogo Pin Programmer - 2 Pack
      700 Beans or US $7.00
      BUY NOW
    • hackaBLE - tiny nRF52832 BLE development board
      1700 Beans or US $17.00
      BUY NOW
    • Bumpy blackmagic probe compatible SWD debugger
      1200 Beans or US $12.00
      BUY NOW
    • Flashlight-I CAN SOLDER KIT 2019 GOLD AWARD
      500 Beans or US $5.00
      BUY NOW
    • Illuminated RGB Encoder
      600 Beans or US $6.00
      BUY NOW
    • I2CEncoder V2.1 Connect multiple encoder on I2C bus
      700 Beans or US $7.00
      BUY NOW
    • Papyr - Nordic nRF52840 epaper display
      3900 Beans or US $39.00
      BUY NOW
    • Arduinoflake Soldering Kit
      2500 Beans or US $25.00
      BUY NOW
    • Deauth Detector V3
      1000 Beans or US $10.00
      BUY NOW
    • Deauther MiNi V2
      1200 Beans or US $12.00
      BUY NOW
    • WiFi Deauther MonsterV3
      3000 Beans or US $30.00
      BUY NOW
    • WiFi Deauther OLED V5
      2500 Beans or US $25.00
      BUY NOW
    • TinyFPGA BX
      3400 Beans or US $34.00
      BUY NOW
    • TinyFPGA AX2
      1600 Beans or US $16.00
      BUY NOW
    • TinyFPGA AX1
      1000 Beans or US $10.00
      BUY NOW
    • TinyFPGA Programmer
      800 Beans or US $8.00
      BUY NOW
    • EspoTek Labrador (Oscilloscope, Signal Gen + More)
      2900 Beans or US $29.00
      BUY NOW
    Product Name
    Link for reference
    Quantity