Fast NiMH / NiCd Battery charger

PIC16F84A

Jaap Havinga

This battery charger charges a NIMH 5-pack battery used in the BiPed robot in less than 1 hour, and charges the 10-pack NiCd used in the Snuf robot in about 30 minutes. To prevent overheating of the battery, the charging current is turned off when the slope of the battery-voltage turns from positive into negative. A second termination-criterion of the charging process is provided for safety: the charge time is limited to about 1 hour.

Fast NiMH / NiCd Battery charger
Fig. 1. The battery charger in a small plastic case.
Note the numbers shown on the display are in hex format.

In the figure 2 below you find the schematics of the Delta-U battery charger. The program for the utilized PIC16F84A is given in this file nicd.asm *). The transistor Q3 serves as a current switch, and should be able to handle the charging current. The charge current is limited by R5. This resistor should be able to dissipate the energy supplied to it. The LM311 comparator, together with the PIC serves as a simple (non-linear) ADC. The absolute ADC-output value is not important, since only the change in battery voltage is considered. The charging current is switched off when the battery voltage is sampled (each second). The resistor pair R6/R8 should be configured such that the maximum battery voltage is measured in the range 0xE0 .. 0xE8 by the ADC. Then, since the ADC is non-linear, the ADC is sensitive enough to detect a negative slope in time. Since I had a surplus on LCD's I used one to indicate the actual status of the charger. One or two LEDs could do about the same of course.

Battery charger schematics

Some comments on this schematic:

  • Q1 and Q4 are small signal transistors like the BC547.
  • The transistor pair Q2-Q3 I used was BD140 - 2N3055, just because I had some. A power PNP transistor that is able to handle the charge current, and has
    an amplification (Hfe) > Icharge / (Uadapter/R4) (eg 1A charge, Uadapter =12 V, R4 = 1k5 yields Hfe of 125) will do the job instead of the Q2 Q3 pair.
  • D1 is a small signal diode, like 1N4148; it prevents overvoltage at the input of the comparator.

Schematics of battery charger
Figure 2: Schematics of the battery charger (Click on image to get full size)

*) The MPLAB 6.6 project directory is zipped here, it contains all project files to compile the source.

EMS supplier