Sterownik czasowy

Cele

Celem urządzenia będzie włączenie a następnie wyłączenie dwóch odbiorników energii elektrycznej o wyznaczonym czasie. Konfiguracja urządzenia będzie odbywać się za pomocą trzech przycisków (góra, zatwierdź, dół). Informacje o stanie urządzenia oraz opcje menu wyświetlane będą na ekranie 16×1 znaków.

Koncepcja rozwiązania

Urządzenie wykorzystując mikrokontroler PIC16F87 steruje dwoma przekaźnikami odpowiedzialnymi za doświetlanie i podawanie karmy o wyznaczonych godzinach. Czas rzeczywisty pobierany jest z układu DS1307 w którego pamięci nieulotnej przechowywane są ustawienia. Informacje wyświetlane są na ekranie modułu USART-LCD. Sterowanie odbywa się za pomocą trzech przycisków typu reset.

Konstrukcja urządzenia

Sterownik zasilany jest z sieci elektrycznej, napięcie 230V przekształcane jest na 5V przez transformator. Napięcie po wyprostowaniu przez mostek graetza (D3) i przejściu przez stabilizator LM7805CT (U3) doprowadzone jest do układów scalonych (IC1,U1) na płycie głównej urządzenia. Kondensatory (C3,C5) pełnią funkcję filtrującą. Ich wartość przyjmuje się minimum 220uF na każdy amper pobieranego prądu. Napięcie 5V dostępne jest na gnieździe (J3) oraz portach umożliwiających podłączenie zewnętrznych układów z transmisją danych I2C (J1), USART (J2).

sterownik czasowy

Rys. 1 Płyta główna sterownika czasowego

Głównym podzespołem jest mikrokontroler PIC16F87, który steruje pracą urządzenia. Typ mikrokontrolera wybrany został z uwagi na wystarczającą liczbę portów wejścia/wyjścia , dostępność wymaganych w założeniach portów komunikacyjnych, zadowalającą pojemność pamięci (SRAM 368 bytes, EEPROM 256 bytes, FLASH 7168 bytes) . Zastosowano układ w obudowie 18PIN PDIP (Rys. 2). Mikrokontroler wyposażony jest w port I2C (nóżki 7 SDA, 10 SCL) oraz USART (nóżki 11 TX, 8 RX).

Rys. 2 Wyprowadzenia mikrokontrolera PIC16F87

Układ taktowany jest zewnętrznym oscylatorem kwarcowym o częstotliwości 4 MHz (maksymalnie 20MHz) (nóżki 16 i 15), który można pominąć wykorzystując wbudowany oscylator mogący pracować z częstotliwością (31 kHz, 125 kHz, 250 kHz, 500 kHz, 1 MHz, 2 MHz, 4 MHz, 8 MHz ).

Przyciski sterujące (gniazdo J5) zostały podłączone do portu RA mikrokontrolera (wykorzystano nóżki 1, 2, 3). Rezystory (R6, R7, R8) pełnią funkcję pomocniczą, mającą na celu ustabilizowanie stanu logicznego. Pozostałe trzy piny (gniazdo J5) mogą zostać użyte do podłączenia dodatkowych przycisków sterujących lub obsługi dodatkowych układów zewnętrznych.

Komunikacja dźwiękowa jest możliwa za pomocą głośnika z wbudowanym generatorem, sterowanym przez tranzystor (Q3) podłączony do mikrokontrolera (nóżka 9).

Sterowanie przekaźnikami odbywa się poprzez tranzystory (Q1, Q2) których bramy są podłączone przez rezystory (R5, R4) do mikrokontrolera (nóżki: 12,13). Tranzystory zabezpieczono diodami (D1, D2) przed przepięciami występującymi przy impulsach napięcia podawanych na cewki przekaźników. Zastosowanie przekaźników umożliwia sterowanie urządzeniami pracującymi przy wysokim napięciu i mocy np. lampy, elektrozawory, podajniki.

Rys. 3 Zegar czasu rzeczywistego DS1307

Zadaniem mikrokontrolera PIC16F87 jest sterowanie przekaźnikami i uruchamianie urządzeń o wyznaczonym czasie. Jako zegar czasu rzeczywistego został użyty układ scalony DS1307 (Rys.3). Komunikacja między nim a mikrokontrolerem przebiega po magistrali I2C. Pracę zegara nawet po wyłączeniu zasilania zapewnia bateria o napięciu 3V podłączona do układu (nóżka 3 plus, 4 GND). Układ scalony sam monitoruje zanik napięcia i przełącza się na zasilanie awaryjne z baterii. DS1307 posiada pamięć nieulotną w której zapisywane są ustawienia pracy urządzenia np. czas wyłączenia i włączenia przekaźników. Do poprawnej pracy zegara niezbędny jest zewnętrzny rezonator kwarcowy o częstotliwości 32,768 kHz (nóżka 1, 2).

sterownik czasowy

Rys. 4 Działający sterownik czasowy