In this article, we are going to make a 6V lead-acid battery charger circuit in different ways. 6V lead-acid batteries were very common decades ago when portable emergency lanterns were very popular. But still, these batteries are being used in various devices. Sometimes, we need our custom battery charger circuit for this type of battery. So let’s find it out the ways we can make the battery chargers for these 6V lead-acid batteries.
Disclaimer:
Handling electricity carries inherent risks. It’s essential to have the appropriate skills to manage it safely. Proceed at your own risk, as the author disclaims responsibility for any misuse, harm, or errors. All content on this website is unique and copyrighted; please avoid unauthorized copying. While most articles are open-source for your benefit, feel free to use the knowledge provided. If you find our resources helpful, consider purchasing available materials to support our work.
For assistance or guidance, leave a comment below; the author is committed to helping. Some articles may contain affiliate links that support the author with a commission at no additional cost to you. Thank you for your understanding and support.
Table of Contents
Use of 6V lead-acid battery charger & Batteries:
The 6V lead-acid batteries were used in emergency portable lanterns in the early days. I had several of them in my childhood. But still, now these batteries are being used in different devices.
This one was very common at that time. The fluorescent tubes were used in this type of emergency light. As the storage, 6V lead-acid battery was used inside. Some of them had other facilities like a radio, fan, and torch.
Before starting the next please read this article: Get the long life of your Lead-Acid battery by selecting the right charging method
Note: Before you proceed note that this charger is not suitable for large batteries. It is only suitable for small batteries like <10Ah. Kindly do not use these small battery charger circuits for big batteries. Thanks.
Charging a 6V lead acid battery:
We are habituated to calculating the charging parameters of 12V batteries. Like that, we can keep the parameters similar for 6V batteries just changing the voltage limit by half. But before that, we must check this battery:
Can you see what the battery is telling you? If not, read this carefully:
It indicates 3 important values here. We must follow these 3 points when we charge the battery. Each battery can be used in 2 different modes.
- Standby mode
- Cycle mode.
Standby mode:
Standby mode is using the battery within a narrow voltage range either charging or discharging it. In online UPS or relevant devices, batteries are used in standby mode. In this mode, the battery is continuously charging, and at the same time, it is discharging. Just like a capacitor. Here this 6V battery indicates that in standby mode, the terminal voltage should be 6.75V to 6.9V. Otherwise, the battery may get heated and dried inside or even the battery plates may get damaged.
Cycle mode:
In cycle mode, the battery gets charge then it is disconnected from the charger. Afterward, the battery is only discharged (down to a certain level) when it is required. Once the battery is discharged, we need to charge that battery again to the full charge level. This is cycle use. Cycle use is common in those devices where there is no uninterrupted feature provided like UPS.
Voltage ranges:
When charging a battery, we must maintain two voltage ranges. One is the full cut (Full charge) voltage level and low cut ( Discharge) level. For a 6V Lead-Acid battery, these two voltages are 7.15V & 5.3V respectively. In some systems, the low limit is further lower(5.2V) than this. This is a very small variation but it’s important.
Charging methods:
For 6V batteries, we can follow two methods based on the use of the battery. Making a high configured charger sometimes may not be economical for these small batteries. And most of the systems use these two methods that we are going to see next.
- Standby charging
- 3 Step charging
So we can make our 6V lead-acid battery charger circuit in two modes. Let’s see.
Standby charging:
When you need the batteries not frequently but with a gap like several hours or days and no fast charging is required then this method is suitable for your battery. So what mechanism is kept here?
In this method, a simple voltage regulator circuit is used to supply a constant voltage. Check this circuit:
The circuit is very simple and easy to make. The 220V (or your line voltage range) is converted into 9V AC using a step-down transformer TR1. Then the AC supply is bridged with 4 1N5408 3A diodes and filtered by a capacitor (C1) 2200uF to make it pure DC. Afterward, a low valued series resistor R4 is used to limit inrush current which is important to protect both the regulator and transformer from burning. Then the legendary LM317T voltage regulator plays the final role here. But ensure that you used a sufficient heat sink with this voltage regulator as the regulator will be heating up a bit. R2, R1 is used to regulate the output voltage where R3||RV1 helps fine-tuning the output voltage. Then the power is delivered through the diode D1 (1N5408) to the battery.
Tuning:
First, disconnect the battery then measure the output voltage after the Diode D1. Tune the RV1 variable resistor and set the output voltage at 7.2V. Then connect the battery to the circuit.
Result:
This circuit will not cut the voltage when it reaches 7.2V but it will maintain that voltage until power cuts or the battery is discharged. The regulator LM317 is thermally protected so it will not be damaged for normal heat but a sufficient heat dissipation way with a heat sink (sometimes a colling fan can be used) is mandatory.
PCB design of the above circuit:
Pros & Cons of this circuit:
Pros:
- Circuit is very simple and low cost
- Easy to confirure
- Less failure
Cons:
- Current range 1.5A max
- Charging is never cut off rather than holding in standby position
- Battery may get heated if voltage selection is wrong
Current Extention:
To increase the current, the Diodes can be replaced by 10A10 and LM317 can be replaced by LM350. Besides changing the regulator IC, the series resistor R4 should be replaced by 2Watts and the heat sink must be increased in size. A cooling fan can be used too.
Full charge control interface:
Integrate the following changes to introduce full charge control with the above circuit.
The Q1 is on when the battery is not fully charged. But once it is charged to a level, the Q1 is off which turns off the charging indicator LED. And the charging is activated only when the input is on through Q2. To set the full charge level, tune the FULL CHARGE SET variable keeping the battery disconnected. Once set, connect the battery to the terminal. When the battery is full, it automatically turns off the regulator and the CHARGING LED as well.
PCB for the modified circuit:
Why this circuit is used?
This circuit is small and suitable for most devices to maintain charging. Besides, only a few components are used makes it more economical. That is why this circuit is used in most systems. But some systems use SMPS battery charger circuits too.
About SMPS battery chargers:
Besides this linear system, SMPS or Switch Mode Power Supplies are also used for power conversion in some devices like the emergency lanterns of old times.
SMPS battery charger circuits are pretty complex compared to this linear one. If you don’t understand this linear one then it’s impossible to make something with SMPS one. That is why I’m not publishing SMPS circuits here in this post. Maybe in another article, I’ll write on this.
Notes:
With minor changes, you can use these circuits for 12V or even for 24V too if the required current is low.
3-Step charging:
The 3 Step charging is a little complex comparing to the linear one we discussed above but it is not too complex to make as well. In 3 step charging, the charging voltage and current are controlled in a certain way. After a full charge, trickle or float charging starts keeping the battery in healthy status. This circuit is suitable for large batteries but you can use it for 6V one too.
You are already known to this graph from the article: Get the long life of your Lead-Acid battery by selecting the right charging method.
Explanition:
At first, the battery is charged keeping a constant current (C/12, C = Ahr) rate until the battery rises to a certain voltage of 7.2V (for 6V). This first stage is the bulk charging state. Then in the topping charging state, the battery voltage is kept constant but the current reduces gradually. In this state, the battery gets the maximum pushing to store charge. When the current drops down to the C/200 level float state starts. In this floating state, the battery is not actually being charged but it maintains a level to keep the battery healthy. That’s it, Simple.
3 Step charging circuit selection:
You have seen that the method is a little automated and smart to select the operation modes. That is why we need special components to control everything. A small microcontroller can be used for this purpose. Besides, some dedicated battery charger ICs can be used.
The BQ24450 from Texas Instruments and some more from Analog Devices can help you in this case.
But these ICs are suitable for the production of battery charger circuits. For small quantities, using those ICs may not be economical at all. Now this situation can be overcome using a microcontroller. Let’s find it out.
Circuit diagram for 3-Step charging:
Here, we used PIC12F675 small microcontroller to do all the computing and processing works. From the left, the transformer is simply converting the AC220V into 9V as our previous circuits. Then the bridge & filter capacitor makes it DC. The Battery here is connected with this power source through a MOSFET rather than any regulator. Although we used a LM317L but not for charging purposes but regulating purposes to generate 3.3V to supply our microcontroller.
The Opto-Coupler here is sensing the presence of supply voltage and MCU is sensing it through its GP3 pin. RV1 is used to tune the battery voltage level. Once the circuit is powered up, turn on the supply and slowly tune the RV1 to set the first high cut (Full Charge Voltage) point. Then it will work normally. LED D1 (CHR) indicates the charging mode. Fast blink for Bulk charging mode, Slow for Topping, and Off for float mode. The battery indicator LED D2 (BAT) is on when the battery is fully charged and kept in maintenance mode.
The Circuit uses a shunt resistor R1 (0.22Ω/2W) to sense the current.
PCB for the above circuit:
Before starting the programming of our circuit, I recommend you to read this article first: PWM pulse generation using PIC12F675 micro-controller
Programming:
/******************************************************************************* Program for 6V Lead-Acid battery Charger circuit Program written by_ Engr. Mithun K. Das; mithun060@gmail.com MCU:PIC12F675; X-Tal:4MHz(internal); mikroC pro for PIC v7.6.0 Date: 05-08-2021; Note: VDD: 3V3, ADC_REF: 3V3 (VDD); *******************************************************************************/ #define CH_ON_LED GP0_bit #define BAT_LED GP1_bit #define S_Sense GP3_bit #define pwm_pin GP5_bit unsigned int scale=0,duty=0; void InitTimer0() { OPTION_REG = 0x80; TMR0 = 200; INTCON = 0xA0; } void Timer_interrupt() iv 0x0004 ics ICS_AUTO { if (TMR0IF_bit) { TMR0IF_bit = 0; TMR0 = 240; scale++; if(scale<duty) { pwm_pin = 1; } else { pwm_pin = 0; } if(scale>100)scale=0; } } int k=0; unsigned int battery=0,Isense=0; short charging_mode=0;//bulk unsigned int c_cnt=0; void main() { TRISIO = 0b00011100;//set I/O GPIO = 0x00; CMCON = 0x07;//comparator off ANSEL = 0b00101100;//AN2 & AN3 InitTimer0(); while(1) { if(!S_Sense)//supply is available { //read battery voltage battery = 0;//clear previous data ADCON0 = 0b00001001;//AN2 battery = ADC_Read(2)*0.086; // = (3.3/1023) * ((10K+6.0K)/6.0K) * 10 //such as 6.5V = 65; //read current Isense = 0;//clear previous data ADCON0 = 0b00001101;//AN3 Isense = ADC_Read(3)*14.66;// = 3.3/1023 * 1/0.22 * 1000; //in mA if(charging_mode==0)//charge in bulk mode { if(Isense<2000) //2A { if(duty<99)duty++; } else if(Isense>2200) //2.2A { if(duty>1)duty--; } if(battery>=73)//7.3V { c_cnt++; if(c_cnt>1000) { c_cnt = 0; charging_mode = 1;//topping mode } } CH_ON_LED = ~CH_ON_LED; BAT_LED = 0; Delay_ms(100);//fast blink } else if(charging_mode==1) //topping { if(battery<70) { if(duty<100)duty++; } else if(battery>72) { if(duty>1)duty--; } if(Isense<25) { c_cnt++; if(c_cnt>1000) { c_cnt = 0; charging_mode = 2;//float mode } } CH_ON_LED = ~CH_ON_LED; BAT_LED = 0; Delay_ms(200);//slow blink } else //float { if(Isense<20) //20mA { if(duty<100)duty++; } else if(Isense>22) //22mA { if(duty>1)duty--; } if(battery<6.8) { if(duty<100)duty++;//boost to maintain } BAT_LED = 1;//battery full CH_ON_LED = 0;//full charge } } else { CH_ON_LED = 0; BAT_LED = 0; duty = 0;//turn off PWM } }//while(1) }//void main() //
The code is written in mikroC Pro for PIC v7.6.0. The interrupt used here is a timer interrupt to generate the PWM signal that I already described in my article: PWM pulse generation using PIC12F675 microcontroller. The rest of the programming is simply doing the battery charging in 3 steps.
Basic explanation:
The part of the code:
//read battery voltage battery = 0;//clear previous data ADCON0 = 0b00001001;//AN2 battery = ADC_Read(2)*0.086; // = (3.3/1023) * ((10K+6.0K)/6.0K) * 10 //such as 6.5V = 65;
We are sensing the battery from here. You may ask where I got the 0.086? Simple. Here, we are using 3V3 as our VDD. Also, this is our ADC reference value. That is why the 10bit ADC and the resistor voltage divider with 10K & (6.8K||(1K+VR)) give us (3.3/1023) * ((10K+6.0K)/6.0K). Now, we are not taking the floating-point data here. That is why to measure the fractional voltage of the battery, we simply multiplied that value by 10. That means, if the ADC pin senses the battery voltage as 6.5V, we can not get the .5V fraction if we don’t multiply it by 10. But we can get 65 if we do that.
Similarly, for current sensing, we got our values which are masked by ‘ // ‘ in the code.
if(charging_mode==0)//charge in bulk mode { if(Isense<2000) //2A { if(duty<99)duty++; } else if(Isense>2200) //2.2A { if(duty>1)duty--; } if(battery>=73)//7.3V { c_cnt++; if(c_cnt>1000) { c_cnt = 0; charging_mode = 1;//topping mode } } CH_ON_LED = ~CH_ON_LED; BAT_LED = 0; Delay_ms(100);//fast blink } else if(charging_mode==1) //topping { if(battery<70) { if(duty<100)duty++; } else if(battery>72) { if(duty>1)duty--; } if(Isense<25) { c_cnt++; if(c_cnt>1000) { c_cnt = 0; charging_mode = 2;//float mode } } CH_ON_LED = ~CH_ON_LED; BAT_LED = 0; Delay_ms(200);//slow blink } else //float { if(Isense<20) //20mA { if(duty<100)duty++; } else if(Isense>22) //22mA { if(duty>1)duty--; } if(battery<6.8) { if(duty<100)duty++;//boost to maintain } BAT_LED = 1;//battery full CH_ON_LED = 0;//full charge }
And in this block, we are simply making a 3 step charging. Although we did not make so many complex calculations or loops, it is fine for a 6V battery.
Here, if your battery is large and expensive, you must use a larger microcontroller to do more loops that will make the system safe. If you need help for that purpose don’t wait to contact us.
Pros and Cons:
Like the previous analog circuit, this one has some good and bad sides as well.
Pros:
- High efficient
- Proper charging
- Battery management
- Battery long life
Cons:
- Complex & need experience to make
- Little expensive
Why this type of circuit is used?
If the circuit is complex and expensive then why this type of circuit is used? Yes, when the battery needs lots of attention and you need to run the battery for a long time then it is really required to use such a complex circuit. Even here I designed a simple one for you so that you can understand. But in real life, this circuit may have other features and faster speed.
Summerizing:
There are different ways to do a job. Also, there are different ways to charge a 6V lead-acid battery. Here I presented you with 3 ways you can follow. Now it’s your choice which one you will follow because you know the pros and cons of each one. If you do not understand microcontrollers and programming then it will be suitable to start with the analog circuit. But if you know a little, then it’s time to make fun with the microcontroller.
Conclusion:
In the end, I hope this article on 6V lead-acid battery chargers will help you a bit. Either it helps or not, don’t forget to comment below. Don’t just leave like a so what type reader. Comment below what you want next to learn.
For Professional Designs or Help:
You may read this: Digital Clock with DS3231 & PIC microcontroller
21 Comments
Joy · 06/08/2021 at 1:17 pm
We know that the formula for battery charging is 10% of the amount of charging current in the battery. But if you want to charge a small battery 12 volts 7.5 amperes, then applying this formula amperes and charging with 10% will not fully charge the battery. However we use 13. 5 (Fixed Volt) 3 amperes , the Battery Full charged. So how to apply this formula in case of small batteries And how to calculate the ampere in the case of small batteries.
MKDas · 06/08/2021 at 3:12 pm
No, whatever it is small or large formulas for all lead-acid batteries are the same. For a 12V/7.5Ah battery, the charging amp should be 0.75A max. Charging over this will damage the battery over time.
Joy · 06/08/2021 at 4:50 pm
Yes I know but when the battery is charged it takes 1 A up. if 0.75 is given then it is not fully charged and takes a lot of time. In that case the charge ends quickly. But sir I have seen that if it is charged with 13.5 fixed volts 3 amperes it shows 13v when fully charged.We know On average a battery can last well over 18 months. I’ve been using the battery well for about two years with this way of charging. Thus if the battery lifetime was right then my system is right or wrong?.
MKDas · 06/08/2021 at 4:54 pm
If the battery is charged for a short time then the charge amp can be increased up to the max limit it indicates.
Asimiyu · 06/08/2021 at 5:08 pm
Good day sir engr Mithun. i would like to say thank you for this new post on battery charging circuit, with full details, and section by section. it is not so easy to take time and resources, to draw all these circuits and at the same time develop the programming for it. May you continue progressing in knowledge, strength, long life with prosperity.
However, I just try to visit here this today to gain more knowledge and i saw this, and i have been going through it section by section up to two hours now. pls i would like to ask the following questions and i am confused:
(1) from the first circuit, how did you calculate the series limiting resistor; R4 = 0.1R/1w, (with lm317 without batt. cut), bcs peak voltage = 9xsqr = 12.72v: and i did something like this: R(4) = 12.72/0.375A = 33.92R/5W.(where C/12 = 4.5AH/12 = 0.375A) but i couldn’t arrive to your value. pls we are still learning sir.
(2) Also, from the last circuit, with PIC12F675 controller. you have used VDD = 3v3, though, i was expecting VDD = 5V, pls, the configuration of VDD is it internal config. or External?. if it is external, can 3v3 be used instead of VDD = 5V?
(3) from the same controller, the CHARGING_SIGNAL (“CHRG_SIG” ) pin#2 is connected to the gate of MOSFET. can the signal able to drive the gate without heating up? since controller cannot given out more than +/-5v pulse, and MOSFET gate need up to 10v to full ON, OR using gate driver not better? pls i am still a learner.
(4) from the same controller, how the sensing current resistor (R1 = 0.22R/2W) is calculated for 2.2A Charging current you have assumed in the program developed. though, i have been cracking my brain if it is: R1 = 0.6/Imax; (but this formula is applicable for BJT not MOSFET).
(5) finally not the last, how did you manipulate the value 200 you have loaded into TMR0 (i.e TMR0 = 200). Though, i have gone through the datasheet, and you have used prescaler value of 1:2 (i.e INTCON = 0xA0; =>> 0b10100000); with 8bit Timer0. (256), and you later assigned 240 (TMR0 = 240;) pls sir, how did you arrive to 200 and 240? (OR you choose value between 0 – 256? and why sir?). thank you God bless you for the knowledge you have been impacting to the people who have passion to learn power electronics and programming.
MKDas · 06/08/2021 at 5:35 pm
Thank you as well. For your questions:
1>> No, the series resistor can not be calculated like so. If you calculate in this way, it will drop all the voltages in your series resistor. Makes it hot and finally burns it out. Calculate this way: The IC LM317 needs 1.5V as the headroom voltage. So what is your max voltage which may be extra? 9-1.5-7.3 = 0.2V. Now, what is the max current limit of LM317? 1.5A. Then the series resistor will be 0.2V/1.5A = 0.13Ohm. Which is near the available range: 0.1 Ohms. This way, the whole circuit will be balanced. IC will not burn as well as the Resistors. I think you got the point.
2>>As we are charging a battery of 6V, when the battery is discharged to 5.2V or below then you have no such voltage regulator that can give you 5V. Or you will need to boost it up and then regulate which is not economic at all. But if we use 3.3V as the VDD as well as the references it is solved. Got it? No need to configure from code. Just keep it in mind and in your calculation.
3>> OK. Check the MOSFET number. It is RU3060. Then read the datasheet of this MOSFET. It need only 4.5V to trigger the Gate in full. So? Not all the MOSFETs need 10V to switch it in full. Some are different. Especially the smaller ones and SMD ones.
4>> R1 is chosen to get the minimum loss but can read the lowest required current. Here VDD is 3.3V and ADC is 10bit. So what is the minimum ADC v/c? 3.3V/1023 = 0.0032258V/cnt or 3.2258mV/cnt. Now you can calculate the shunt.
5>> No, there is no such strict rule to keep the value of TMR0 the same in initialization and inside the loop. I started with a slow time then faster it up. Nothing changes than the PWM frequency.
I hope you got your anwers. Thanks.
Asimiyu · 06/08/2021 at 5:47 pm
wao! thank you sir. The whole things is cleared!
Ehi · 11/08/2021 at 2:10 am
I didn’t see where to download the hex file, thanks
MKDas · 11/08/2021 at 11:41 am
Asimiyu · 11/08/2021 at 8:50 pm
Good day sir engr. Pls. I would like to ask few questions below:
I am about to construct this circuit on local veroboard to charge 12V/200A. And since this was posted to charge lead acid of 6v. The following changes were made and, please correct y if I am wrong. We are still learning sir.
(1) charging voltage for AGM deep cycle battery is 13.8v, and c/12 —> 200/12 = 16.7A (OR 17A charging current).
(2) I determine sensing current Resistor (R1) = 0.4v/17A = 0.023A. (Vshunt = 0.4volt is abtrarily chosen), the problem is that if I choose R1 = 0.02R/ 6watts. The current flyback to 20A (instead of 17A). What should I do?.
(3) lastly sir, I plan to use two MOSFETs (IRF3205) with Heatsink. Here, I am confused sir, should I use PC817 opto-coupler to drive the two gates?. Or using Driver IR2104 Half – bridge ?. Please, help, we are just a learner
MKDas · 12/08/2021 at 11:49 am
Stop!
First of all, this charging circuit is suitable for small batteries. Such as 4~7Ah range. Never suitable for 200A. Kindly do not follow this small circuit to charge the 200Ah batteries. For large battery, kindly read my other articles on battery charging first. Then select the circuit.
Asimiyu · 12/08/2021 at 1:57 pm
Alright. Thanks sir.
Asimiyu · 04/10/2021 at 9:44 am
Hello Sir. It has been long. May God Almighty Bless you. Hope you are fine sir. It is quite long we received new update from your site. I decided to send this message. It is well with you sir.
MKDas · 04/10/2021 at 10:35 am
Yes, had been some bad times in the last few months. Now a little bit better. Hope to start writing again soon. Thanks.
Md Shaheen · 19/04/2023 at 9:38 pm
Hex file not download problem, Oops! That page can’t be found.
MKDas · 23/04/2023 at 12:25 pm
I’ll check it soon. sorry for that link missing.
Mike · 29/04/2023 at 10:07 pm
Hi, I would like to know what should I do to limit the current at about 0.4A in the full charge control interface schematic ? I don’t see a current limiting resistor there.
MKDas · 30/04/2023 at 1:43 pm
in analog circuits there is no such option, but in MCU based design, you can add that.
KinitopetPlayOnline · 10/09/2024 at 11:29 am
Great post! The circuit design for the 6V Lead-Acid battery charger is really well explained. I appreciate the detailed steps and the illustrations provided. Looking forward to trying this out in my lab project!
MKDas · 10/09/2024 at 9:27 pm
Thanks
TikTokio · 24/09/2024 at 12:54 pm
Great project! I appreciate the detailed explanation of the 6V lead-acid battery charger circuit. The step-by-step approach makes it easy to follow. Looking forward to trying it out!