- pomiar temperatury w zakresie -55…+125°C z rozdzielczością 0,1°C,
- trzy wyświetlacze wskazujące temperatury: aktualną, minimalną i maksymalną,
- duże, czytelne wyświetlacze 7-segmentowe LED,
- czujnik temperatury z wyjściem cyfrowym, niewymagający kalibracji,
- wyniki przechowywane w nieulotnej pamięci EEPROM,
- przycisk do zerowania zapamiętanych wskazań, również z zewnętrznym wejściem,
- zasilanie napięciem stałym 8…35 V,
- pobór prądu do 50 mA.
Do czego może się przydać taki układ? Chociażby do nadzoru węglowego pieca centralnego ogrzewania. Zapamiętana temperatura maksymalna wskaże użytkownikowi, czy woda w instalacji nie zbliża się do temperatury grożącej zagotowaniem - może czas palić nieco oszczędniej? Z kolei temperatura minimalna będzie dobrym sygnałem, czy spaliny przekraczają tak zwany punkt rosy, czyli temperatury, poniżej której woda ze spalin skrapla się wewnątrz komina, przyspieszając jego korozję. Zaś temperatura aktualna przyda się do śledzenia bieżącej sytuacji.
Nie tylko piece mogą być nadzorowane w taki sposób. Również temperatura w pomieszczeniach biurowych (czy nad ranem nie wychładzają się za bardzo?) lub w szklarniach z warzywami - możliwości jest całe mnóstwo! Układ został tak zaprojektowany, że jego obsługa sprowadza się do wciśnięcia zaledwie jednego przycisku. A nawet i to nie zawsze jest konieczne. Wystarczy prawidłowo podłączyć zasilanie, reszta wydarzy się automatycznie.
Budowa i działanie
Najistotniejszym elementem jest układ ATmega8A-PU. Ten mikrokontroler można znaleźć w wielu projektach opublikowanych na łamach "Elektroniki Praktycznej", jego popularność nie słabnie mimo upływu lat. Liczba jego wyprowadzeń (możliwych do programowego skonfigurowania) oraz ilość pamięci są całkowicie wystarczające do realizacji tego zadania. Kondensatory C1…C3 filtrują napięcie zasilające mikrokontroler i zmniejszają tętnienia napięcia obsługującego go źródła zasilania. Nie zastosowano zewnętrznego rezonatora kwarcowego do stabilizacji częstotliwości sygnału zegarowego, gdyż układ niemal w ogóle nie realizuje zadań krytycznych czasowo - ponadto liczba wyprowadzeń okazałaby się zbyt mała. Wewnętrzny oscylator RC wytwarzający sygnał zegarowy o częstotliwości 8 MHz jest całkowicie wystarczający. Za pomocą złącza J1 można go zaprogramować w systemie, nie trzeba wyjmować tego układu z płytki drukowanej.
Aktualny wynik pomiaru jest pokazywany przy użyciu wyświetlacza LED2. Zapamiętaną wartość maksymalną można zobaczyć na LED1, natomiast minimalną na LED3. Każdy z tych wyświetlaczy ma po cztery cyfry, aby można było pokazywać na nich temperaturę z rozdzielczością 0,1°C i ewentualnym znakiem "-" dla temperatury niższej od 0°C. Wspólne anody każdej z cyfr (a jest ich dwanaście!) są załączane przez tranzystory bipolarne PNP, które pojedynczo wchodzą w stan nasycenia. Prąd segmentów cyfr oraz kropek ograniczają rezystory 330 Ω, przez co ich jasność jest dostatecznie wysoka, zaś pobór prądu na tyle niski, że można je zasilać wprost z wyjść mikrokontrolera.
Cyfrowy czujnik temperatury typu DS18B20 należy podłączyć do zacisków złącza J3. Napięcie zasilające ten czujnik jest filtrowane przez prosty filtr RC składający się z rezystora R24 i kondensatorów C4 oraz C5, co poprawia stabilność działania tego czujnika. Dla ochrony wejścia mikrokontrolera przez zniszczeniem, do którego mogłyby doprowadzić indukujące się w przewodzie zakłócenia oraz wyładowania elektrostatyczne, zostały dodane diody ograniczające napięcie do zakresu -0,7…+5,7 V. Rezystor R25 ogranicza prąd tych diod. Z kolei rezystor R27 ogranicza prąd diod zabezpieczających wbudowanych w mikrokontroler, gdyż ich napięcie przewodzenia może okazać się nieco niższe. Rezystor R26 jest wymagany do prawidłowego działania magistrali komunikującej się z czujnikiem, ponieważ podciąga ją do potencjału +5 V. Jednocześnie wartości R25 i R27 zostały tak dobrane, że wprowadzane przez nie spadki napięcia i wydłużenie czasu trwania zbocza opadającego nie mają wpływu na działanie magistrali.
Wyczyszczenie zapamiętanych wartości jest możliwe po skasowaniu zawartości pamięci EEPROM mikrokontrolera lub - zdecydowanie prościej - po wciśnięciu przycisku S1. Gdyby ktoś chciał podłączyć inny przycisk zwierny, może to bez obaw zrobić, używając do tego zacisków złącza J2. Rezystor R22 wymusza wysoki stan logiczny na wejściu mikrokontrolera, zaś R23 ogranicza prąd diod zabezpieczających wbudowanych w US1, gdyby w przewodach połączeniowych pojawiło się napięcie wyższe od zasilającego ten układ. Warto zauważyć, że ta bardzo prosta sztuczka nie mogła zostać użyta do zabezpieczenia magistrali 1-Wire, ponieważ w niej niski stan logiczny na linii wymusza zarówno czujnik, jak i mikrokontroler.
Użycie rezystora o tak znacznej wartości spowodowałoby, że logiczne "0" wymuszane przez mikrokontroler na wejściu czujnika temperatury byłoby przez niego interpretowane nieprawidłowo - byłoby to około 50% napięcia zasilającego.
Napięcie zasilające układ podłącza się do zacisków złącza J4. Dioda D3 odcina zasilanie w przypadku pomylenia polaryzacji przy podłączaniu owego napięcia. Stabilizator liniowy typu 7805 dostarcza napięcia 5 V dla układów cyfrowych: mikrokontrolera i czujnika temperatury.