Termometr różnicowy

Termometr różnicowy

Jeden termometr mierzy temperaturę jednego obiektu. Jeżeli interesuje nas różnica temperatur np. pomiędzy dwoma punktami instalacji CO, to należy użyć dwóch przyrządów i wynik obliczać. Na szczęście istnieje lepsze rozwiązanie – można zastosować termometr różnicowy, który zmierzy temperaturę z dwóch czujników jednocześnie, wyświetli ich wartości oraz wartość różnicy tych temperatur.

Podstawowe parametry:
  • pomiar dwóch temperatur w zakresie –55…+125°C z rozdzielczością 0,1°C,
  • wyświetlanie różnicy tych temperatur z rozdzielczością 0,1°C (1°C dla wartości –100°C i niższych),
  • sygnalizowanie błędu w komunikacji z czujnikami,
  • trzy wyświetlacze wskazujące temperatury: pierwszą, drugą oraz różnicę między nimi (różnicową),
  • duże, czytelne wyświetlacze siedmiosegmentowe LED,
  • czujniki temperatury z wyjściami cyfrowymi, niewymagające kalibracji,
  • zasilanie napięciem stałym 9…35 V, pobór prądu do 50 mA.

Na pewno każdy potrafi sobie wyobrazić taką sytuację – najpierw muszę podejść do jednego termometru i odczytać z niego, że w szklarni mamy 22,3°C. Potem przemieszczenie do drugiego przyrządu, aby sprawdzić, że na zewnątrz temperatura powietrza osiągnęła 15,6°C. Czy mogę otworzyć okna w szklarni żeby ją przewietrzyć bez obawy o uszkodzenie roślin? Jaka właściwie jest różnica temperatur?

Zaprezentowany układ w przejrzysty sposób pokazuje nam trzy wartości temperatur: pierwszą TEMP1, drugą TEMP2 i różnicę między nimi TEMP1 – TEMP2. Jeżeli TEMP1 > TEMP2 to wynik jest dodatni, w sytuacji odwrotnej staje się ujemny. Czy to może uprościć życie? Tak, jeżeli kluczowa jest dla nas wiedza o różnicy wartości między temperaturami, nie zaś o samych ich wartościach – choć tę wiedzę też warto mieć pod ręką, stąd trzy wyświetlacze.

Budowa i działanie

Schemat ideowy omawianego układu znajduje się na rysunku 1. Najistotniejszym elementem jest układ scalony typu ATmega8 A-PU. Ten mikrokontroler można znaleźć w wielu projektach opublikowanych na łamach Elektroniki Praktycznej, jego popularność nie słabnie mimo upływu lat i pojawiania się coraz to nowocześniejszych podzespołów. Liczba jego wyprowadzeń, które można programowo obsłużyć, jak również ilość pamięci Flash i RAM, są w 100% wystarczające do realizacji tego zadania.

Rysunek 1. Schemat ideowy układu termometru

Kondensatory C1…C3 filtrują napięcie zasilające mikrokontroler i zmniejszają impedancję 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. Wewnętrzny oscylator RC, wytwarzający sygnał zegarowy o częstotliwości 8 MHz, jest całkowicie wystarczający. Ponadto, wtedy liczba wyprowadzeń okazałaby się zbyt mała.

Wyniki pomiarów i obliczeń są pokazywane przy użyciu czterocyfrowych wyświetlaczy siedmiosegmentowych LED. Aktualna wartość temperatury pierwszej (TEMP1) znajduje się na wyświetlaczu LED1, temperatury drugiej (TEMP2) na LED3, zaś LED2 wyświetla różnicę między nimi. Każdy z tym wyświetlaczy ma po cztery cyfry, aby można było pokazywać na nich temperaturę z rozdzielczością 0,1°C i ewentualnym znakiem minus dla temperatury niższej od 0°C – jedynie na wyświetlaczu LED2 rozdzielczość wskazań może się zmienić na 1°C, jeżeli temperatura różnicowa jest niższa niż –100°C. Wspólne anody każdej z dwunastu cyfr są załączane przez tranzystory bipolarne PNP, które po kolei 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.

Cyfrowe czujniki temperatury typu DS18B20 należy podłączyć do zacisków złącz J2 i J3. Napięcie zasilające te czujniki jest filtrowane przez proste filtry RC składające się z rezystora 100 Ω i kondensatorów 100 nF oraz 100 μF, co poprawia stabilność działania tychże podzespołów. Dla ochrony wejść mikrokontrolera przez uszkodzeniem, do którego mogłyby doprowadzić indukujące się w przewodach zakłócenia oraz wyładowania elektrostatyczne, zostały dodane diody D1…D4. Ich zadaniem jest ograniczenie wartości chwilowej napięcia na linii danych do zakresu –0,7…+5,7 V. Rezystory R22 i R27 ograniczają prąd tych diod. Z kolei rezystory R25 i R29 ogranicza prąd diod zabezpieczających wbudowanych w mikrokontroler, gdyż ich napięcie przewodzenia może okazać się nieco niższe niż użytych 1N4148. Rezystory R24 i R28 są wymagane do prawidłowego działania magistrali 1-Wire.

