- Zasilanie: 230 VAC, 50 Hz
- Pobór mocy bez obciążenia: 3,5 W
- Parametry wyjścia 230 VAC:
- 4 kanały załącz/wyłącz
- maksymalna moc przyłączonego urządzenia: 150 W
- przeznaczenie wyjść: oświetlenie dzienne (żarówka, świetlówka, stycznik), pompka, grzałka, zawór elektromagnetyczny, inne
- Parametry wyjścia 310 VDC:
- 1 kanał (regulacja PWM)
- maksymalna moc przyłączonego urządzenia: 150 W
- przeznaczenie wyjścia: oświetlenie dzienne – żarówka 230 V
- Sumaryczna moc urządzeń 230 VAC/310 VDC:
- Wyjścia niskonapięciowe – 3 kanały załącz/wyłącz, dla OUT3F także regulacja PWM
- Zasilanie wewnętrzne: 12 VDC (sumaryczna moc urządzeń 6 W)
- Zasilanie zewnętrzne: maksymalna moc przyłączonego urządzenia 50 W
- Sumaryczna moc urządzeń: 80 W
- Przeznaczenie wyjść: oświetlenie nocne LED, wentylator, pompka, zawór, inne
- Pomiar temperatury
- Zakres: 0...100°C
- Rozdzielczość: 0,1°C
- Dokładność: ±0,5°C (0...85°C)
- Pomiar pH
- Zakres: 0...10 pH
- Rozdzielczość: 0,1 pH
- Pomiar poziomu wody
- Zakres: 0...15 cm
- Wskazanie: 0...100
Opis programu
Zanim procesor wejdzie w pętlę główną inicjuje porty, wyświetlacz LCD, timery, przerwania, odczytuje nastawy z EEPROM-u dokonując według nich autokonfiguracji, inicjuje układ zegara DS1307, przetwornik ADC oblicza wartości zmiennych związanych ze sterowaniem oświetlenia, inicjuje inne zmienne. W pętli głównej przeprowadzane jest skanowanie klawiatury. Wciśnięcie któregokolwiek klawisza powoduje skasowanie flagi pamięci alarmu oraz licznika czasu upływającego do zgaszenia podświetlacza LCD. Jeśli flaga podświetlacza jest wyzerowana, następuje jej ustawienie. Jeśli istnieje alarm, na określony czas zostaje wyciszony sygnał akustyczny. Wyzerowana zostaje flaga alarmu przecieku (jedyny alarm ustępujący dopiero po potwierdzeniu z klawiatury). Jeśli ustawiona jest flaga podświetlacza LCD i nie występuje alarm lub trwa okres wyciszania sygnału akustycznego, sterownik będzie reagował na wciskanie klawiszy sterujących wyjściami lub powodujących wejście do podprogramów konfiguracji, albo parametryzacji.
Sterowanie za pomocą klawiszy
Klawiszem [up] – zawsze załączamy lub wyłączamy ręcznie światło dzienne. W przypadku, gdy wyjście OUT1L wykorzystujemy do załączania innych urządzeń aniżeli światło, dłuższe przytrzymanie tego klawisza skutkuje ręcznym załączeniem/wyłączeniem światła nocnego. Przyciskiem [down] sterujemy wtedy wyjściem OUT1L. Gdy wyjście OUT1L będzie sterować oświetleniem dziennym, światło nocne załączamy/wyłączamy przyciskiem [down]. Czas trwania załączania/wyłączania (świtu/zmierzchu) w trybie ręcznym jest równy parametrowi czas trwania zmierzchu/świtu – ręka. Jest tak również w sytuacji, gdy zaniknie i powróci napięcie sieciowe. Parametr czas trwania zmierzchu/świtu – auto brany jest pod uwagę przez sterownik w trybie automatycznym (z wyjątkiem zaniku i powrotu napięcia sieciowego). Rozjaśnianie/ściemnianie w trybie ręcznym może więc trwać znacznie krócej niż w trybie automatycznym (warto wykorzystywać tę możliwość przy pracach pielęgnacyjnych w akwarium).
Klawisz [>] – sterowanie ręczne OUT2.
Klawisz [enter] – sterowanie ręczne OUT3F.
Klawisz [esc] – sterowanie ręczne OUT4FD, dłuższe przytrzymanie oznacza sterowanie ręczne OUT5.
Wciskaniu klawiszy, podobnie jak stanowi alarmowemu, towarzyszy sygnał dźwiękowy. Dłuższe przytrzymanie klawisza [>] powoduje wejście w podprogram konfiguracji wyjść sterownika, natomiast przytrzymanie klawisza [enter] powoduje wejście w podprogram parametryzacji. W obu przypadkach następuje zmiana podświetlenia wyświetlacza z koloru zielonego na bursztynowy (wyświetlacz nie będzie podświetlany, gdy panel czołowy będzie silnie oświetlany z zewnątrz).
W pętli głównej wykonywany jest także podprogram obsługi LCD (okno główne) – wyświetlanie czasu, poziomu napełnienia akwarium, temperatury, aktualnego pH, informacji o trybie załączania/wyłączania oświetlenia dziennego/nocnego, rodzaju funkcji załączonej/wyłączonej w danym momencie. Np. włączenie/wyłączenie wentylatora w trybie auto lub ręka, spowoduje zapalenie/zgaszenie diod LED (zielonej/czerwonej) oraz pojawienie się, na chwilę w ostatniej linii LCD napisu „wentylator >>”.
Na LCD mogą w każdej chwili pojawić się informacje o zaistniałym alarmie, powodując zanik informacji o niższym priorytecie.
Oczywiście występowanie poszczególnych komunikatów na LCD oraz ich skutki zależeć będą od tego, czy aktywowaliśmy określone funkcje.
Podprogramy przerwań
Co 1 ms następuje wejście w podprogram obsługi przerwania od przepełnienia Timera 0. W przerwaniu tym obliczane są kolejne interwały, w których podejmowane są akcje opisane niżej.
- co 1 ms:
- obsługa funkcji karmienia (załączenie/wyłączenie wyjścia OUT4FD oraz odliczanie czasu karmienia określonego w ustawialnym parametrze CZAS DOZOWANIA
- co 50 ms:
- zapis informacji do ekspanderów PCF 8574 (sterowanie diodami LED),
- sterowanie diodą LED dla funkcji wentylatora (częstotliwość migania będzie uzależniona od zadanej prędkości wentylatora). Informacja przekazywana będzie do PCF 8574 w następnym cyklu przerwania – jak powyżej,
- sterowanie wyjściami LAMP i OUT1L (jeśli OUT1L=LAMPA) z uwzględnieniem opóźnienia dla HQI – wysokoprężnej metahalogenowej lampy łukowej, na podstawie stanu flag odpowiadających wyjściom. Upływający czas opóźnienia dla załączenia HQI na wspomnianych wyjściach sygnalizowany jest miganiem LED odpowiadającej wyjściu LAMP i/lub OUT1L (2 Hz). Stan OUT1L – Strefa III (w opcji I lub II, jeśli OUT1L=LAMPA i nie ma HQI) może być uzależniony od natężenia światła padającego na panel sterownika a zarazem akwarium (jedna z funkcji fototranzystora na panelu).
- co base_time ms – wartość parametru zależna od ustawialnego parametru CZAS ROZJAŚNIANIA/ŚCIEMNIANIA (czas świtu/zmierzchu):
- zmiana wartości zmiennej temp_duty_PWMA (kierunek zależny od operacji: rozjaśnianie czy ściemnianie). Zmiana jest wstrzymywana na czas odliczania opóźnienia dla załączenia HQI
- zmiana wartości zmiennej temp_duty_PWMB
- obliczenie poziomu natężenia oświetlenia duty_PWMB w zależności od temp_duty_PWMB, ustawialnego parametru MAX POZIOM NOCNEJ STREFY, OPCJI – FAZY KSIĘŻYCA.
- obliczenie poziomu natężenia oświetlenia duty_PWMA w zależności od temp_duty_PWMA, parametru MAX POZIOM STREFY I.
- co 500 ms:
- odczyt wartości natężenia oświetlenia zewnętrznego (poprzez ADC),
- odczyt wartości poziomu wody (poprzez ADC),
- wywołanie podprogramu obsługi wejść analogowych.
Co 1 s następuje wejście w podprogram obsługi przerwania wyzwalanego INT0 (od DS1307). Wykonuje się w nim:
- odczyt z DS1307 (data, czas), konwersja danych z BCD,
- odczyt z ADS1110 i obliczenie wartości pH (ADS1110 – wersja EDO5; adres 0x9A),
- cykl wentylatora,
- cykl pauzy dla karmienia,
- obliczenia dla funkcji oświetlenia,
- załączenie oświetlenia dziennego, wyłączenie nocnego,
- wyłączenie oświetlenia dziennego, załączenie na kilka sekund wentylatora (max obroty) – dla utrzymania jego sprawności,
- załączenie oświetlenia nocnego,
- wyłączenie oświetlenia nocnego, jeśli aktywna opcja: WYGAŚ OŚW. NOCNE O,
- załączenie karmienia,
- sterowanie timerem,
- odliczanie czasu dla opóźnienia HQI 2 i/lub HQI 3 (rozgrzane lampy nie powinny być włączane przed ostygnięciem),
- ustawianie/zerowanie flag dla wyjść LAMP i OUT1L z uwzględnieniem numeru opcji oświetlenia,
- określenie pory dnia (noc/dzień),
- odliczanie pauzy sygnału dźwiękowego alarmu,
- sterowanie funkcją napowietrzania z uwzględnieniem opcji „praca z grzałką”, „co jakiś czas przez jakiś czas”, „od godziny do godziny”,
- odczyt temperatury z DS18B20 (sprawdzenie poprawności transmisji za pomocą CRC),
- wywołanie podprogramów regulacji temperatury oraz regulacji pH
- ustawienie flag alarmowych pH – jeśli alarm
W podprogramie obsługi przerwania od przepełnienia Timera 1 wykonuje się:
- wpisanie duty_PWMA (aktualny poziom oświetlenia strefy I) do OCR1A,
- wpisanie duty_PWMB (aktualny poziom oświetlenia strefy nocnej) do OCR1B
W podprogramie obsługi przerwania od przepełnienia Timera 2 wykonuje się:
- wpisanie duty_PWM2 do OCR2 (aktualna prędkość wentylatora)
Podprogramy
W podprogramie obsługi wejść analogowych realizowane są następujące funkcje:
- ustawianie/zerowanie flagi sterującej OUT1L (jeśli OUT1L=LAMPA)
- sterowanie podświetleniem LCD (podświetlenie zielone – normalny tryb pracy, bursztynowe – tryb programowania lub stan alarmowy)
- monitoring poziomu wody i sterowanie dopełnianiem
W podprogramie regulacji temperatury (co 1 s) odbywa się sterowanie grzałką, oświetleniem – wyłącznie w wypadku przekroczenia ustawialnego progu odchyłki, wentylatorem i chłodnicą.
W trybie pracy automatycznej i ręcznej wentylator startuje na maksymalnych obrotach, po chwili spadają one do ustawianego przez użytkownika minimum, po czym, jeśli temperatura nie spada, zwiększają się systematycznie w ustawianych odstępach czasu, aż do ustawianego maksimum. W sytuacji, gdy wentylator pracuje razem z chłodnicą, po osiągnięciu przez niego ustawionych obrotów maksymalnych, jeśli nie spada temperatura i po ustawionym czasie, następuje załączenie chłodnicy. Spadek temperatury powoduje zatrzymanie przyrostu obrotów wentylatora.