Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

solar battery charger

Status
Not open for further replies.

abouabdelmajid

New Member
Hi everyone

So this is a circuit of a charge regulator for solar panels. the aim is to charge the battery with 14V then 13V after a moment before its totaly charged. To do so we will need the PWM of arduino to open the MOSFET when the voltae of solar pannel is higer then the battery's then when its opposite arduino shut down the mosfet. the zener diode is here to limit the voltage to 15V.

so what do you think ? is there something to correct ?

2017-09-19_225g122.jpg
 
Q1 does not work like that.
D1 subtracts 15 volts form the panel. Result is a 2 volts.
If the battery is dead then the Arduino will not start and turn on Q1.

What panel are you using?
Is the 17 volt MPP or max voltage?
 
The N-channel Mosfet Q1 is connected as a follower. Then its gate must be 10V higher than its source. The gate must be about +24.6V which is impossible Arduino.
The 15V/17mA zener diode D1 will blow up with charging current. But since its voltage is 15V then the battery will get only about 1.3V and it will not charge.
 
17 V is the maximum voltage.
i thought that the zener diode is here to limit the voltage at 15v not subtracting no ?
can anybody please please please correct it for me ?
 
You could use a relay to open and close the connection to the solar panel. No not need to use a PWM pin. Can use any output pin.
Remove the Zener.
When the battery is charging the solar voltage is 0.7 volts larger than the battery voltage. (relay closed)
upload_2017-9-19_17-18-33.png
 
If you put the Zener from + to - on the solar panel it will limit the voltage. (not a good idea)
 
The easiest way of charging a 12V Lead-Acid Battery from a 17 to 21Vopen-circuit solar panel is to use a low-impedance switch (FET or Relay) that is fully-on or fully-off. Close the switch when the battery voltage drops (due to load or self-discharge) below ~13.5V, and open the switch when the battery voltage climbs above ~14.4V. You don't need a Zener in the path between the panel and the battery.

This means the Arduino needs to measure the battery voltage directly on the downstream side of the switch. The Arduino can turn the switch on/off. However, you really don't need an Arduino. I have built several chargers like this using just a 555 (used as a window comparitor) and a TL431 voltage reference (Cost ~ $2).

Since the solar panel behaves like a constant-current source while its terminal voltage is between ~10V and it's open-circuit Voltage, the battery charging current is whatever the panel will deliver based on the solar flux landing on it. Current limiting is intrinsic in the panel.

As long as the rated output current of the panel (in full sun) is less than the maximum allowed charging current for the battery, then nothing else need be done... While the switch is on, the panel voltage is only a few mV higher than the battery voltage, so the power dissipation in the switch is minimal. (No heatsink required). When the switch is off, the panel voltage will rise to its open-circuit value.

I have been doing this for years in several battery chargers and battery maintainers. Most commercial solar battery charge regulators do it this way. My ham station is powered with a 240W panel feeding a 200Ah 12V battery bank. The charge regulator is based on this scheme.

Is your battery a flooded battery, or sealed AGM type? That affects the cut-in and cut-out voltages a bit. The cut-in and cut-out voltages should be compensated for ambient temperature, too.
 
Last edited:
My Arduino PWM solar charger is based on **broken link removed** design.
Also have a look here

LCD I2C Lib
 

Attachments

  • VoltMkV(2).pdf
    73.2 KB · Views: 169
  • VoltMKV.ino
    32.2 KB · Views: 141
SPDCHK:

What useful purpose do the Schottky diodes D6, D8, D9 serve? (hint, they do nothing, generate heat, and then they need the stupid cooling fan).

What useful purpose does controlling Q4 with 500Hz PWM serve? (hint, what difference is there if Q4 gets turned on 500 times a second or twice per hour? Does the battery care? Does the panel care?)
 
Last edited:
My solar controller build from stuff taken / modified from the web... has charge / discharge current measurement , a work in progress .....
solar01.jpg
 
The first circuit in this thread does not work because it is missing the charge pump parts that develop the high voltage drive to the gate of the N-channel Mosfet.
 
i would like to thank every person who tried to help me think you so much

those are informations about my solar pannel

pv.jpg


i am using a 12V 7.2AH AGM battery

the diode is here to avoid the curent reverse

i decide to use the mosfet because it doesnt consume current power to be controled not like the relay. the way i am puting the MOSFET seems correct for me because it works in my software simulation and with a limit of 5V arduino pin it can close and open the mosfet

i am using an arduino not just to use the PMW but because i am intending to control other devices which doesn't participate in the charge controler system this why i am just showin the charge controler system

the arduino senses the both voltage of battery and the PV at the same time
if the battery is deep discharged arduino closes the mosfet when PV delivers more then 14.4V
if the battery is in the float stage arduino closes the mosfet when PV delivers more then 13.5V
if its night arduino

i just deleted the zener and moved the diode D2. how about this now ? is there some mistakes to correct ?

img.jpg
 
What problem is solved by diode D2?

You do not have a 17V panel; you have a panel which is 21.2V if it is in bright sun, and no current is being drawn from it. Under load, the panel voltage can be anything between 0V (if short-circuited), equal to the battery voltage (if connected direct to the battery through zero Ohms), or higher than the battery voltage if there is a series impedance (like D2).

The Arduino is a bad choice for this controller. It draws > 50 ma from the battery just to measure the panel voltage to see if it is time to turn on the switch? Horribly inefficient.
 
Last edited:
I changed the MOSFET to "P", 10A, 30V type.
Added a mps2n2222a transistor.
The step down needs to be PWM type to save power. This will help with the 50mA the Arduino needs. (current = 1/2)
upload_2017-9-20_18-57-55.png
 
Your circuit is missing the charge pump parts (in the circuits you copied) that boost the PWM voltage from the Arduino to the gate of the Mosfet to about +25V so that the Mosfet can turn on.
Or you can use a P-channel Mosfet that is not a follower as shown in posts #11 and #15.
 
What problem is solved by diode D2?
Accidental reverse connection of the PV panel.... possibly better placed before the voltage sense ?
Not got arduino experience, but my PIC24FV setup takes about 30mA ,, has RTCC module, port expander and LCD with a second backpack PIC16F1827 and some LEDs. 12 bit AD reading mVolts has been a challenge answer .. use bandgap voltage x 4 (4.096v ) read 128 times take off high / low and average ...seems to work... No sun today :(


nosun.jpg
 
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top