Wprawdzie czujniki mają wbudowane adresy, dzięki którym da się je podłączyć na jednym przewodzie i wywoływać po unikalnym adresie, lecz to rozwiązanie jest mniej wygodne we wdrożeniu niż dwa odrębne złącza, do których podłącza się po jednym czujniku. Poznawanie ich adresów staje się wtedy niepotrzebne.

Napięcie zasilające układ podłącza się do zacisków złącza J4. Dioda D5 odcina zasilanie w przypadku pomylenia polaryzacji owego napięcia. Scalony stabilizator liniowy typu 7805 dostarcza napięcia 5 V dla układów cyfrowych, czyli mikrokontrolera i czujników temperatury.

Montaż i uruchomienie

Układ został zmontowany na dwustronnej płytce drukowanej o wymiarach 140×60 mm, której schemat został pokazany na rysunku 2.

Rysunek 2. Schemat montażowy i wzór ścieżek płytki

W odległości 3 mm od krawędzi płytki znalazły się cztery otwory montażowe, każdy o średnicy 3,2 mm. Aby wykonanie otworów w obudowie było łatwiejsze, można posłużyć się rysunkiem 3, który pokazuje położenie trzech wyświetlaczy na powierzchni laminatu.

Rysunek 3. Rozmieszczenie wyświetlaczy na powierzchni płytki

Montaż proponuję rozpocząć od elementów o najmniejszej wysokości obudowy, czyli rezystorów i diod na wierzchniej stronie płytki. Potem można wlutować podstawkę pod mikrokontroler US1, której zastosowanie szczerze polecam. Następnie warto zamontować wyświetlacze LED i tranzystory. Na drugiej (spodniej) stronie płytki jest miejsce dla elementów o wyższych obudowach: kondensatorów MKT, kondensatorów elektrolitycznych, złącz J1…J4 i stabilizatora US2. Te podzespoły, osadzone na swoich miejscach, można zobaczyć na fotografii 1.

Na etapie uruchamiania jest konieczne zaprogramowanie pamięci Flash mikrokontrolera dostarczonym wsadem oraz zmiana jego bitów zabezpieczających. Oto ich nowe wartości: Low Fuse = 0×24, High Fuse = 0xD9. Szczegóły są widoczne na rysunku 4, który zawiera widok okna konfiguracji tychże bitów z programu BitBurner. W ten sposób zostanie uruchomiony wewnętrzny generator RC o częstotliwości oscylacji 8 MHz oraz Brown-Out Detector, który wprowadzi mikrokontroler w stan zerowania, jeżeli jego napięcie zasilające spadnie poniżej 4 V. To znacznie zmniejsza ryzyko wystąpienia problemów podczas uruchamiania mikrokontrolera.

Rysunek 4. Szczegóły ustawienia bitów zabezpieczających

Poprawnie zaprogramowany układ jest gotowy do działania po podłączeniu dwóch cyfrowych czujników temperatury typu DS128B20, zgodnie z opisami na płytce, do zacisków złącz J2 i J3. Może to być gotowy moduł z podwójnie izolowanymi przewodami, gdzie sam czujnik został hermetycznie zaciśnięty w metalowej rurce.

Napięcie zasilające układ może zawierać się w przedziale 9…35 V. Zarówno dolna, jak i górna granica tego przedziału wynika z konieczności zapewnienia prawidłowych warunków pracy stabilizatora typu 7805. Pobór prądu przez układ może wynosić nie więcej niż 50 mA i jest zależna od treści przedstawianych na wyświetlaczach. Z tego względu nie jest konieczne stosowanie radiatora na stabilizator, o ile napięcie zasilania nie przekracza około 15 V – dla wyższej wartości proponuję przykręcić do stabilizatora niewielki radiator, na przykład RAD FK231 SA220 L9 z oferty Sklepu AVT.

