Serwisy partnerskie:
Close icon
Serwisy partnerskie

Infinity: System automatyki domowej - moduł sterowania oświetleniem (schematy i montaż)

kit
W poprzednich numerach zostały opisane dwa moduły pełniące funkcję procesorów komunikacyjnych. Pierwszy z nich, opisany w numerze z czerwca 2019, jest procesorem komunikacyjnym umożliwiającym transmisję pomiędzy serwerem www a grupą urządzeń przyłączonych do magistrali RS485.
Article Image

Jego głównym zadaniem jest zarządzanie komunikacją w obrębie magistrali RS485. Podczas konfiguracji tego modułu zostały zapisane w jego pamięci nieulotnej identyfikatory urządzeń realizujących aktywny dostęp do wspólnej magistrali RS485. Jednym z tych urządzeń jest moduł o identyfikatorze PWC002, który jest przewidziany do zarządzania oświetleniem.

Inny procesor komunikacyjny, opisany w poprzednim numerze, jest narzędziem do konfiguracji modułów, przyłączanych do wspólnej magistrali komunikacyjnej. Wystarczy dokonać odpowiednich zapisów do pamięci nieulotnej modułu i tak przygotowany kolejny element systemu automatyki zainstalować w miejscu docelowym.

Rys.1 Infinity -moduł sterowania oświetleniem (schemat)

W tym numerze zostanie opisany moduł o identyfikatorze PWC002, przeznaczony do sterowania oświetleniem (włącza klasyczną lub energooszczędną żarówkę). W wyniku odebrania z magistrali RS485 właściwego polecenia (generowanego przez serwer www) włączy/wyłączy oświetlenie w pomieszczeniu kotłowni. Oprócz sterowania modułu poprzez przesłanie odpowiedniego polecenia przez magistralę komunikacyjną, istnieje też możliwość lokalnego sterowania. Ideę najlepiej wyjaśni rysunek 1.

Jednostka centralna modułu bazuje na mikrokontrolerze ATmega88. Jest on taktowany sygnałem z rezonatora kwarcowego (X101). Częstotliwość jest tak dobrana, by uzyskać każdą standardową prędkość transmisji szeregowej. Drugim istotnym elementem jest obwód generujący sygnał reset dla mikrokontrolera (R101, C101 SW101). Przycisk pozwala zawsze „wrócić” na właściwe tory w przypadku pomyłki. Z sygnałem reset związane jest jeszcze złącze do zaprogramowania pamięci FLASH mikrokontrolera.

Z racji dużej „kompresji” narzuconej wymiarami obudowy, złącze do programowania jest również „minimalizowane”. Zawiera ono wszystkie niezbędne sygnały do zaprogramowania pamięci, jednak nie jest rozwiązaniem standardowym. Przeniesienie kodu programu do pamięci FLASH mikrokontrolera wymaga zastosowania niewielkiej przejściówki dopasowującej standardowe złącze programatora do „prywatnego” rozwiązania zastosowanego w tym module.

Kanał transmisji szeregowej to interfejs RS485 z kostką SN75176 (U102). Do sterowania kierunkiem transmisji wykorzystany jest jeden z pinów mikrokontrolera. Podobną funkcję pełni rezystor R103 – wymusza właściwy stan pasywny na linii odbieranych danych szeregowych (z punktu widzenia mikrokontrolera). Warto pamiętać, że przy normalnej pracy modułu na tej linii może wystąpić stan wysokiej impedancji, co daje nieokreślony stan logiczny. Zastosowany rezystor nie pozwala „zbłądzić” i w wybranych momentach utrzymuje stabilny stan logiczny na linii odbieranych danych.

Rys.2 Infinity - moduł sterowania oświetleniem (schemat)

