Hello Everyone.......
An update to our work in Rnd Labs. A solar charge regulator or controller (as you wish), which is based on the PWM Mode built using a PIC Microcontroller. We shall see block by block explanation of the whole unit.
Here is the schematic for the whole unit:
Here is a file to download in case it is not viewable on your screen:
Click Here
Let me first attack the Micro-controller based ADC and PWM units as this is the main unit which does one half of the work.
For the ADC, we are exclusively using the PIC 16F88 as it has a built in ADC converter and also its quite small in size with 18 pins. We have already covered the ADC in this post here:
Follow Here
Now coming to the PWM, the PIC16F88 does have a built in PWM, but here we have to re-alter the PWM in a different way which has been explained below.
The following is
some simple algorithm with pseudo-code at some places to help better
understand the flow:-
; Simple 2-Stage algorithm
; Determine the hex
values for 53Volts and 60 Volts
; R1 equ
53h
; R2
equ 60h
; Please note these
R1, R2 values are due to scaling
; In the present case
scaling is 100:5
; Determine the
present Battery Voltage Say R3
10; If R3 < R1 Call
Dump routine
20; If R3 >R1; If
'False go to 10”; Call PWM Routine
; Dump Routine;
; BSF Rb4; (Rb4 is the
Driving output and it is set High;
; Call Delay 2sec;
; BCF Rb4; (Rb4 is set
low);
; Return; Go to 10
meaning continue to check whether;
; The Battery
voltage has crossed the Desired R1 Value;
; PWM Routine;
; R2-R3=R temp;
; BSF Rb4;
; DECFSZ Rtemp;
; Loop;
; BCF Rb4
; DECFSZ RTemp2;
Rtemp2 + Rtemp=C (Constant);
; Loop;
; Return;
; Go to 20
; End;
1) Effectively we
determine what should be the HEX values for 53Volts (R1) and 60Volts (R2).
2) We are continuously
monitoring the Battery voltage (R3)
3) If Battery is below
53 Volts we go to dump routine and make the Controller output High for 2
Seconds. Then we Make the output Low and verify the status of battery Voltage.
4) We continue with
Dump stage till Battery crosses 53Volts.
5) Then we verify
whether it has crossed the set value of 53 Volts and jump to PWM Routine.
6) PWM Routine: Here
we check the difference between higher cutoff voltage and present voltage. The
difference is ON time of PWM Off time is the inverse Meaning ON+OFF shall
be same. (On+Off gives us PRF)
7) Continuous loop
from step 2
Technical Details of the Solar Charge Controller:
The
energy coming from Solar Panel is used to charge battery using this Charge Controller.Two-Stage
Controller is implemented in 16F88 Microcontroller. Charging
is done in two stages: boost charge upto 53 volts and PWM method beyond 53 volts.
The algorithm is provided above.
The cabinet is all aluminum.
Three sides are covered by heat sink. Chassis
DOES NOT consists of any heat dissipating components.
Two
diodes are used to provide reverse polarity protection for solar panel as well
as battery. Each diode rating is 180 Amperes (ie, 90A*2), whereas we are
pumping only 60 Amperes. The maximum dissipation is 60 Amps* diode drop which
is below 150 Watts. We have provided heat sink for 200 Watt capacity each.
The
MOSFET switches have resistance loss Rds=0.065 ohms.
Each
MOSFET, theoretically can output 40 Amperes, whereas, we are loading only 12 Amperes.
So the voltage drop is 0.78 Volts and dissipation is 9.5 Watts. Total MOSFET
dissipation is 5*9.5=50 Watts as we are loading 5 MOSFET’s to share the load
current. The heat sink is 500mmx100mm heat sink profile.
The
selected heat sink is rated 500 Watt dissipation at Ta=25 degree centigrade.
Finally, our unit under testing.
The complete code for the Micro-controller can be downloaded from here: