Introduction: NiCd - NiMH PC Based Smart Charger - Discharger

How to build a low cost great features PC based smart charger- discharger which can charge any NiCd or NiMH battery packs.

- The circuit uses the PC power supply , or any 12V power source.

-The circuit uses The "Temperature slope" method which is the most accurate and safe method, in this case the packs are charged by monitoring the temperature and end the charge when the charger sense the end of charge dT/dt, which depends on the battery type.

Two parameters are used as a backup to avoid over charging:
- Maximum time: The charger will stop after a predetermined time according to the battery capacity
- Maximum temperature: You can set the Max. battery temperature to stop the charging when it becomes too hot ( about 50 C ).

- The charger uses the PC serial port, i have built the software with Microsoft Visual Basic 6 with an Access database to store the battery parameters and charging profiles.

- A log file is generated with each charging process showing the charged capacity, charging time, cutoff method ( time or Max. temperature or Max. slope )

- The charging characteristics is displayed online through a graph ( Time versus temperature ) to monitor the battery temperature.

- You can discharge your packs as well as measuring it's actual capacity.

- The charger has been tested with more than 50 battery packs, it realy works great.

Step 1: The Schematic

The circuit can be divided into e main parts:

Measuring the temperature:
This is the most interesting part of the project, the purpose is to use a low cost design with a low cost components along with a good accuracy. i have used the great idea from
http://www.electronics-lab.com/projects/pc/013/ , review it , it contains all the required details.

A separate module in the program has been written to measure the temperature, as it can be used in other purposes.

The charging circuit:
================
- I used LM317 in the first design, but the efficiency was too bad and the charging current was limited to 1.5A, in this circuit i used a simple adjustable constant current source, using one comparator of the LM324 IC. and the high current MOSFET trannsistor IRF520.
- The current is adjusted manually using the 10Kohm variable resistor. ( i'm working on changing the current through the software ).

- The program controls the charging process by pulling Pin(7) high or low.

The discharging circuit:
===================
- I have used the remaining two comparators from the IC, one for discharging the battery pack and the other for listening to the battery voltage and stop the discharging process as soon as it drops to a predetermined value ( for ex. 1V for each cell )

- The program monitors pin(8) , it will disconnect the battery and stop charging when it's logic level "0".
- You can use any power transistor can handle the discharge current.
- Another variable resistor ( 5K ohm ) controls the discharge current.

Step 2: The Circuit on the Bread Board

The project has been tested on my project board before making the PCB

Step 3: Preparing the PCB

For the fast charge process you will need a high current , in this case you should use a heat sink, i have used a fan with its heat sink from an old VEGA card. it worked perfectly. the circuit can handle currents up to 3A.

- I fixed fan module to the PCB.

Step 4: Fixing the MOSFET

The transistor should have a very strong thermal contact with the heat sink, i fixed it to the back of the fan module. as shown in the image below.
BE CAREFUL, DON'T TO ALLOW THE TRANSISTOR TERMINALS TO TOUCH THE BOARD.

Step 5: Soldering the Components

Then i started to add the components one by one.
I hope that i have time to make a professional PCB, but that was my first version of the project.

Step 6: The Complete Circuit

This is the final circuit after adding all the components
look at the notes.

Step 7: Mounting the Discharge Transistor

This is a closed image showing how i mounted the discharge transistor.

Step 8: The Program

A screen shot of my program
I'm working on uploading the software ( it's big )

Step 9: Charging Curves

This is a sample charging curve for a Sanyo 2100 mAH battery charged with 0.5C ( 1A)
notice the dT/dt on the curve.

Note that the program stop the charging process when the battery temperature increases rapidly
slope equals ( .08 - 1 C/min )