This circuit can be found on LM338 datasheet. It can be used to charge a 12V lead acid battery.
The R1, R2, R3 values adjust the voltage on LM338 output. The LM301A opamp monitors the voltage on the battery and compares it with a reference voltage set by the voltage divider between R2 and R3,R1. That way the voltage drop on R2 and the resistance of R6 set the amperage where the comparator’s output switches to logic low. This should be adjusted at the point where the battery is considered fully charged and the current has been dropped at 3%-5% of the battery’s capacity.
When that happens the LED is turning on and R4 becomes parallel to R1 setting the LM338 output at a lower voltage level. This enables the float mode.
R7, R8, C4, C5 and C6 have been added as [ΜαστροΤζεπέτο] suggested to filter noises on the comparator’s inputs.
Vin should be >= 18V. Charging current should be no more than 10% of the battery’s capacity. So for a 7Ah battery it should be less than 700mA. LM338 cannot handle more than 5A so use this circuit for smaller batteries. A heatsink is necessary.
The resistors should be chosen carefully so the voltage output on charging mode will be less than 15V (14.4V-15V) and on float mode will be 13.5V – 13.8V. Always consider your battery’s datasheet.
Use the calculator below to find the best resistor values for your circuit. Measure the resistors with a good quality multimeter before soldering them on your board. Their tolerance should also be considered . These numbers are theoretical and may not respond to reality. Charging current is passing through R6. Its power rating should be chosen appropriately.
V1 is the normal charging voltage.
V2 is the float voltage.
Imin is the point where the voltage switches from V1 to V2.
Keep in mind that bigger batteries’ discharge current may be high and the charger will never enter in float mode.
I have built a pcb for this circuit and I use it to charge small batteries. For bigger batteries I may have to solder the LM338 externally with a much bigger heatsink.