Schemat ideowy symulatora pokazano na rysunku 1. Działaniem urządzenia steruje program zaszyty w pamięci mikrokontrolera, podstawową funkcją, którą realizuje, jest odmierzanie czasu. Przy każdym uruchomieniu aktualna wartość czasu jest odczytywana z układu RTC (PCF8583), który ma zasilanie podtrzymywane przez baterię i odmierza czas nawet, gdy urządzenie jest wyłączone.
Potem mikrokontroler sam zajmuje się odmierzaniem czasu. Wykorzystuje do tego celu moduł licznika Timer2. Ten licznik pracuje asynchronicznie, jest taktowany sygnałem zegarowym 32678 Hz "pożyczonym" z układu RTC i generuje przerwania co 1 s.
Każde przerwanie zwiększa stan zmiennej przechowującej wartość czasu (uint32_t) time.digital, a następnie porównuje ją z zaprogramowanymi czasami załączenia 32 czynności. Jeśli trafi na pasującą wartość, to odczytuje pozostałe parametry danej czynności i realizuje ją.
Regulacja intensywności oświetlenia jest realizowana poprzez zmianę mocy źródła światła za pomocą PWM. Generator PWM został zrealizowany na module czasowym Timer1. Jest to licznik 16-bitowy, ale stan maksymalny został ograniczony do 1000 i taka jest rozdzielczość układu. Modulacja PWM jest wykonywana sprzętowo, program tylko umieszcza kolejne wartości współczynnika wypełnienia w rejestrach OCR1A i OCR1B. Wyjścia generatora połączone są z tranzystorami MOSFET pracującymi w konfiguracji otwartego drenu i wyprowadzone na złącza OUT1 i OUT2.
Powolne zwiększanie i zmniejszanie mocy oświetlenia zostało zrealizowane za pomocą ostatniego układu czasowo-licznikowego wbudowanego w strukturę ATmegi8 - Timera0. Jest on tak skonfigurowany, że każde przepełnienie licznika zwiększa zmienną exe.tick.
Wykonywanie pętli głównej programu jest synchronizowane stanem tej zmiennej. Osiągnięcie wartości 3 odpowiada interwałowi czasu 0,1 s i powoduje zmniejszenie wartości liczników opóźnienia dimm.counter[], i zmiany współczynników wypełnienia na wyjściach.
Obsługa
Interfejs urządzenia realizuje wyświetlacz LCD 2×16 i klawiatura z czterem przyciskami. Po uruchomieniu urządzenia przedstawi się ono jako Dimm-ek, a następnie wyświetli okno główne. Wygląd okna oraz znaczenie wszystkich jego elementów pokazano na rysunku 2.
Wszystkie ustawienia i parametry pracy uporządkowane są w przejrzystym menu. Jego strukturę zaprezentowano na rysunku 3. W miejscach przerywanych strzałek znajdują się okna edycji parametrów, analogicznie jak dla funkcji zegara. Do poruszania się po menu służą cztery przyciski. Ich funkcje są następujące:
ESC - wyjście z danej funkcji.
OK - wybranie funkcji, potwierdzenie zmian.
± - poruszanie się po menu, zmiana funkcji, zmiana wartości parametru.
Pierwszą funkcją widoczną po wejściu do menu jest Ustaw zegar. W oknie jest pokazany aktualny czas, po naciśnięciu OK pojawi się kursor "^^" umieszczony pod wartością godzin. Wskazuje on, która wartość może zostać zmieniona. Kursor można przesunąć naciskając "+" lub "-", lub można rozpocząć edycję wartości naciskając OK. Wtedy kursor zmieni się na "[ ]".
W tym momencie przyciskanie "+" lub "-" powoduje zmianę odpowiedniej wartości. Przytrzymanie przycisku uruchamia funkcje automatycznego powtarzania służącą do szybkiej zmiany wartości. Edycję można zakończyć naciskając OK, a następnie ESC, aby wyjść z danej funkcji. Taki schemat edycji wartości parametrów obowiązuje w całym menu.
Kolejną funkcją menu jest Uruchom program. Pozwala ona na natychmiastowe uruchomienie jednej z zaprogramowanych czynności z pominięciem godziny, na którą została ona ustawiona. Numer programu jest wybierany po naciśnięciu OK, itd.
Ostatnią funkcją jest Ustaw program. Na rysunku 2 jest pokazana tylko wartość 1, w rzeczywistości są tu 32 okna odpowiadające wszystkim programom. Każdy program ma cztery parametry:
Czas rozpocz, czyli wartość czasu zegara, przy której program ma być uruchomiona zaprogramowana czynność. W wypadku, gdy dany program nie został skonfigurowany lub ma być wyłączony, należy ustawić wartość "24:00:00", która będzie wyświetlana jako "-- :--:--".
Drugi parametr to Czas opóźnienia, który określa jak długa ma być przerwa czasowa pomiędzy kolejnymi poziomami mocy wyjściowej. Poziomów jest 1000, więc dla pełnego cyklu - od zera do pełnej mocy - czas trwania, to czas opóźnienia pomnożony przez 1000. Parametr ten może przyjąć wartości z zakresu 0,1...20, co daje czas pełnego rozjaśniania lub wygaszania w zakresie od 100 s do ok. 5,5 godziny.
Trzeci parametr to Poziom końcowy określający poziom mocy, do jakiego dany program będzie dążył. Nie musi to być 0% lub 100%, można ustawić wartości pośrednie tworząc w ten sposób bardziej złożone schematy oświetlenia. Zakres wartości wynosi od 0 do 1000, co odpowiada od 0% do 100%.
Ostatni parametr to Wyjście numer. Określa on, którym wyjściem ma sterować dany program. Do wyboru jest wyjście 1 lub 2. Można ustawić wartość 0 w wypadku, gdy dana czynność ma być wyłączona, a jednocześnie nie chcemy zmieniać ustawienia czasu dla niej.
Po 20-sekundowym czasie bezczynności, kiedy nie był wciśnięty żaden przycisk, urządzenie automatycznie wychodzi z ustawień do głównego okna menu i wyłącza podświetlenie wyświetlacza w celu zaoszczędzenia energii.
Jedna funkcja znajduje się poza menu - jest to kasowanie ustawień wszystkich programów. Aby ją uruchomić, należy odłączyć zasilanie, wcisnąć i trzymać przycisk ESC, włączyć zasilanie i czekać aż do momentu ukazania się komunikatu Pamięć czysta (ok. 4 sekundy).
Urządzenie ma dwa wejścia: IN1 i IN2. Służą one do uruchomienia zaprogramowanych czynności, odpowiednio 1 i 2. Działają tak, jak funkcja Uruchom program, ale są wyzwalane za pomocą sygnału zewnętrznego. Poziomem aktywnym jest zbocze opadające - impuls przy zwarciu do masy, można tam dołączyć przycisk, przekaźnik, inny sterownik itp. Można też dołączyć czujnik zmierzchowy i zsynchronizować sztuczne oświetlenie z oświetleniem naturalnym uzyskując zmienne pory załączenia w zależności od pory roku itd.
Wykaz elementówRezystory: Kondensatory: Półprzewodniki: Inne: |
Montaż i uruchomienie
Na rysunku 4 pokazano schemat montażowy symulatora. Montaż wykonujemy zgodnie z ogólnymi zasadami. Wyświetlacz i przyciski montujemy na końcu i po stronie lutowania - bottom. Wyświetlacz zasłoni wtedy znaczną część płytki, dlatego zanim zostanie zamontowany, należy płytkę umyć i trzy razy sprawdzić poprawność montażu, ponieważ w razie problemów jego wymontowanie będzie bardzo trudne.
Po podłączeniu zasilania należy wyregulować kontrast wyświetlacza i po tym zabiegu urządzenie jest gotowe do pracy. Warto zastosować dedykowany panel frontowy, który w estetyczny i łatwy sposób pozwoli umieścić płytkę w obudowie KM50. Należy też pamiętać, że zasilanie urządzenia i oświetlenia jest wspólne, dlatego trzeba zapewnić jego odpowiednie parametry, zwłaszcza prądowe.
KS