- zakres regulowanej temperatury: 10…50°C,
- zakres regulacji histerezy: 0,5…9,5°C,
- dokładność pomiaru: 0,5°C maksymalny obciążenie styków przekaźnika: 20 A (16 VDC),
- maksymalne napięcie styków przekaźnika: 60 VDC,
- napięcie zasilania: 9…12 V,
- pobór prądu 15 mA/65 mA (przekaźnik wyłączony/załączony).
Sterownik może pracować w trybie ogrzewania (sterowanie grzałką itp.) lub schładzania (sterowanie wentylatorem itp.) oraz daje możliwość zdefiniowania histerezy regulacji. Dodatkowym uatrakcyjnieniem, jest niewielki acz bardzo efektowny graficzny wyświetlacz OLED, dzięki któremu możliwe było zaprojektowanie spójnego i czytelnego interfejsu użytkownika. Co więcej, dysponując już tego rodzaju ciekawym elementem wprowadziłem do procedur obsługi termostatu efekt animacji przypominający swoim działaniem pracę starych liczników mechanicznych, gdzie zmianie znaku towarzyszyło przesunięcie się jednego znaku w górę i „wskoczenie” na jego miejsce znaku kolejnego (w przypadku liczników były to oczywiście cyfry). Oczywiście możecie powiedzieć, że stosowanie wyświetlacza OLED mija się z sensem w przypadku tak prostego urządzenia, jednak trzeba wziąć pod uwagę, że tego typu niewielkie peryferium możemy już kupić za kilkanaście złotych co czyni zeń bardzo atrakcyjny element użytkowy.
Budowa
Schematu ideowy urządzenia, pokazano na rysunku 1. Zaprojektowano bardzo prosty system mikroprocesorowy, którego „sercem” jest niewielki mikrokontroler produkcji firmy Microchip (dawniej Atmel) o oznaczeniu ATtiny84, odpowiedzialny za realizację całej, założonej funkcjonalności urządzenia. Taktowany jest wewnętrznym, wysokostabilnym generatorem RC o częstotliwości 8 MHz.
Głównym zadaniem mikrokontrolera jest realizacja magistrali 1-Wire, poprzez którą komunikuje się ze scalonym termometrem cyfrowym typu DS18S20 produkcji firmy Maxim (dawniej Dallas). Jest także odpowiedzialny za sterowanie pracą wspomnianego wcześniej wyświetlacza graficznego OLED, dzięki realizacji programowej obsługi interfejsu SPI, w jaki wyposażono rzeczony moduł. Ostatnim zadaniem jest obsługa prostej klawiatury stanowiącej element interfejsu użytkownika, przy czym obsługa ta realizowana przy użyciu układu czasowo-licznikowego Timer0 wbudowanego w strukturę mikrokontrolera co zapewnia po pierwsze, implementację prostego mechanizmu eliminującego drgania styków klawiatury, zaś po drugie, obsługę krótkiego i długiego naciśnięcia wspomnianych przycisków. Ostatnia właściwość ma zastosowanie w systemie Menu urządzenia.
Wybór tego konkretnego typu mikrokontrolera nie był krytyczny. Wybrany został układ o minimalnej, wymaganej liczbie portów wejścia/wyjścia oraz niezbędnej wielkości pamięci Flash, która to wynikała głównie z konieczności implementacji wzorców czcionek użytych w graficznym interfejsie użytkownika.
Obsługa
Sterownik obsługiwany jest przy użyciu dwóch przycisków umownie nazwanych PLUS i MINUS. Ich krótkie naciskanie powoduje zmianę wartości temperatury ustawionej z krokiem 0,5°C w dopuszczalnym zakresie 10...50°C.
Długie naciśnięcie przycisku PLUS wprowadza sterownik w tryb regulacji wartości histerezy regulacji, której bieżąca wartość pokazywana jest wtedy na ekranie urządzenia. W tym trybie krótkie naciskanie przycisków PLUS i MINUS powoduje zmianę wartości histerezy regulacji z krokiem 0,5°C w dopuszczalnym zakresie 0,5...9,5°C, zaś długie powoduje wyjście z trybu regulacji histerezy (z zapamiętaniem jej wartości w nieulotnej pamięci EEPROM mikrokontrolera) oraz przejście do pracy normalnej, czyli regulacji temperatury ustawionej.
Z kolei długie naciśnięcie przycisku MINUS wprowadza sterownik w tryb wyboru funkcji pełnionej przez automatykę regulacji tj. faktu, czy automatyka regulacji pracuje w trybie ogrzewania (sterowanie grzałką itp.) lub schładzania (sterowanie wentylatorem itp.). Regulację wspomnianej funkcji dokonujemy poprzez krótkie naciskanie przycisków PLUS i MINUS co sygnalizowane jest zapaleniem odpowiedniej ikonki w ramach graficznego interfejsu użytkownika (strzałka w górę dla trybu ogrzewania lub strzałka w dół w przypadku trybu schładzania). Ponowne, długie naciśnięcie przycisku MINUS powoduje wyjście z trybu regulacji funkcji pełnionej przez automatykę regulacji (z zapamiętaniem jej wartości w nieulotnej pamięci EEPROM mikrokontrolera) oraz przejście do pracy normalnej, czyli regulacji temperatury ustawionej.
W ramach graficznego interfejsu użytkownika pokazywany jest stan przekaźnika sterującego. Odpowiedni symbol pokazywany jest w prawym górnym rogu, obok symbolu sygnalizującego rodzaj funkcji pełnionej przez automatykę regulacji. Wypełniony kwadrat oznacza załączenie przekaźnika, zaś pusty, jego wyłączenie. Wygląd graficznego interfejsu użytkownika pokazano na rysunku 2, zaś na rysunku 3 pokazano diagram obrazujący system Menu urządzenia. Wszelkim zmianom temperatury dokonywanym przy użyciu interfejsu użytkownika towarzyszy prosta acz efektowna animacja zmieniających się wartości.
Program sterujący
W urządzeniu zastosowano prosty algorytm regulacji, który uwzględnia zdefiniowane wcześniej (i zapisane w nieulotnej pamięci EEPROM mikrokontrolera) parametry histerezy regulacji, na które składa się wartość odchyłki w dół i w górę (symetrycznie) od wartości zadanej (w zakresie ±9,5°C). I tak, dla przykładu: przy ustawieniach histerezy regulacji rzędu ±1°C oraz temperatury zadanej na wartość 21°C w przypadku pracy urządzenia w funkcji ogrzewania automatyka regulacji załączy przekaźnik, gdy temperatura mierzona spadnie do 20°C a wyłączy, gdy owa temperatura osiągnie wartość 22°C, zaś w funkcji chłodzenia automatyka regulacji załączy przekaźnik, gdy temperatura mierzona wzrośnie do 22°C a wyłączy, gdy owa temperatura spadnie do wartości 20°C. Jak się okazuje, ten prosty mechanizm zapewnia bezproblemową pracę urządzenia w warunkach niewielkich i chwilowych wahań temperatury otoczenia.
- CKSEL3...0: 0010
- SUT1...0: 10
- CKDIV8: 1
- CKOUT: 1
- DWEN: 1
- EESAVE: 0
Montaż i uruchomienie
Schemat montażowy sterownika uniTherm pokazano na rysunku 4. Zaprojektowano niewielki, bardzo prosty, dwustronny obwód drukowany z wyłącznym montażem elementów przewlekanych. Montaż sterownika uniTherm rozpoczynamy od wlutowania mikrokontrolera. Następnie montujemy pozostałe elementy półprzewodnikowe, dalej elementy bierne a na końcu przekaźnik, przyciski i złącza połączeniowe. Na samym końcu przylutowujemy wyświetlacz OLED korzystając z wbudowanego złącza tylu goldpin, które zapewnia zarówno niezbędny montaż elektryczny jak i mechaniczny. Można również skorzystać z gniazda typu goldpin przez co połączenie urządzenia z wyświetlaczem będzie łatwo rozłączalne.
Wybierając konkretny moduł wyświetlacza dostępny w handlu należy zakupić wersję wyposażoną w następujące sygnały sterujące: CLK (sygnał zegarowy magistrali SPI), MOSI (wejście danych magistrali SPI), CS (wejście wyboru sterownika SSD1306) oraz DC (wejście, decydujące o charakterze wysyłanych danych: 1 - dane pamięci obrazu, 0 - rozkaz sterujący). Nie mniej ważne jest rozmieszczenie sygnałów zasilających, jako że moduły dostępne w handlu mają często zamienione miejscami sygnały zasilania (VCC) i masy (GND).
Poprawnie zmontowane urządzenie nie wymaga żadnych regulacji i powinno działać tuż po włączeniu zasilania. Widok zmontowanego urządzenia uniTherm od strony TOP bez zamontowanego wyświetlacza OLED pokazano na fotografii 5.
Robert Wołgajew, EP
robert.wolgajew@ep.com.pl
- R1: 2,2 kΩ (miniaturowy 1/8 W)
- R2: 3,3 kΩ (miniaturowy 1/8 W)
- C1, C4, C5: ceramiczny 100 nF (raster 2,54 mm)
- C2, C3: elektrolityczny 100 μF/16 V (5 mm, raster 2 mm)
- U1: LP2950ACZ-3.3G (obudowa TO-92)
- U2: ATtiny84 (obudowa DIL14)
- U3: DS18S20 (obudowa TO-92)
- T1: BC547 (obudowa TO-92)
- D1: 1N4004 (obudowa DO-41)
- D2: 1N4148 (obudowa DO-35)
- OLED: wyświetlacz OLED 0,96” 128×64 SPI niebieski (lub w innym kolorze, wybranym przez użytkownika)
- PLUS, MINUS: microswitch TACT o wysokości 9 mm 12 V,
- LOAD: złącze śrubowe typu AK500/2
- REL: przekaźnik HFKW-012-1ZW