W układzie prototypowym zastosowano trzy wyświetlacze LED o różnych barwach świecenia: czerwony dla temperatury pierwszej, niebieski dla drugiej i zielony dla różnicowej. W czasie testów okazało się, że wyświetlacz z zielonymi diodami LED (LED-AF5643FG) świeci zdecydowanie ciemniej od pozostałych dwóch, mimo że pochodzi od tego samego producenta i ma zapewniony taki sam prąd segmentów. Nic nie stoi na przeszkodzie, by bez jakichkolwiek modyfikacji w układzie zastosować inne kolory wyświetlaczy lub wręcz wlutować trzy identyczne wyświetlacze. W ofercie AVT można znaleźć jeszcze LED-AF5643FY – świecący na żółto.

Po włączeniu zasilania układ podejmuje dwukrotną próbę komunikacji z czujnikami. W tym czasie wyświetlacze pokazują same kreski. Jeżeli wszystko działa prawidłowo, po około czterech sekundach termometr przechodzi do normalnej pracy. Niekiedy pierwszy odczyt temperatury z DS18B20 po włączeniu zasilania nie uaktualnia jego wewnętrznych rejestrów, pomimo wcześniejszego wymuszenia konwersji. W takiej sytuacji temperatura, którą pokazałby układ, wynosiłaby 85°C, ponieważ taka jest domyślna zawartość rejestrów układu DS18B20, co mogłoby wprowadzić obsługę w błąd. Te kreski będą pokazywane tak długo, aż nie nastąpią dwa poprawne odczyty temperatury.

Fotografia 1. Wygląd zmontowanego układu od strony spodniej (Bottom)

Kiedy ta sztuka już się uda, układ cyklicznie mierzy temperatury TEMP1 i TEMP2 oraz odświeża zawartość wszystkich wyświetlaczy. Dzieje się to co około 1,2 s. Temperatura różnicowa jest pokazywana ze znakiem, czyli stanie się ujemna, jeżeli TEMP2 przewyższy wartością TEMP1. Z uwagi na ograniczoną liczbę cyfr, temperatura –100°C oraz niższa jest pokazywana z rozdzielczością 1°C, w pozostałych przypadkach rozdzielczość wynosi 0,1°C. Dokładność pomiarów jest taka, jak użytych czujników – szczegóły na ten temat znajdują się w nocie katalogowej czujnika DS18B20. Warto zauważyć, że wyświetlana temperatura różnicowa będzie obarczona dwukrotnie większym błędem bezwzględnym niż każda z temperatur aktualnych (TEMP1 i TEMP2) z osobna.

Fotografia 2. Wygląd wyświetlacza z komunikatem błędu czujnika

Z uwagi na cyklicznie występujące przerwania (z częstotliwością 1 kHz), których zadaniem jest odświeżanie zawartości wyświetlaczy, niekiedy w tę wymianę bitów wkradają się błędy, wynikające na przykład z opóźnień. Został więc wdrożony mechanizm weryfikacji sumy kontrolnej (CRC), który odrzuca każdy wynik pomiaru, dla którego obliczona suma kontrolna jest niezgodna z odebraną. Pojedyncze błędy nie są raportowane – po prostu wynik pomiaru zostanie zaktualizowany sekundę lub dwie później. Gdyby jednak zdarzyły się przynajmniej cztery takie nieprawidłowości z rzędu, w miejscu temperatury pokazywanej przez jeden z wadliwych czujników (LED1 lub LED3) oraz w miejscu wyświetlania temperatury różnicowej (LED2) pojawi się informacja o błędzie – fotografia 2. Przywrócenie poprawności działania czujnika temperatury automatycznie przywraca wskazania temperatury różnicowej i tej, która dotychczas niedomagała.

Michał Kurzela, EP

Wykaz elementów:
Rezystory: (THT o mocy 0,25 W)
  • R1…R12, R21, R24, R28: 2,2 kΩ
  • R13…R20: 330 Ω
  • R22, R23, R25…R27, R29: 100 Ω
Kondensatory:
  • C1, C2, C4, C6, C9, C10: 100 nF raster 5 mm MKT
  • C3, C5, C7, C11: 100 μF 16 V raster 2,5 mm
  • C8: 22 μF 50 V raster 2,5 mm
Półprzewodniki:
  • D1…D4: 1N4148
  • D5: 1N5819
  • LED1: LED-AF5643FS
  • LED2: LED-AF5643FG
  • LED3: LED-AF5643FB
  • T1…T12: BC556
  • US1: ATmega8 A-PU (DIP28)
  • US2: 7805 TO220
  • dwa czujniki temperatury DS18B20 np. DS18B20-MOD1
Pozostałe:
  • J1: goldpin 5 pin męski 2,54 mm THT
  • J2, J3: ARK3/500
  • J4: ARK2/500
  • jedna podstawka DIP28 wąska
Artykuł ukazał się w
Elektronika Praktyczna
czerwiec 2023
DO POBRANIA
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik grudzień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna grudzień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów