'---------------------------------------------------------------------------------------------------------
'---------------------------------------------------------------------------------------------------------
'---TEGO BLOKU NIE DO KONCA ROZUMIEM, A TU (CHYBA) POWINNA BYC MOJA LOGIKA DZIALANIA UPS
'(
' Dokładnie co chciałbym uzyskać to:
' 1. pierwszy start
' a) jest napięcie sieciowe "Napiecie_wej >= 1"
' - odczekaj "Opoznienie_wlaczenia"
' - włącz napięcie na wyjściu UPS "Wyjscie = 1"
' - "Siec = 0"
' - "Ladowarka = 1" gdy napięcie poniżej "Ladowanie"
' - "Ladowarka = 0" gdy napięcie powyżej "Naladowany"
' - "Aku_poziom = 1" gdy napięcie akumulatora poniżej "Rozladowany"
' - "Aku_poziom = 0" gdy napięcie akumulatora powyżej "Rozladowany"
' b) brak napięcia sieciowego "Napiecie_wej < 1"
' "Wyjscie = 0"
' - "Siec = 1"
' - "Ladowarka = 0"
' - "Aku_poziom = 1" gdy napięcie akumulatora poniżej "Rozladowany"
' - "Aku_poziom = 0" gdy napięcie akumulatora powyżej "Rozladowany"
' 2. normalne działanie gdy wszystko jest OK
' - włączone napięcie na wyjściu UPS "Wyjscie = 1"
' - "Siec = 0"
' - "Ladowarka = 1" gdy napięcie poniżej "Ladowanie"
' - "Ladowarka = 0" gdy napięcie powyżej "Naladowany"
' - "Aku_poziom = 1" gdy napięcie akumulatora poniżej "Rozladowany"
' - "Aku_poziom = 0" gdy napięcie akumulatora powyżej "Rozladowany"
' 3. normalne działanie gdy braknie napięcia 230V
' - "Siec = 1"
' - "Ladowarka = 0"
' - "Aku_poziom = 0" gdy napięcie akumulatora powyżej "Rozladowany"
' - "Aku_poziom = 1" gdy napięcie akumulatora poniżej "Rozladowany"
' - malinka zamyka system
' - system malinki zamknięty więc "Usb = 1"
' - odczekaj "Opoznienie_wylaczenia"
' - wyłącz napięcie na wyjściu UPS "Wyjscie = 0"
' 4. system zamknięty, a pojawia się napięcie 230V
' - odczekaj "Opoznienie_wlaczenia"
' - włącz napięcie na wyjściu UPS "Wyjscie = 1"
' - "Siec = 0"
' - "Ladowarka = 1" gdy napięcie poniżej "Ladowanie"
' - "Ladowarka = 0" gdy napięcie powyżej "Naladowany"
' - "Aku_poziom = 1" gdy napięcie akumulatora poniżej "Rozladowany"
' - "Aku_poziom = 0" gdy napięcie akumulatora powyżej "Rozladowany"
')
Poczatkowy Alias 0
Czekaj_i_wlacz Alias 2
Wlaczone Alias 4
Czekaj_i_wylacz Alias 10
Rozladowane Alias 20
'tutaj jest tylko jeśli Odczekaj > 0
'------------------------------------------------
' * CZASOMIERZ ODLICZANIA I PRACE PO ODLICZANIU *
'------------------------------------------------
If Odczekaj > 0 Then 'jeśli Odczekaj > to ... '
Decr Odczekaj 'to zmniejszaj!
'a jak osiągnie zero to..
'-----------------------------------
If Odczekaj = 0 Then 'to się dzieje tylko raz kiedy ustawisz Odczekaj > 0
Select Case Stan_urzadzenia 'co miałem zrobić?
'--------------------------Pkt.1
Case Czekaj_i_wlacz 'czekałem żeby włączyć
Wyjscie = 1 'włączam wyjście
Siec = 0
' Wlaczone zdefiniowalem wczesniej i znaczy 4
Stan_urzadzenia = Wlaczone 'zapamiętuję stan który sprawdzam niżej
'---------------------------Pkt.2
Case Czekaj_i_wylacz 'czekałem żeby wyłaczyć
Wyjscie = 0 'to wyłączam
Siec = 1
' Poczatkowy znaczy 0
Stan_urzadzenia = Poczatkowy 'wlaczy sie tylko jak pojawi sie 230V
End Select
End If
End If
' * KONIEC CZASOMIERZA I PRAC PO ODLICZANIU *
'--------------------------------------------
'-----------------------------------------------
' * TU SPRAWDZAM STAN LOGIKI CO OKREŚLONY CZAS *
'-----------------------------------------------
Select Case Stan_urzadzenia
Case Poczatkowy 'poczatkowy znaczy 0 i wystepuje zaraz po właczeniu AVR
If Napiecie_wej > 1.0 Then 'mamy ~230V?
Odczekaj = Opoznienie_wlaczenia 'to ustaw odlicznie a za chwilę się włączy :D
Stan_urzadzenia = Czekaj_i_wlacz 'napisz mu na co czekał (Pkt.1)
End If
Case Wlaczone 'a jesli urządzenie jest już włączone to...
If Napiecie_wej > 1.0 Then
' * praca na sieciowym 230V *
Select Case Napiecie_aku 'w zalezności od napięcia akumulatora
Case Is < Rozladowany
Ladowarka = 1 'włącz ładowarkę
Aku_poziom = 1 'stan krytyczny akumulatora wiec alarm(1)
Case Is <= Ladowanie
Ladowarka = 1 'włącz ładowarkę
Aku_poziom = 0 'napiecie akumulatora powyzej stanu krytycznego wylacz(0)
Case Is >= Naladowany 'np wyżej niż 4.2V
Ladowarka = 0 'wylacz ladowarke
Aku_poziom = 0 'napiecie akumulatora powyzej stanu krytycznego wylacz(0)
End Select
'wyjscie zawsze akywne gdy mamy 230V
Siec = 0 : Wyjscie = 1 'wlaczone napiecie na wyjsciu UPS
Else
' * praca na akumulatorze *
Select Case Napiecie_aku 'w zalezności od napięcia akumulatora
Case Is < Rozladowany
'dupa, zamykamy maline, robimy rząd i spadamy stąd :P
Aku_poziom = 1
'czekamy aż Malina zamknie podwoje
If Usb = 1 Then
Odczekaj = Opoznienie_wlaczenia
Stan_urzadzenia = Czekaj_i_wylacz 'napisz mu na co czekał (Pkt.2)
End If
Case Is > Rozladowany
'na razie brykamy malinom na Akku jak gieroje i cieszymy banana :D
Aku_poziom = 0
End Select
Siec = 1 : Ladowarka = 0
End If
End Select
'---KONIEC TAJNEGO, NIEZROZUMIALEGO BLOKU ;)
'---------------------------------------------------------------------------------------------------------
'---------------------------------------------------------------------------------------------------------