Oprócz obwodów sterowania lampkami statusowymi (LED od D103 do D106, R105 do R108), występuje tu transoptor U103 oraz tranzystor Q101 wraz z niezbędnymi rezystorami do sterowania optotriakiem (Q201, rysunek 2). Ten transoptor jest kluczowym elementem do lokalnego sterowania modułu. Jego wyprowadzenie (etykieta KEYM, rysunek 1) jest poprzez złącze P203 (rysunek 2) wyprowadzone na zewnątrz modułu. Zwarcie tego sygnału do masy powoduje przepływ prądu od szyny VCC przez rezystor R109 i diodę LED w transoptorze (tu jest zastosowany typowy przycisk monostabilny, dzwonkowy) i na wyjściu transoptora pojawia się stan logicznego zera.

Po zwolnieniu przycisku sterującego na wyjściu transoptora pojawia się stan logicznej jedynki. Zastosowanie transoptora znacząco podnosi poziom odporności na zakłócenia, z którymi należy się liczyć, gdyż przewód łączący moduł z przyciskiem zainstalowanym w ścianie może mieć znaczną długość oraz nie bez znaczenia jest środowisko pełne różnych szkodliwych pól zakłócających. Ponadto został zaplanowany dodatkowy przycisk P102 (przyłączony jako PD7), jednak nie jest używany (jest na schemacie, jest na płytce PCB).

Do włączania optotriaka (sygnał PWR, rysunek 1) jest wykorzystany tranzystor Q101. Jego rolą jest dostarczenie do optotriaka prądu wystarczającego do jego wysterowania. Po sygnale reset wyprowadzenia mikrokontrolera są zdefiniowane jako wejścia. Oznacza to, że mikrokontroler nie wymusza żadnego stanu logicznego na swoich wyprowadzeniach.

Stąd w tym nieokreślonym stanie przejściowym istotną funkcję pełni rezystor R111 (rysunek 1), który wymusza stan pasywny tranzystora Q101. By włączyć oświetlenie, czyli wysterować diodę LED w optotriaku, konieczne jest podanie na bazę tranzystora (poprzez rezystor R110) stanu logicznego zera. Takie rozwiązanie sprzętowe gwarantuje stabilność w początkowej fazie włączania, zanim oprogramowanie mikrokontrolera zadba o wszystkie szczegóły.

Rys.3 Moduł sterowania oświetleniem - zasilanie

Napięcie zasilające dochodzi do stabilizatora wytwarzającego napięcie przewidziane do zasilania mikrokontrolera. Jego schemat pokazuje rysunek 3. Jest to typowe, zalecane przez producenta, rozwiązanie przetwornicy obniżającej napięcie. Elementy są tak dobrane, by na wyjściu było wymagane napięcie zasilające, określone wartościami rezystancji oporników R302 i R303. Wyjście stabilizatora napięcia jest odłączane od całego układu za pomocą zworki P301.

Takie rozwiązanie pozwala ewentualnie ochronić cały moduł w początkowej fazie uruchomieniowej (na wypadek, gdyby w wyniku jakiejkolwiek pomyłki montażowej lub niedokładności montażu, stabilizator wytworzył niewłaściwe napięcie zasilające). Nie jest trudno wyobrazić sobie, że napięcie +12VDC jest w stanie „zabić” mikrokontroler.

Fot.1 Płytka główna - moduł sterowania oświetleniem

Montaż i uruchomienie - moduł sterowania oświetleniem

Opracowane do powyższego schematu płytki drukowane pokazują rysunki 4 i 5. Płytkę główną widać na fotografii 1. Rysunek 2 to, poza diodą D201 zabezpieczającą moduł przed niewłaściwą polaryzacją napięcia zasilającego oraz optotria ka mocy Q201, same złącza pomiędzy poszczególnymi płytkami. Konstrukcja została pomyślana jako zespół trzech płytek (rysunki 4, 5). Złącze P203 jest łącznikiem do świata zewnętrznego modułu. Odpowiednie jego styki doprowadzają do modułu napięcie zasilające, pozwalają przyłączyć się do magistrali RS485 oraz umożliwiają przyłączenie lokalnego przycisku sterującego.

Rys.4 Infinity - moduł sterowania oświetleniem (płytka drukowana)

Montaż urządzenia nie powinien sprawiać problemów. Pomimo że większość elementów jest przewidziana do montażu powierzchniowego, gęstość rastra wyprowadzeń układów scalonych nie powinna być wielkim wyzwaniem nawet dla osób mniej zaawansowanych. Warto pamiętać, że staranność prac na tym etapie owocuje mniejszymi problemami w fazie uruchomienia.

