Schemat ideowy termostatu zamieszczono na rysunku 1. Jest on uproszczony do maksimum i nie wymaga komentarza. Poza tym, najważniejszego komponentu urządzenia nie widać na schemacie - jest nim program zawarty w pamięci mikrokontrolera.
Głównym zadaniem programu jest odczyt napięcia występującego na dwóch wejść analogowych. Do pierwszego jest dołączony dzielnik rezystancyjny zbudowany z rezystora R1 oraz potencjometru, do drugiego - dzielnik rezystancyjny z rezystora R3 oraz termistora NTC.
Wartości napięcia na wyjściu pierwszego dzielnika w funkcji położenia potencjometru oraz drugiego dzielnika w funkcji temperatury mają przebiegi nieliniowe i dlatego charakterystyki napięciowe są linearyzowane za pomocą tabel, które zostały wcześniej przygotowane i obliczone dla elementów o wartościach takich, jak zastosowane.
Dodatkowo, aby zaoszczędzić pamięć, kolejne elementy tabeli to różnice pomiędzy następującymi po sobie wartościami a nie same wartości. Takim sposobem za pomocą termistora NTC 10 kΩ jest możliwy pomiar temperatury w zakresie -20...120°C z rozdzielczością 1 stopnia. Niepewność pomiaru nie powinna przekroczyć ±2°C. Zakres ustawienia potencjometru został podzielony na 50 stopni.
Drugim ważnym zadaniem programu jest obsługa programowego interfejsu UART. Za pomocą sprzętowego licznika Timer1 oraz przerwania INT0 jest realizowany interfejs szeregowy o prędkości 9600 b/s. Przy każdym włączeniu urządzenia interfejsem wysyłane są bieżące ustawienia, a w czasie pracy jest wysyłana informacja o temperaturze zmierzonej, ustawionej oraz stanie wyjścia.
Ze względu na dosyć niską częstotliwość taktowania mikrokontrolera interfejs może nie radzić sobie z odbieraniem ciągów danych - w praktyce chodzi o to, aby po każdym znaku zapewnić kilkanaście milisekund przerwy. W wypadku wprowadzania danych z klawiatury warunek ten jest zapewniony w naturalny sposób.
Ostatnim zadaniem wykonywanym przez program jest porównywanie temperatury zmierzonej z temperaturą zadaną, z uwzględnieniem histerezy i odpowiednie sterowanie stanem przekaźnika, w zależności od ustawionej funkcji (ogrzewanie lub chłodzenie).
Montaż układu należy wykonać zgodnie z ogólnymi zasadami wzorując się na schemacie montażowym z rysunku 2. Po zmontowaniu urządzenie nie wymaga kalibracji i jest od razu gotowe do pracy, co będzie sygnalizowała migająca cyklicznie dioda LED1.
Domyślne ustawienia to: zakres regulacji 0...50 stopni, histereza 1 stopień, ustawianie potencjometrem, funkcja - ogrzewanie. Jako czujnik można zastosować dowolny termistor NTC 10 kV. Może być w postaci małej "pchełki" lub jak w modelu "oczko" do przykręcenia.
Ustawienia można zmienić, potrzebny będzie do tego konwerter USB na UART, np AVTMOD09. Po dołączeniu do złącza oznaczonego UART i do portu USB w komputerze należy uruchomić dowolny program typu terminal (np. BrayTerminal+) i otworzyć połączenie o parametrach 9600, 8, none, 1, none.
Co ok. 2 sekundy w oknie Receive terminala powinna być wyświetlana ramka o treści: T= 26*C,U= 30*C, OFF. Oznacza to, że komunikacja została nawiązana prawidłowo. W tabeli 1 umieszczono są wszystkie komunikaty wysyłane przez urządzenie, a w tabeli 2 komendy, za pomocą których można zmienić ustawienia.
Każda komenda zaczyna się znakiem dwukropka a kończy znakiem CR (Enter), nie należy używać spacji. Nowe ustawienia są automatycznie zapamiętywane w pamięci nieulotnej, ale uwaga - układ nie koryguje błędnych ustawień. Na przykład, maksymalna temperatura mierzona to 120°C. Jeśli zostanie ustawiona temp 115°C i histereza 10°C, to wyjście termostatu po załączeniu nigdy się nie wyłączy.
Zastosowanie przekaźnika ma wiele zalet, ale ogranicza zasilanie do 12 VDC. Zamiast przekaźnika można zamontować trzy zwory z drutu opisane na płytce - wtedy elementem wykonawczym będzie tranzystor MOSFET T1. Bez dodatkowego radiatora może załączać prąd do ok 5 A. Do złącza OUT1 należy doprowadzić zasilanie z przedziału 7...25 V, na złączu OUT2 pojawi się napięcie w czasie załączenia wyjścia, które sygnalizuje dioda LED2.
Na koniec jeszcze jedna uwaga - temperatura ustawiona to temperatura, przy której wyjście zostanie załączone. Histereza to wartość, o którą musi wzrosnąć temperatura od wartości ustawionej, aby wyjście zostało wyłączone (w przypadku funkcji chłodzenia histereza określa wartość, o którą temperatura musi zmaleć).
KS