solar controller help

Status
Not open for further replies.

devil6600

Full Member level 5
Joined
Nov 15, 2008
Messages
250
Helped
7
Reputation
14
Reaction score
7
Trophy points
1,298
Visit site
Activity points
2,931
i want to design a solar charger for my 12v SLA battery and 20W solar panel. can anyone advice if the below circuit is ok
thanks
 

The circuit seems ok, but its hard to say how its going to response. It depends on the program of the PIC.
You didn't mentioned what are the values of the resistors, diodes, capacitors, etc.
 

if i am not wrong then for 12v SLA to charge it needs about 13.5V, can you please tell me if the above circuit will be able to provide sufficient voltage? i am using the solar panel with Peak Volts = 17.8V

these are the values of components:
R1-R3 : 6.2K
D1 : schottky 3A (1N5821,…)
R2-R4 : 1K
D2 : 1N4007
R5 : 5.6K
DZ1 : Zener 4,7V 0.5w
R6 : 15K
IC1 : 12F675
R7-R9 : 2.2K
IC2 : 7805
R8-R10 : 820R
T1-T2 : BC547B
R11 : 10k
T3-T4 : IRF9540 (MOS P) (or equ.)
P1-P2 : 1K
C1,C3,C4,C7,C8 : 100nf
C2 : 470uF 25V

pic code:
Code:
' Solar charger
' Olivier de Broqueville. Version 3.3 Feb.2003
' Written and compiled using PROTON+ version 2.00
'
' Use Watchdog, Low power detection and internal OSC with NO clock out
'
' Use of ADIN

		Device = 12f675
        REMARKS ON
		
		CONFIG WDT_ON ,INTRC_OSC_NOCLKOUT,PWRTE_ON, BODEN_ON,MCLRE_OFF
	
		DECLARE WATCHDOG ON
		XTAL = 4
        
'-------[DEFINE PIN SYMBOLS]---------------------------------------------
		Symbol Panneau = GPIO.5		'Trigger for the MOSFET controling the Solar Pannel
		Symbol Charge  = GPIO.4		'Trigger for the MOSFET controling the 'Load'
		Symbol Test    = GPIO.3		'Test pin: If enabled, enter adjustement procedure
        
'-------[ASSIGN VARIABLEs]-----------------------------------------------     
        Dim AD_RESULT as ADRESL.WORD	' Convert the ADRESL register into a WORD variable 
		DIM Surcharge as WORD			' Overload value at which the solar pannel is desactivated
		DIM Decharge  as WORD			' LowBat value at which the 'load' is desactivated
		DIM Tension   as WORD			' Actual voltage level we monitor
		DIM FL_BAS    as BYTE			' Flag used to introduce an hysteresis in 'load' switching
		
'-------[ START SERIOUS THINGS...]---------------------------------------
        Delayms 500						' Wait for the PICmicro to stabilise
    		
'-------[INITIALISATION OF GPIO,AD CONVERTERS, ETC.]----------------------
Initialisation:
		FL_BAS=0
        
		TRISIO = %11111111				' All pins set for input
		ANSEL=%00110111					' Set AN0-AN1-AN2 as analogue input / AN3 as digital input and ADC"s clock for FRC
		ADCON0=%10000000				' Set Right justification of ADC result and VREF to VDD 

'-------[MAIN PROGRAM. LOOP FOREVER]---------------------------------------
Principal:
		While 1 = 1						' Create an infinite loop
 		
Acquisition:
        	Surcharge=ADIN 0			' Perform ADC conversion of Overload reference
        	Surcharge = AD_RESULT
			
			Decharge=ADIN 1			' Perform ADC conversion of Lowbatt reference
        	Decharge = AD_RESULT
			
			Tension=ADIN 2			' Perform ADC conversion of monitored voltage
        	Tension = AD_RESULT
			
			If TEST=0 THEN
' Are we in normal condition (TEST not activated)
' If YES, then control the Panel and the load with delays, histeresis
			
			   If Tension > Surcharge THEN   ' Are we in overload condition (+- 14 volts)?
			   	  LOW Panneau		   		  ' Yes: Disconnect solar pannel
			   ELSE
				  HIGH Panneau			  ' No: Connect solar pannel
			   ENDIF
			
			   IF FL_BAS=0 then	   		  ' Was the load already connected? (Hysteresis)
			   	  IF Tension > Decharge THEN ' Yes. Then is the battery voltage above minimum?
			   	  	 HIGH Charge		 	  ' Yes: Connect the 'Load'
			   	  ELSE
			   	  	  LOW CHARGE			  ' No: Disconnect the 'Load'
				  	  FL_BAS=1				  ' And prepare for hysteresis
			   	  ENDIF
			   ELSE
			   	   IF Tension> (Decharge+40) THEN	'"Histeresis" active: are we above the limit (1volt)
			   	   	  HIGH Charge			 ' YES: Let's connect the 'Load'
				  	  FL_BAS=0				 ' and clear the flag
			   	   ELSE
			   	   	  LOW Charge			 ' NO: Stay disconnected
			   	   ENDIF
			   ENDIF
			
			   IF Tension > (Surcharge+40) THEN 
			   	  LOW Charge	' By the way, are we not overloading the 'Load'?(Above Overload limit + 1volt)
			   ENDIF   		   	 					 	 		
			
         	   SNOOZE 6					' Wait for half a second

' If NO then skip all delays to facilitate adjustements	
			ELSE
		   	   If Tension > Surcharge THEN   ' Are we in overload condition (+- 14 volts)?
			   	  LOW Panneau		   		  ' Yes: Disconnect solar pannel
		   	   ELSE
				  HIGH Panneau			  ' No: Connect solar pannel
		       ENDIF
			
		       IF Tension > Decharge THEN ' Is the battery voltage above minimum?
			      HIGH Charge		 	  ' Yes: Connect the 'Load'
		       ELSE
			      LOW CHARGE			  ' No: Disconnect the 'Load'
		       ENDIF	
			
		       IF Tension > (Surcharge+40) THEN 
		   	      LOW Charge	' By the way, are we not overloading the 'Load'?(Above Overload limit + 1volt)
		       ENDIF   		   	 					 	 		'
		    ENDIF
		
        Wend							' Do another control cycle
'--------------------------------------------------------------------------
      END

thanks
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…