Rys.5 Infinity - moduł sterowania oświetleniem (płytka drukowana)

Przed pierwszym włączeniem zasilania dla modułu należy zdjąć zworkę P301 (klasyczny jumperek). Moduł jest przewidziany do zasilania ze źródła napięcia o wartości +12VDC. Po przyłączeniu do modułu zasilania należy sprawdzić napięcie na wyjściu stabilizatora. Nominalna jego wartość wynosi około +5VDC. Poprawne napięcie na wyjściu stabilizatora oznacza, że można założyć zworkę na piny P301. W przeciwnym wypadku koniecznością stanie się korekta montażu elementów stabilizatora napięcia.

Fot.2 Moduł sterowania oświetleniem - przyłączanie programatora do układu

Kolejnym krokiem przy uruchamianiu modułu jest jego konfiguracja, właściwe ustawienie FUSE. Modyfikację ustawień FUSE wykonuje się, przyłączając programator do układu (fotografia 2). Wystąpienie kłopotów z odczytem bieżących ustawień oznacza brak kontaktu elektrycznego pomiędzy programatorem a mikrokontrolerem. W sytuacji, gdy programator „zobaczy” procesor modułu, możliwe stanie się zaprogramowanie jego ustawień.

W przypadku mikrokontrolera ATMEGA 88 są to:

  • CKDIV8 – bit konfiguracyjny nakazujący dzielić częstotliwość sygnału zegarowego przez 8, należy tę opcję wyłączyć (fabrycznie nowy mikrokontroler ma tę opcję włączoną),
  • wybrać wariant sygnału zegarowego (SUT_CKSEL) jako zewnętrzny rezonator kwarcowy z częstotliwością w przedziale 3...8MHz,
  • przydatne jest zaznaczenie opcji EESAVE (kasowanie pamięci FLASH niezbędne przy każdym zaprogramowaniu mikrokontrolera nie będzie jednocześnie powiązane z kasowaniem pamięci EEPROM, w której są przechowywane dane konfiguracyjne).

Wykorzystując do tworzenia oprogramowania bezpłatny pakiet narzędziowy AVR STUDIO 4, otrzymamy oczekiwany zestaw konfiguracji FUSE z rysunku 6. Pierwsze uruchomienie po załadowaniu programu do wewnętrznej pamięci FLASH mikrokontrolera spowoduje zapis do pamięci konfiguracyjnej EEPROM domyślnych ustawień.

Rys.6 Infinity - moduł sterowania oświetleniem (zestaw konfiguracji FUSE)

Blok danych konfiguracyjnych przechowywany w pamięci nieulotnej jest opatrzony 16-bitową sumą kontrolną CRC. Pozwala ona na wykrywanie „uszkodzeń” w bloku konfiguracyjnym, a takim przypadkiem jest pierwsze uruchomienie modułu. Fabrycznie nowy mikrokontroler w całym obszarze pamięci EEPROM ma zapisane dane FF hex.

Po odczycie tych danych suma CRC nie będzie zgodna, toteż w takiej sytuacji do tej pamięci zapisywane są domyślne (dla danego modułu) wartości z poprawnie obliczoną już sumą CRC. Strukturę tego bloku pokazuje listing 1 (uwaga: wszystkie listingi dostęne są w materiałach pomocniczych w Elportalu). Znajdują się tam między innymi następujące informacje:

  • MyDeviceID – własny identyfikator sterownika jako ciąg składający się maksymalnie z 8 znaków, domyślnie jest PWC2,
  • Password – hasło wymagane przy aktywnej konfiguracji parametrów sterownika składające się maksymalnie z 6 znaków, domyślnie jest MAGIC,
  • EventDestinDeviceID [ EventDestin- DeviceArraySize ] – zbiór identyfikatorów innych modułów/urządzeń, które należy powiadomić o zmianie statusu obciążenia (każde włączenie/ wyłączenie oświetlenia generuje operację powiadomienia wszystkich „zainteresowanych” o nowym stanie własnym), jest to tablica mieszcząca 4 identyfikatory, z których każdy składa się z maksymalnie 8 znaków,
  • StandardKeySerrvice – polecenie, jakie wykona moduł w sytuacji wykrycia standardowego naciśnięcia przycisku, zawiera tekst polecenia wraz z ewentualnym parametrem liczbowym, domyślnie jest to polecenie zmiany stanu na przeciwny (jak oświetlenie było wyłączone, to zostanie włączone oraz jak było włączone, to zostanie wyłączone),
  • LongKeySerrvice – polecenie, jakie wykona moduł w sytuacji wykrycia naciśnięcia przycisku z przytrzymaniem, zawiera tekst polecenia wraz z ewentualnym parametrem liczbowym, domyślnie jest to polecenie wyłączenia (bez względu na aktualny stan, po takim naciśnięciu oświetlenie będzie wyłączone).

