Solar Şarj Regülatörü (veya kontrolörü) Yapımı

Başlatan outlaw57, 30 Mart 2013, 12:33:54

outlaw57

Arkadaşlar,

solar şarj regülatörü yapmak için girişime başladım. Ancak ölçümler hatalı oluyor ve bir türlü düzgün bir skala yapamadım.
Skala yapmak için Vout = Vin * (R2/(R1+R2)) formülünü kullandım. Akü maksimum 14.4V, panel maksimum 21V verdiğine göre yapmaya çalıştım.

ilgili şema ektedir. Yardım eder misiniz? 

Alıntı Yap'

Device=12F675

Config CPD_OFF, CP_OFF, BODEN_ON, MCLRE_OFF, PWRTE_OFF, WDT_OFF, INTRC_OSC_NOCLKOUT

Xtal 4
All_Digital true

'**************
Adin_Res 10    ' Analog Bilgi 10bit olarak alınacak
Adin_Tad FRC   ' RC OSC secilir
Adin_Stime 50  ' örnekleme 50 mikrosaniyede bir alınacak.
'***************
Output GPIO.0       'cikis
Output GPIO.1       'sarj
'****************
Symbol cikis = GPIO.0
Symbol sarj = GPIO.1
'****************
Dim akuvoltaj As Float
Dim pvvoltaj As Float
Dim akuseviye As Word
Dim pvseviye As Word
Dim i As Byte
'****************
ANSEL=%00111100     ' AN2 akü için, AN3 PV için analog olarak ayarlanmıştır.
'***************
' Devre Özellikleri; (orijinali, juta serisi)
'-------------------
'   -Şarjı kesme 14,4V (12V için) | 7,2V (6V için)
'   -Çıkışı kesme 10,6V (12V için) | 5,3V (6V için)
'   -Çıkışı tekrar devam 12V | 6V
'
' Sistem Çalışma Mantığı;
'------------------------
' PV ve akuyu ölç
' Durum 1; PV karanlık akü dolu ise cikis ver
' Durum 2; PV karanlık akü bos ise cikis yok
' Durum 3; PV aydinlik cikis yok,
'    Durum 3a; akü bos ise sarj ver
'    Durum 3b; akü dolu ise sarj yok   

cikis=0
sarj=0
i=0
akuvoltaj=0
pvvoltaj=0
pvseviye=0
akuseviye=0
cikis=0

basla:

For i=1 To 5
    GoSub Pvolc
    DelayMS 250
    pvseviye=pvseviye+pvvoltaj
Next
pvseviye=pvseviye/5         ' 5 ölçümün ortalaması alınır

For i=1 To 5
    GoSub Akuolc
    DelayMS 250
    akuseviye=akuseviye+akuvoltaj
Next
akuseviye=akuseviye/5       ' 5 ölçümün ortalaması alınır
                                               
If pvseviye<=250 Then        'PV<=1,22V (karanlık) [1,22 => 5v skalasında 0,25 eder.]

    If akuseviye>=255 Then  'akü>=9,12V (akü iyi) ise çıkış verecek ve sarj vermeyecek [9,12 => 5v skalasında 2,85 eder.]
        cikis=1
        sarj=0       
    Else                    'akü<9,12V (akü çok az) ise çıkış vermeyecek ve sarj vermeyecek
        cikis=0
        sarj=0
    EndIf
EndIf
     
If pvseviye>250 Then         ' PV>1,22V (aydınlık) [1,22 => 5v skalasında 0,25 eder.]

    If akuseviye<450 Then   ' akü<14,4V (akü az) ise çıkış vermeyecek ve şarjı açacak (Trickle şarj gibi) [14,4 => 5v skalasında 4,50 eder.]
        cikis=0
        sarj=1
    Else                    'akü>=14,4V (akü full) ise çıkış vermeyecek ve şarj vermeyecek                       
        cikis=0             
        sarj=0
    EndIf 
EndIf

akuseviye=0
pvseviye=0     
GoTo basla

'------------- PV Ölçüm -------------   
Pvolc:
pvvoltaj=0
    ADCON0=%10001111            ' AN3 Analog ölçüm açılır.
    DelayUS 300
    pvvoltaj = ADIn 3
    DelayUS 1
    pvvoltaj = pvvoltaj * 5
    pvvoltaj = pvvoltaj/1024
    pvvoltaj = pvvoltaj*100       'akuvoltaj değeri (000-500) arasındadır.
    ADCON0=%10001110            ' AN3 Analog ölçüm gereksiz akım harcamasını engellemek için kapatılır.
Return

'------------- Akü Ölçüm -------------   
Akuolc:
akuvoltaj=0
    ADCON0=%10001011            ' AN2 Analog ölçüm açılır.
    DelayUS 300
    akuvoltaj = ADIn 2
    DelayUS 1
    akuvoltaj = akuvoltaj * 5
    akuvoltaj = akuvoltaj/1024
    akuvoltaj = akuvoltaj*100       'akuvoltaj değeri (000-500) arasındadır.
    ADCON0=%10001010            ' AN2 Analog ölçüm gereksiz akım harcamasını engellemek için kapatılır.
Return   

Powered by EzPortal