celu wysyłamy eto czujnika reset i znany już bajt CCh oraz BEh. Ostatnie polecenie spowoduje możliwość odczytu 9 bajtów z pamięci DS18820. Nas interesują tylko dwa pierwsze bajty, w których zakodowana jest temperatura. W związku z powyższym wydajemy pdeceiiie 1wrcad(2).
Po odczytaniu zakodowanej temperatury wystarczy odkodować i wyświetlić na wyświetlaczu LCD. Kodowanie pokazane jest w tabeli 1. Jak widać temperatura dodatnia zawiera się w przedziale OGOCh (0cC) - 07D0h (+125°C). A temperatura ujemna w przedziale FFFFh (-0,0625°C) - FC90h (-5S°C). Dekodowanie temperatury dodatniej jest bardzo proste. Zamieniamy wartość szesnastkową na dziesiętną, a następnie dzielimy ją przez 16 np. 00A2h=l62/16 = 10.125°C. Nieco bardziej skomplikowane jest dekodowanie temperatury ujemnej. Po odczycie temperatury z czujnika odejmujemy ją od FFFFh. dodajemy 1 i dzielimy przez 16 np. FFFFh-FF5Eh+01 h=00A2h. Następnie zamieniamy wartość szesnastkową na dziesiętną i dzielimy przez 16. Czyli COA2h=162'16=10.125CC.
No tak, ale skąd wiemy, że temperatura jest ujemna? To bardzo proste. W temperaturach ujemnych zawsze pierwsze cztery bity z lewej strony mają wartość FFh lub jak kto woli 1111 binarnie (patrz tabela 1).
Mając wyliczoną wartość temperatury reszta programu, to tylko kilkanaście warunków i kilka pętli.
Ustawianie dolnej i górnej wartości histere2y odbywa się poprzez wciśnięcie S3 lub S4, a następnie ustawienie interesującej nas wartości na wyświetlaczu. Podczas ustawiania histerezy, cyfry na wyświetlaczu pulsują. Po skończeniu ustawiania pulsowanie tnva jeszcze przez około 4 sekundy i następuje zapis ustawień do pamięci mikrokontrolera.
Na schemacie zostały umieszczone cztery elementy w liniach przerywanych. Jest to kondensator C3 oraz kwarc Q1 i kondensatory C2. C3. Na elementy te również zostało przewidziane miejsce na płytce drukowanej. Jednakże nie są one potrzebne cło prawidłowego działania termostatu. To po co cne w ogóle? W tej wersji oprogramowania są 2będne, ponieważ zewnętrzny sygnał reset mikrokontrolera nie jest wykorzystywany (kondensator C3). Również zewnętrzny generator nie jest wykorzystywany (Cl. C2 i Ol). Elementy te mogą zostać wykorzystane, gdy zachodzi potrzeba zmiany oprogramowania. Na przykład ktoś chce napisać własny program z wewnętrznym odmierzaniem czasu lub nawet całej daty. Wówczas wewnętrzny zegar mikrokontrolera należy zastąpić zewnętrznym, czyli rezonatorem kwarcowym Q1 i kondensatorami C1. C2). To samo dotyczy sygnału reset. W skrajnie niesprzyjających warunkach (czytaj zakłóceniach) można zastąpić wewnętrzny sygnał resetu zewnętrznym kondensator C3.
Montaż i uruchomienie
Montaż układu nie powinien sprawić kłopotu nawet początkującym. Mała liczba elementów i brak kalibracji czujnika czyni montaż łatwym i przyjemny. Jak zwykle rozpoczynamy od sprawdzenia płytki drukowanej. Sprawdzamy czy nie ma zwarć lub przeiw na ścieżkach. Najlepiej do tego celu użyć lupy. Montaż właściwy rozpoczynamy od wlutowania rezystorów i mikroprzełączników. Następnie wlutowujemy podstawki, kondensatory i pozostałe elementy bierne, wraz z czujnikiem temperatury DS18B20. Na zakończenie wlutowujemy złącza ARK i przekaźnik. Jeżeli na płytce zostały resztki kalafonii, usuwamy je przy pomocy specjalnego preparatu chemicznego lub spirytusem (może być denaturat). Oczywiście resztki kalafonii usuwamy twardym pędzelkiem maczanym w spirytusie, uważając aby nie zamoczyć podstawek i złącz. Po wyschnięciu płytki sprawdzamy poprawność TI
montażu i gdy wszystkie elementy są na swoich miejscach, wkładamy mikrokontroler w podstawkę, a następnie wyświetlacz LCD. Z wyświetlaczem należy obchodzić się bardzo ostrożnie, ponieważ łatwo go uszkodzić przez wyłamanie jego nóżek.
Na zakończenie montażu podłączamy zasilanie. Termostat powinien wskazywać temperaturę pomieszczenia, w którym się znajdujemy.
Test termostatu sprowadza się do ustawienia dwóch temperatur przełączenia przekaźnika. Wciskając S3 cyfry na wyświetlaczu zaczną szybko pulsować. Jest to informacja dla użylkownika, że jest w opc; ustawiania histerezy. Przełącznikami S1 i S2 można ustawić żądaną temperaturę załączenia przekaźnika np. +25°C. Po około 4 sekundach ustawienia zostają automatycznie zapisane w pamięci mikrokontrolera. a wyświetlacz przestanie pulsować. Pozostało jeszcze ustawić próg wyłączenia przekaźnika. W tym celu wciskamy S4 i przełącznikami S1 i S2 ustawiamy górny próg temperatury np. -ł-27°C. Czekamy aż wyświetlacz przestanie pulsować i ustawienia zostaną zapisane w pamięci mikrokontrolera. Od tego momentu układ jest gotów do pracy. Aby się o tym pjzekonać, wystarczy podgrzać paloem czujrrk. Gdy czujnik osiągnie temperaturę +27°C usłyszymy zwolnienie przekaźnika (grzałka przestaje grzać). Wówczas zdejmujemy palec z czujnika. Temperatura zaczyna spadać. Po osiągnięciu +25°C usłyszymy przyciągnięcie przekaźnika (grzałka zaczyna grzać).
Powyższe ustawienia to tylko przykład. Każdy może ustawić parametry termostatu według własnego uznania i potrzeb. Należy tylko pamiętać, że dla temperatur dodatnich, gdy termostat ma "grzać', wykorzystujemy styki złącza 22, natomiast gdy ma -schładzać' - styki złącza Z1.
Powyższe ustawienia były dla temperatur dodatnich. Dla temperatur ujemnych ustawienia są niemal identyczne. Różnica występuje tylko w ustawieniu temperatur przełączania. Najpierw wciskamy S4 i ustawiamy dolną temperaturę, po przekroczeniu której styki przekaźnika zostaną zwolnione np. -7°C Następnie Wciskamy S3 i ustawiamy górną temperaturę, po przekroczeniu której styki przekaźnika zostaną załączone np. -5°C.
Gdy termostat działa poprawnie i wiemy jak go ustawić, pozostało wmontować go do posiadanego urządzenia lub w niezależną obudowę.
o
o
o
©
©
O O |
•o |
Si® | |
& '-O oU* |
'U |
LCD1
OOOOOOOOOOOOOOOOOOOO
=ł
o" | ||
0 |
fOCTgl |
o
o
est
00
CNO „ U2
Noug Elektronik 246-k
Rys. 2 Rozmieszczenie elementów na płytce drukowanej (skala 1:1)
Spis elementów |
U2 - DSI8B20 | |
Inne: | ||
Rezystory: |
LCD - 3 i 1/2 cyf/y | |
R1 - 4k7 |
SI • mikroprzełącznik | |
R2 - 4k7 |
S2 - mikroprzełącznik | |
Kondensatory |
S3 - mikroprzelącznik | |
C4 - 1CGpf/16V |
S4 - mikroprzełąc2nik | |
C5- lQpf/5>QV |
PKl - JQX115/5V | |
Półprzewodniki: |
21-ARK2 | |
01 - 1N4007 |
Z2 • ARK2 | |
T1 - BC547 |
Z3-ARK4 | |
Układy scalone: |
Z4 - SIP40 | |
Ul - Atmcgat6 zaprogramowany |
Podstawka - DIL40 |