Moduł obsługuje jednoprzyciskową klawiaturę jako zewnętrzny monostabilny przycisk przyłączany do styków 1 i 2 złącza P203 (rysunek 2). Pomimo że w układzie występuje jeden przycisk, istnieje możliwość przyporządkowania mu dwóch różnych funkcji. Rozróżniane jest to czasem trzymania styków w stanie zwarcia. Użytkownik może nacisnąć przycisk w sposób tradycyjny, machinalny.

Takie użycie jest interpretowane przez moduł jako standardowe. Inną możliwością jest świadome naciśnięcie i przytrzymanie w tym stanie przez czas minimum 2 sekund. Takie użycie jest interpretowane przez moduł jako naciśnięcie z przytrzymaniem. Oprogramowanie oferuje możliwość przyporządkowania w obu tych wariantach różnych poleceń, wymaga to modyfikacji parametrów konfiguracyjnych zapisanych w pamięci nieulotnej. Możliwe warianty są opisane w tabeli rozpoznawanych poleceń.

Realizowany algorytm w ogólnej idei nie odbiega od rozwiązań stosowanych w procesorze komunikacyjnym. Podstawowa różnica w rozwiązaniach dotyczy faktu, że procesor komunikacyjny pełni funkcję MASTER i obsługuje dwa kanały transmisji szeregowej: jeden z interfejsem RS232 do połączenia z serwerem www, drugi z interfejsem RS485 do prowadzenia dialogu z innymi komponentami przyłączonymi do wspólnej magistrali komunikacyjnej.

W przypadku modułu zarządzającego oświetleniem pełni on funkcję SLAVE i obsługuje jedynie kanał z interfejsem RS485. Funkcja SLAVE oznacza, że moduł musi otrzymać zgodę na aktywny dostęp do magistrali komunikacyjnej. Bez takiej zgody nie może on nic zrobić, nie wyśle żadnych danych poprzez interfejs szeregowy. Czasem może to rodzić pewne problemy, gdyż jak łatwo się domyślić, awaria procesora komunikacyjnego powoduje zatrzymanie całego systemu.

Dotychczas takie zdarzenie u mnie nie zaistniało, minął już rok, jak system jest w ciągłej eksploatacji. Funkcjonalność SLAVE sprowadza się do tego, że generujące się w trakcie pracy informacje są gromadzone i w określonym momencie są wysyłane przez interfejs szeregowy. W identyczny sposób (w stosunku do procesora komunikacyjnego) rozwiązane jest kompletowanie, rozpoznanie i realizacja polecenia otrzymanego drogą szeregową (listing 2).

Również w identyczny sposób obowiązują reguły identyfikacji modułu (listing 3). Część polecenia przeznaczona na adresata jest porównywana z identyfikatorem zapisanym w pamięci nieulotnej. Jeżeli identyfikatory są zgodne, to dochodzi do realizacji polecenia. W przeciwnym wypadku sprawdzane jest, czy został użyty identyfikator rozgłoszeniowy (GENERAL), gdzie również polecenie zostanie zaakceptowane, o ile wystąpi zgodność.

