- pomiar temperatury w zakresie –55…+125°C,
- utrzymywanie temperatury z zakresu 1…120°C przez czas od 1 min do 99 h 59 min,
- dwie wartości czasów i temperatur do zadania,
- nastawy przechowywane w nieulotnej pamięci EEPROM,
- zewnętrzne wejścia uruchamiania i wstrzymywania odliczania oraz zerowania układu,
- histereza ±1°C,
- wyjście przekaźnikowe o obciążalności do 6 A,
- alfanumeryczny wyświetlacz LCD o organizacji 2 wiersze po 16 kolumn,
- zasilanie napięciem stałym 12 V.
Zwykłe termostaty utrzymują zadaną temperaturę w określonych granicach i czynią to z właściwą sobie konsekwencją. W ten sposób działają elektryczne podgrzewacze wody, pralki automatyczne czy grzejniki. Jeżeli temperatura spada poniżej pewnego progu, to grzanie jest załączane, a jeżeli wzrośnie powyżej innego, wyższego, to jest wyłączane. I tak w kółko, aż do wyłączenia zasilania.
A gdyby móc tę zadaną wartość temperatury skorelować z czasem? Przykładowo, przez godzinę od włączenia staraj się utrzymywać 40°C, a potem przez pięć godzin 50°C, po czym zakończ cykl. W ten sposób można, na przykład, realizować profile sprzyjające optymalnemu gotowaniu chmielu do piwa domowej produkcji. Można też zoptymalizować dogrzewanie pomieszczeń zimą przed przystąpieniem do pracy: po otwarciu zakładu uruchamiana jest niższa temperatura, aby można było się przyzwyczaić do ciepłoty wyższej niż na zewnątrz, a po godzinie czy dwóch, kiedy pracownicy już się przyzwyczają, włączane jest grzanie do docelowej temperatury. W ten sposób nie będzie odczuwany efekt nagłej, znacznej zmiany temperatury, który często powoduje dyskomfort.
Budowa i działanie
Schemat ideowy omawianego układu znajduje się na rysunku 1. Najistotniejszym elementem jest mikrokontroler, popularny układ ATmega88PA-PU z ośmiobitowej rodziny AVR. Ma wystarczającą liczbę wyprowadzeń oraz ilość pamięci do realizacji tego zadania. Ponieważ chodzi o odmierzanie czasu, to częstotliwość jego sygnału zegarowego jest stabilizowana rezonatorem kwarcowym o częstotliwości drgań wynoszącej 4 MHz. Kondensatory C4 i C5 ułatwiają wzbudzenie oscylacji i stabilizują pracę kryształu. Kondensatory C1…C3 filtrują napięcie zasilające mikrokontroler i zmniejszają impedancję źródła zasilania.
Do obsługi urządzenia służy osiem przycisków monostabilnych S1…S8. Drabinka rezystorowa RN1 uzupełnia rezystory podciągające wbudowane w mikrokontroler, których wartości mogą mieć znaczny rozrzut. Poprawia to stabilność pracy całego układu w silnie zakłóconym środowisku i zapobiega przypadkowym wyzwoleniom przycisków pod wpływem zakłóceń elektromagnetycznych. Dwa z tych przycisków mają dodatkowe wejścia z zewnątrz. Ich przeznaczenie zostanie wyjaśnione w dalszej części artykułu.
Programowanie mikrokontrolera może odbywać się zarówno po włożeniu układu programowalnego w podstawkę programatora, jak i za pośrednictwem złącza J1. Są do niego doprowadzone linie sygnałowe dedykowane interfejsowi ISP. Rezystory zawarte w drabince RN2 podciągają te wyprowadzenia do dodatniego potencjału zasilania, aby nie gromadziły się na nich ładunki elektrostatyczne.
Cyfrowy czujnik temperatury typu DS18B20 należy podłączyć do zacisków złącza J2. Napięcie zasilające ten czujnik jest filtrowane przez dolnoprzepustowy filtr RC składający się z rezystora R2 i kondensatorów C6 i C7. Dla ochrony wejścia mikrokontrolera przez zniszczeniem spowodowanym zakłóceniami, zostały dodane diody ograniczające napięcie do zakresu –0,7 V…5,7 V. Rezystor R1 ogranicza prąd tych diod. Z kolei rezystor R3 ogranicza prąd diod zabezpieczających wbudowanych w mikrokontroler, gdyż ich napięcie przewodzenia jest nieco niższe niż użytych 1N4148. Rezystor R3 jest wymagany do prawidłowego działania magistrali komunikującej się z czujnikiem.
Napięcie zasilające układ podłącza się do zacisków złącza J3. Dioda D1 odcina zasilanie w przypadku pomylenia polaryzacji owego napięcia. Stabilizator liniowy typu 7805 dostarcza napięcia 5 V dla układów cyfrowych. Moc strat na nim jest na tyle niska, że nie ma potrzeby stosowania przetwornicy impulsowej.
Komunikaty i informacje podawane przez układ są wyświetlane na wyświetlaczu LCD1, który zawiera sterownik typu HD44780 lub z nim zgodny. Potencjometrem P1 ustawia się kontrast owego wyświetlacza. Rezystor R5 pozwala na zasilanie jego podświetlenia z niestabilizowanego napięcia wejściowego, nie obciążając tym samym stabilizatora US2.
Zasilanie dla sterowanej przez układ grzałki powinno być poprowadzone przez złącze J4, do którego są doprowadzone wyprowadzenia styków normalnie otwartych (NO) przekaźnika PK1. Rezystor R6 i kondensator C12 tworzą prosty układ pochłaniający energię wydzielaną w momencie łączenia i rozłączania styków przekaźnika, kiedy dochodzi do ich iskrzenia. Dioda LED1 sygnalizuje załączenie cewki przekaźnika.
Dwa przyciski – S7 i S8, mają zewnętrzne wejście na zaciskach złącza J5. Diody D5…D8 działają podobnie, jak w przypadku linii sygnałowej czujnika – ograniczają wartość szczytową napięcia indukowanego w przewodzie połączeniowym. Rezystory R10…R14 pochłaniają część energii tych zakłóceń, zgodnie z prawem Ohma.
Montaż i uruchomienie
Układ został zmontowany na dwustronnej płytce drukowanej o wymiarach 120×90 mm. Jej wzór ścieżek oraz schemat montażowy został pokazany na rysunku 2.
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. Dodatkowo, aby płytka nie uginała się podczas naciskania przycisków, na środku płytki, w pobliżu diody LED1, dodano dodatkowe dwa otwory. Rysunek 3 pokazuje lokalizację dwóch dodatkowych otworów montażowych na płytce.
Montaż proponuję rozpocząć od elementów o najmniejszej wysokości obudowy, czyli rezystorów i diod. Pod mikrokontroler proponuję zastosować podstawkę. Stabilizator US1 można położyć na powierzchni laminatu. Ten etap montażu można zobaczyć na fotografii 1.
Na drugiej stronie płytki jest miejsce dla wyświetlacza LCD1 oraz ośmiu przycisków S1…S8 i diody LED1. Ich lokalizację po przylutowaniu pokazuje fotografia tytułowa. Na samym końcu, po wlutowaniu diody LED1 i przycisków, należy przykręcić wyświetlacz LCD przy pomocy czterech tulei dystansowych oraz należy przylutować jego złącza. Warto lutowanie zostawić na sam koniec, po przykręceniu, aby ewentualny naddatek wysokości tulei mógł być skompensowany przez lekkie wystawanie złącz z powierzchni płytki – by część męska i żeńska wchodziły w siebie całkowicie. Rozmieszczenie przycisków, diody LED i wyświetlacza na powierzchni płytki znajduje się na rysunku 4, dzięki niemu łatwiej będzie wykonać obudowę dla tego urządzenia.
Na etapie uruchamiania jest konieczne zaprogramowanie pamięci Flash mikrokontrolera dostarczonym wsadem oraz zmiana bitów zabezpieczających na takie wartości:
Low Fuse = 0xFD
High Fuse = 0xDC
Szczegóły są widoczne na rysunku 5, który zawiera widok okna konfiguracji bitów z programu BitBurner.
W ten sposób zostanie uruchomiony generator dla rezonatora kwarcowego (o częstotliwości z przedziału 3…8 MHz) oraz Brown-Out Detector, który wprowadzi mikrokontroler w stan zerowania, jeżeli jego napięcie zasilające spadnie poniżej 4,3 V. To znacznie zmniejsza ryzyko zawieszenia się układu podczas uruchamiania.
Poprawnie zaprogramowany układ jest gotowy do działania po ustawieniu kontrastu wyświetlacza potencjometrem P1. Do zasilania powinno służyć napięcie stałe o wartości około 12 V, a dokładniej z przedziału 10…16 V. Takie granice uwzględniają zakres prawidłowej pracy przekaźnika (z uwzględnieniem spadku napięcia na diodzie D3 i tranzystorze T1) w temperaturze 20°C. Warto, aby owe napięcie było dobrze filtrowane, a najlepiej stabilizowane. Pobór prądu przy 12 V wynosi około 15 mA przy wyłączonym przekaźniku oraz około 40 mA, kiedy cewka zostanie załączona.
Do zacisków złącza J2 należy podłączyć czujnik typu DS18B20, zgodnie z opisami na płytce. Może to być gotowy moduł, z dołączonymi przewodami, z samym czujnikiem zaciśniętym w metalowej rurce.
Eksploatacja
W pierwszej kolejności należy ustawić wartości czasów i temperatur. Trzymając wciśnięty przycisk S1 można dokonywać zmian w pierwszej temperaturze i pierwszym czasie (górny wiersz), a przy wciśniętym S2 można modyfikować temperaturę i czas w drugim etapie – dolny wiersz. Widok ekranu znajduje się na fotografii 2.
Zmiany temperatury są dokonywane przez wciskanie przycisków S5 (inkrementacja) lub S6 (dekrementacja). Regulacja odbywa się z rozdzielczością 1°C w zakresie 1…120°C. Z kolei czas obowiązywania danej temperatury można zmieniać poprzez wciskanie S3 (inkrementacja) bądź S4 (dekrementacja) w zakresie od 1 min do 99 h 59 min. Trzymając przyciski S3…S6 dłużej następuje samoczynne przewijanie danej wielkości, tym szybsze im dłużej jest trzymany. Cały czas trzema mieć wciśnięty S1 lub S2, bez tego układ nie reaguje na wciskanie S3…S6. Nastawy są zapamiętywane w nieulotnej pamięci EEPROM po około 10 s od ostatniej zmiany.
Trzecim elementem wiersza na wyświetlaczu jest aktualna temperatura, odświeżana co około jedną sekundę. Jest wyświetlana w zakresie szerszym niż temperatura możliwa do utrzymania, włącznie z ujemnymi – po to, żeby układ reagował prawidłowo, kiedy musi podgrzać obiekt o ujemnej początkowej temperaturze. Aktualna temperatura jest wskazywana z rozdzielczością 0,1°C w zakresie –9,9°C…+99,9°C i z rozdzielczością 1°C poza tym przedziałem. Błąd komunikacji z czujnikiem jest wskazywany napisem ERR!, przy okazji zatrzymuje ono i zeruje bieżące odliczanie.
Uruchomienie odliczania odbywa się po wciśnięciu przycisku START/STOP (S8). Wtedy dwukropek we wskazywanym czasie zaczyna migać i, jeżeli trzeba, uruchamia się przekaźnik załączający grzałkę. Układ utrzymuje zadaną temperaturę z histerezą ±1°C, czyli przy zadanej temperaturze 30°C będzie załączał grzałkę w temperaturze równej 29°C i wyłączał po osiągnięciu 31°C.
Pozostały czas (w formacie hh:mm) jest odliczany w dół, w danym wierszu pokazywana jest też aktualna temperatura. Po doliczeniu do końca trwania temperatury pierwszej, układ przechodzi do drugiego wiersza, odliczając w dół drugi czas i utrzymując drugą temperaturę. Wtedy też temperatura aktualna jest pokazywana w drugim wierszu, nie w pierwszym. Po dojściu do końca odliczania, ulega ono zatrzymaniu, przekaźnik wyłącza się i temperatura aktualna wraca do pierwszego wiersza. Oba czasy trwania zadanych temperatur wracają do swojej pierwotnej wartości.
W każdej chwili można wstrzymać odliczanie, czyli zrobić przerwę, poprzez wciśnięcie przycisku START/STOP. Wtedy zamiast migającego dwukropka pojawia się litera P (pause). Ponowne wciśnięcie START/STOP przywraca odliczanie. Można tez przywrócić układ do stanu początkowego, zatrzymując przy tym odliczanie, wciskając przycisk ZERO (S7). Te dwa przyciski posiadają zewnętrzne wejścia, aby można było wygodnie uruchamiać i zatrzymywać ten proces, kiedy urządzenie znajduje się, na przykład, w szczelnej obudowie.
Zatrzymanie i wyzerowanie (podobnie, jak przyciskiem ZERO) nastąpi również po wciśnięciu S1 lub S2. Zapobiega to wprowadzaniu zmian w trakcie odliczania.
Michał Kurzela, EP
- R1, R2, R4, R10…R13: 100 Ω
- R3, R7…R9: 3,3 kΩ
- R5: 1,5 kΩ
- R6: 33 Ω 3 W
- RN1: 8×10 kΩ (SIL9)
- RN2: 4×10 kΩ (SIL5)
- P1: 10 kΩ montażowy leżący jednoobrotowy
- C1, C6, C8: 220 μF 25 V raster 2,5 mm
- C2, C3, C7, C9…C11: 100 nF raster 5 mm MKT
- C4, C5: 15 pF raster 5 mm monolityczne
- C12: 100 nF MKP X2 305 V AC raster 15 mm
- D1, D2, D4…D8: 1N4148
- D3: 1N5819
- LCD1: 2×16, zgodny z HD44780 np. LCD2×16
- LED1: zielona matowa 5 mm
- T1: BC546
- US1: ATmega88PA-PU (DIP28)
- US2: 7805 TO220
- czujnik temperatury DS18B20
- J1: goldpin 5 pin męski 2,54 mm THT
- J2: ARK3/500
- J3, J5: ARK2/500
- J4: ARK2/750 np. XY705V-2P
- PK1: JQC3FF/121ZS
- Q1: 4 MHz niski
- S1…S8: microswich 6×6 13,5 mm
- jedna podstawka DIP28 wąska
- złącze męskie i żeńskie goldpin 1×16 pin 2,54 mm
- cztery tuleje dystansowe gwint wewnętrzny M3 12 mm poliamid
- osiem śrub M3 6 mm