W przypadku, gdy odebrane polecenie nie jest adresowane do modułu, jest ono ignorowane (moduł nie realizuje żadnych dodatkowych funkcji związanych z przekierowaniem danych, jak ma to miejsce w przypadku procesora komunikacyjnego).

Dekodowanie polecenia odbywa się w oparciu o identyczny algorytm (zbudowana jest tablica wiążąca identyfikatory rozpoznawanych poleceń z funkcjami odpowiedzialnymi za ich wykonanie, listing 4). Nawet wykrycie naciśnięcia lokalnego przycisku jest realizowane zgodnie „z sieciową filozofią”, pokazuje to listing 5. Można tam dostrzec, że w zależności od kodu funkcji związanej z naciśnięciem przycisku symulowane jest odebranie z sieci RS485 odpowiedniego polecenia (które w rzeczywistości jest zapisane w pamięci nieulotnej) i przejście do typowej akcji związanej z realizacją odebranego polecenia.

Moduł zarządzający oświetleniem rozpoznaje polecenia przedstawione i opisane w tabeli 1 (dostępna w Elportalu).

Fot.3 Konfiguracja i sprawdzenie działania modułu oświetlenia w warunkach laboratoryjnych 

Konfiguracja i sprawdzenie działania w warunkach laboratoryjnych (fotografia 3). Tu warto zauważyć, że po każdym poleceniu wysłanym do modułu występuje w parze polecenie REPLY, które jest wyrażeniem zgody na aktywny dostęp do magistrali komunikacyjnej. Opis danych wysyłanych i odbieranych przedstawiony jest w tabeli 2 (dostępna w Elportalu).

W następnej części zostanie opisany kolejny moduł sterujący. Znalazł on zastosowanie jako element sterowania wentylatorem oraz pompą wymuszającą cyrkulację wody w instalacji centralnego ogrzewania. Ten sam moduł, ze sprzętowego punktu widzenia, mając odmienne oprogramowanie, pełni inne funkcje w systemie. Nie jest to jedyny przypadek, gdzie jedno rozwiązanie sprzętowe pełni różnorodne funkcje w całości systemu automatyki, o czym jeszcze będę pisał.

Wykaz elementów
R101...R103,R111,R112
10kΩ (0805)
R104,R109,R113
330Ω (0805)
R105...R108
390Ω (0805)
R110
2,2kΩ (0805)
R301
0,33Ω (1206)
R302
1kΩ (0805)
R303
3kΩ (0805)
C101
1uF (0805)
C102,C103
15pF (0805)
CB101A,CB101B,CB102,C104,C301,C304
100nF (0805)
C201
100μF (elektrolityczny, przewlekany)
C302
470pF (0805)
C303
1000μF (elektrolityczny, przewlekany, niskoimpedancyjny)
L301
220μH (dławik ekranowany)
P101
złącze przewlekane typu JS1125, 5 pin
P102
GOLDPIN jednorzędowy, 2 pin
P201,P202
GOLDPIN jednorzędowy, kątowy, 8 pin
P203
złącze typu Micro Fit 6 pin, przewlekane, kątowe
P301
GOLDPIN jednorzędowy, 2 pin + jumperek
SW101
mikroprzycisk
P103,P104
GOLDPIN dwurzędowy, przewlekany 3×2 pin + złączki na przewód płaski
P204
terminal dwuzaciskowy
X101
7,3728MHz
U101
ATMEGA88 (TQFP44)
U102
SN75176 (SO8)
U103
LTV356
U301
MC34063ACD (SO8)
D101
LL4148 (minimelf)
D201,D301
SS14 (DO214)
Q201
S202T02
D102
dioda LED zielona, przewlekana, 3mm
D103,D105,D106
dioda LED żółta, przewlekana, 3mm
D104
dioda LED czerwona, przewlekana, 3mm
Q101
BC857 (SOT23)
Do pobrania
Download icon Infinity: System automatyki domowej - moduł sterowania oświetleniem (schematy i montaż)
Tematyka materiału: standard RS485, serwer www, ATmega88
AUTOR
Źródło
Elektronika dla Wszystkich sierpień 2019
Udostępnij
UK Logo