Wielozadaniowy regulator temperatury

Wielozadaniowy regulator temperatury
Pobierz PDF Download icon

Niektóre procesy, na przykład hobbystyczne warzenie piwa, wymagają utrzymywania kilku różnych temperatur na stałym poziomie, każdą z nich przez określony czas. Można to zrobić ręcznie, za pomocą zwykłego termostatu i stopera, lecz znaczącym ułatwieniem będzie opisany poniżej układ. Rekomendacje: regulator przyda się do nadzorowania procesów, w których oprócz pomiaru temperatury jest wymagane również jej utrzymanie przez zadany czas.

Podstawowe parametry:
  • Sterowanie 3 urządzeniami: grzałką, wentylatorem, mieszadłem.
  • Możliwość zapamiętania 7 programów.
  • Przechowywanie nastaw w EEPROM.
  • Sygnalizacja pracy za pomocą LED i dźwięku.
  • Przekaźniki w funkcji układów wykonawczych.
  • Obsługa za pomocą enkodera i dwóch przycisków.
  • Wyświetlacz graficzny LCD o rozdzielczości 128×64 piksele.
  • Płytka drukowana o wymiarach 110 mm×150 mm.
  • Zasilanie z sieci 230 V AC (zasilacz transformatorowy).

Przedstawiony regulator jest przeznaczony do utrzymywania zadanej temperatury obiektu, do którego będzie przyłożony czujnik temperatury. W tym celu steruje, za pośrednictwem przekaźników, trzema urządzeniami: grzałką (wyjście HEATER), wentylatorem chłodzącym (FAN) oraz mieszadłem (MIXER). Jeżeli zachodzi potrzeba podgrzania, to jest uruchamiana grzałka. W przypadku zbyt wysokiej temperatury, włączany jest wentylator. Pracę mieszadła użytkownik definiuje według uznania.

Regulator posiada możliwość zapamiętania 7 różnych programów, z których w każdym można ustawić do 6 różnych temperatur wraz z czasem ich trwania (w pełnych minutach). Osiągnięcie zadanej temperatury oraz zakończenie czasu jej trwania jest sygnalizowane diodą LED i buzzerem piezoelektrycznym. Nastawy są przechowywane w nieulotnej pamięci EEPROM.

Programowanie urządzenia (ustawianie poszczególnych temperatur i czasów) odbywa się za pomocą menu. Do obsługi regulatora nie jest wymagany komputer. Menu użytkownika jest obsługiwane przy użyciu obrotowego enkodera oraz dwóch przycisków. Interfejs użytkownika jest wyświetlany na czytelnym wyświetlaczu graficznym LCD o rozdzielczości 128×64 piksele.

Zasada działania

Ilustrację wcześniejszego opisu stanowi rysunek 1. Użytkownik, w trybie programowania, zadał dwie temperatury – pierwszą niższą, druga wyższą – wraz z czasami ich trwania, odpowiednio t1 i t2. Po uruchomieniu programu, temperatura jest zbyt wysoka, dlatego następuje schładzanie. Po schłodzeniu do pierwszej temperatury, jest ona utrzymywana (z niewielką histerezą, wynoszącą ±0,5°C) przez czas t1. Kiedy czas ten upłynie, kontrolowany obiekt będzie ogrzewany, aż do uzyskania drugiej temperatury. Ona będzie utrzymywana przez czas t2. Po zakończeniu odmierzania, sterownik wyświetli całkowity czas, jaki trwało wykonywanie tego programu.

Rysunek 1. Przebieg czasowy temperatury w omawianym przykładzie

 

Schemat ideowy

Schemat omawianego regulatora pokazano na rysunku 2. Mikrokontroler sterujący tym regulatorem ma sporo zadań, a najbardziej czasochłonnym jest obsługa graficznego wyświetlacza LCD. Z tego powodu, zrezygnowano z prób „upakowania” całego oprogramowania w układ z rodziny ATmega. Nowoczesne, 32-bitowe mikrokontrolery z rdzeniem ARM mają znacznie więcej pamięci (Flash i RAM) oraz znacznie większą częstotliwość taktowania rdzenia. Z tego powodu zastosowano mikrokontroler STM32F051K8T6 w obudowie TQFP32, którego cena jest porównywalna z ATmega328. Pamięć programu mieszcząca 64 kB oraz 8 kB pamięci RAM w zupełności wystarczają do realizacji tego celu. Dodatkowym atutem jest zgodność poziomów napięcia (logika 3,3 V) z użytym wyświetlaczem. Źródłem przebiegu taktującego jest wewnętrzny, 8-megahercowy oscylator HSI, którego częstotliwość jest powielana przez układ PLL do uzyskania 48 MHz. Dokładność tego oscylatora w temperaturze pokojowej (25ºC) to ok. 1,7%, co można uznać za całkowicie wystarczające w tym zastosowaniu (rysunek 3).

Rysunek 2. Schemat ideowy regulatora temperatury
Rysunek 2. cd.
Rysunek 3. Dokładność wewnętrznego oscylatora HSI po przylutowaniu mikrokontrolera (źródło: nota katalogowa układu STM32F051K8T6)

Bezpośrednio przy dwóch parach wyprowadzeń służących zasilaniu mikrokontrolera znalazły się po trzy kondensatory ceramiczne: 1 nF, 100 nF i 10 mF. Ich zadaniem jest filtrowanie tętnień o bardzo szerokim widmie. W tej aplikacji nie jest używany przetwornik A/C, dlatego zasilanie VDDA nie zostało specjalnie odseparowane. Wejście BOOT0 zostało spolaryzowane potencjałem masy poprzez rezystor R25, aby ładowanie programu odbywało się z wbudowanej pamięci Flash. Nieużywane wyprowadzenia GPIO również zostały spolaryzowane zewnętrznymi rezystorami po to, aby zabezpieczyć GPIO przed elektrycznością statyczną.

Do programowania pamięci Flash mikrokontrolera został przewidziany interfejs SWD. 6-pinowe złącze goldpin J5 ma tak samo rozmieszczone wyprowadzenia, jak złącza na płytkach ewaluacyjnych z układami firmy ST. Wszystkie zostały podciągnięte do dodatniej szyny zasilania.

Wprowadzone przez użytkownika nastawy powinny być zapamiętywane na stałe, a więc zapisywane w pamięci nieulotnej. Ponieważ układy STM32F0 nie mają wbudowanej pamięci EEPROM, została dodana pamięć zewnętrzna, typu 24C04. Jest to bardzo tani układ, w cenie poniżej jednego złotego, a dodatkowo potrzebuje tylko dwóch wyprowadzeń mikrokontrolera, ponieważ komunikuje się z nim poprzez I2C. Rezystory R18 i R19 podciągają zasilanie szyn interfejsów. Ochrona przez zapisem (pin WP) została wyłączona poprzez podanie na to wyprowadzenie poziomu niskiego.

Zastosowany wyświetlacz graficzny ma rozdzielczość 128×64 punkty i zewnętrzne podświetlenie za pomocą LED. Jego wyprowadzenia są przystosowane do montażu przewlekanego (THT) i mają raster 2,54 mm, dlatego nie ma konieczności montażu złącza ZIF. Do wyprowadzeń wyświetlacza jest dołączone dziewięć kondensatorów ceramicznych o pojemności 1 mF każdy, zgodnie z notą katalogową. Są one konieczne do realizacji pompy ładunkowej, której napięcie jest wykorzystywane w sterowaniu ciekłymi kryształami.

Kontroler wbudowany w wyświetlacz jest wykonany w technologii COG (Chip-On-Glass) i nosi oznaczenie ST7565R. Litera „R” jest tutaj bardzo istotna, bowiem oznacza odwrócony układ wyświetlacza – segment o najniższych współrzędnych nie znajduje się w lewym górnym rogu, jak to się zwykle przyjmuje, lecz w prawym górnym, co obrazuje rysunek 4. Użycie wyświetlacza sterowanego przez ST7565 (bez litery „R”) spowoduje lustrzane odbicie wyświetlanej zawartości, co znacząco utrudni korzystanie z urządzenia. Dużą zaletą sterownika ST7565R jest komunikacja z mikrokontrolerem za pomocą jednej linii danych, jednej linii zegarowej i trzech linii sterujących – łącznie to tylko pięć wyprowadzeń. Wszystkie pracują z napięciem 3,3 V, więc konwerter poziomów logicznych jest tu zbędny. Dodatkowym atutem jest możliwość wysyłania danych do pamięci RAM wyświetlacza za pośrednictwem wbudowanego w mikrokontroler sprzętowego interfejsu SPI, co znacząco przyśpiesza i upraszcza odświeżanie zawartości wyświetlacza. Użyty w prototypie wyświetlacz ma czarne tło, na którym są wyświetlane jasne punkty. Nic nie stoi na przeszkodzie, aby użyć innego, który ma ten sam sterownik i takie same wymiary oraz rozdzielczość, ale o innej kolorystyce.

Rysunek 4. Układ wierszy i kolumn w wyświetlaczu ze sterownikiem ST7565R

Poprawne wyświetlanie zawartości ekranu jest możliwe po załączeniu zewnętrznego podświetlenia. Wykonano je wklejając białą diodę LED w poliwęglanową płytkę, której zadaniem jest równomierne rozpraszanie światła. Ponieważ napięcie przewodzenia tej diody wynosi około 3 V, do ograniczenia natężenia płynącego przez nią prądu przy zasilaniu z 3,3 V wystarczy opornik R26 o rezystancji 100 V.

Pomiar temperatury jest dokonywany za pośrednictwem popularnego czujnika DS18B20. Można go kupić w wykonaniu wodoszczelnym, tj. w metalowej, szczelnej rurce, przez co doskonale nadaje się do pomiaru temperatury cieczy. Czujnik komunikuje za pomocą interfejsu 1-Wire, wymagającego jednej linii sygnałowej. Działa poprawnie przy napięciu 3,3 V, więc można go podłączyć wprost do mikrokontrolera. W celu zabezpieczenia mikrokontrolera zamontowano dwie diody (D4 i D5) oraz rezystor szeregowy (R17). Rezystor ma za zadanie ograniczenie prądu impulsu oraz wydłużenie czasu jego narastania, przez co na diodach, zwłaszcza zawartych w strukturze mikrokontrolera, wydzieli się mniejsza moc.

Urządzenia wykonawcze, w postaci grzałki, wentylatora i pompy, są zasilane bezpośrednio z sieci 230 V poprzez przekaźniki typu RM83. Zasilanie cewek tych przekaźników pochodzi wprost z wyprostowanego i odfiltrowanego napięcia pochodzącego z transformatora. Do ich sterowania służą tranzystory bipolarne NPN typu BC817, ponieważ można je prawidłowo wprowadzić w stan nasycenia, mając do dyspozycji napięcie o wartości jedynie 3,3 V.

Sygnalizator piezoelektryczny BUZ1 daje znać użytkownikowi, że określony etap został rozpoczęty lub zakończony. Wraz z sygnałem dźwiękowym uruchamia się czerwona dioda LED. Emituje ona więcej światła od standardowych diod sygnalizacyjnych z matową soczewką, więc można zobaczyć jej świecenie nawet przy silnym oświetleniu.

Do obsługi służy enkoder z przyciskiem oraz dwa przyciski. Aktywny jest poziom niski. Obwód filtra składający się z kondensatora 100 nF i rezystora 330  V tłumi iskrzenie pochodzące od drgających styków. Użycie samego kondensatora w tym miejscu nie byłoby najlepszym rozwiązaniem, gdyż nagłe jego zwieranie powodowałoby jeszcze silniejsze iskrzenie, przyspieszające degradację powierzchni styków. Włączenie w szereg rezystora ogranicza prąd jego przeładowania do bezpiecznej wartości.

Zasilanie sieciowe 230 V AC podłącza się do zacisków złącza J1. Napięcie na złączach J2-J4 występuje po zadziałaniu odpowiedniego przekaźnika – z nich zasila się urządzenia wykonawcze. Zasilacz niskonapięciowy został wykonany w sposób najprostszy z możliwych, z użyciem transformatora sieciowego. Wyprostowane i odfiltrowane napięcie służy do zasilania cewek przekaźników. Jego wartość waha się w szerokich granicach, lecz nie spada poniżej wartości dopuszczalnej. Stabilizator napięcia 3,3 V dostarcza zasilanie odpowiednie dla części cyfrowej.

Budowa i uruchomienie

Układ regulatora temperatury zmontowano na dwustronnej płytce drukowanej o wymiarach 110 mm×150 mm. Schemat montażowy płytki pokazano na rysunku 5. W rogach, po 3 mm od krawędzi bocznych, wykonano otwory montażowe o średnicy 3 mm.

Rysunek 5. Schemat montażowy płytki drukowanej regulatora temperatury
Rysunek 5. cd.

Montaż należy rozpocząć od przylutowania elementów w obudowach SMD, które to znajdują się od spodniej strony płytki. W następnej kolejności proponuję przylutować wszystkie elementy przewlekane występujące na spodniej stronie płytki, poza transformatorem – czyli drabinkę rezystorową, złącze goldpin, złącza ARK, stabilizator, mostek prostowniczy, oprawkę bezpiecznika, przekaźniki i kondensator elektrolityczny.

Potem można zająć się wszystkimi podzespołami na górze płytki: sygnalizatorem, diodą LED, enkoderem, przyciskami, a na końcu wyświetlaczem. Doginając nóżki tego ostatniego należy zwrócić szczególną uwagę, aby ich nie wyłamać ze szklanego podłoża. Pod wyświetlacz należy od razu wsunąć jego podświetlenie, uprzednio eksperymentalnie ustalając, która jego strona świeci. Wyprowadzenia diody podświetlenia przylutować do pól PAD1 i PAD2 po zawinięciu ich pod płytkę (fotografia 6). Zmontowaną płytkę od strony spodniej pokazano na fotografii 7. Na samym końcu można przylutować transformator (od spodu), ponieważ jest bardzo ciężki i utrudniałby manewrowanie płytką w trakcie lutowania lżejszych komponentów.

Fotografia 6. Szczegóły montażu podświetlenia ekranu LCD
Fotografia 7. Zmontowana płytka sterownika (widok od spodu)

Prawidłowo zmontowany układ wymaga jedynie zaprogramowania pamięci Flash mikrokontrolera gotowym wsadem, zaś do złącza J6 trzeba podłączyć czujnik temperatury typu DS18B20. Jeżeli wszystko przebiegło pomyślnie, można przystąpić do użytkowania sterownika.

 

Eksploatacja

Po włączeniu zasilania, przez 1,5 sekundy widoczny jest ekran powitalny (fotografia 8). Potem ekran jest czyszczony i pojawia się menu wyboru rodzaju dokonywanej czynności (fotografia 9). Przełączanie między opcją wykonania zapisanego uprzednio programu (EXECUTE PROGRAM), czy też dokonać zmian w programie (CHANGE PROGRAM) dokonuje się poprzez obracanie osią enkodera. Wciśnięcie jej zatwierdza wybór. Jeżeli wybrano opcję zmiany programu, zawartość ekranu będzie taka, jak na fotografii 10. Obracanie osi enkodera przełącza wybór na jeden z siedmiu dostępnych programów lub powrót do menu głównego – po ustawieniu kursora na pozycję BACK. Wciśnięcie osi enkodera zatwierdza wybór.

Fotografia 8. Ekran powitalny
Fotografia 9. Menu główne: wykonanie lub modyfikacja zapisanego programu
Fotografia 10. Podmenu wyboru programu do zmiany

Po wejściu w wybrany program zostaną pokazane jego parametry (fotografia 11). Obowiązują tutaj następujące reguły:

  • Zmiana każdej wartości (temperatury/czasu/trybu pracy mieszadła) odbywa się poprzez kręcenie osią enkodera.
  • Przechodzenie pomiędzy ustawianymi wartościami odbywa się poprzez wciskanie przycisku START (SW1).
  • Wyjście z ustawiania do podmenu wyboru programu, wraz z zapisaniem do pamięci EEPROM wszystkich nastaw, dokona się po przyciśnięciu przycisku STOP (SW2).
  • Wciskanie osi enkodera nie daje żadnej reakcji.
Fotografia 11. Edycja wybranego programu

Jeżeli w danym wierszu temperatura jest zakreskowana (najniższa pozycja do ustawienia enkoderem), wykonywanie programu zostanie zakończone po dotarciu do niej. Dalsze wiersze nie będą odczytane. Dzięki temu, można konstruować programy o długości mniejszej niż wszystkie sześć temperatur.

Temperaturę można ustawiać w zakresie 1...99ºC, a czas jej trwania w zakresie 0...240 min.

Do wyboru jest pięć trybów pracy mieszadła (MIXER):

  1. ON – stale włączone.
  2. OFF – stale wyłączone.
  3. DURING BRAKES – załączone tylko podczas trwania zadanej temperatury.
  4. DURING CHANGES – załączone tylko podczas przejść między ustalonymi temperaturami.
  5. 50% ON BRAKES – podczas trwania zadanej temperatury, mieszadło jest cyklicznie włączane i wyłączane co 2 s.

Rozpatrując przykład z fotografi 11, po uruchomieniu wykonywania programu nr 4, zadaniem sterownika będzie, kolejno:

  • osiągnięcie temperatury 6ºC (grzejąc lub chłodząc, w zależności od potrzeby),
  • utrzymanie jej przez 14 minut,
  • osiągnięcie temperatury 21ºC (poprzez ogrzewanie),
  • utrzymanie jej przez 2 minuty,
  • zakończenie działania. Mieszadło cały czas było wyłączone.

Po wyjściu (przyciskiem STOP) z edycji programu, a następnie opcją BACK do menu głównego, można wybrać opcję wykonania zapisanego już programu (fotografia 12). Działanie enkodera jest identyczne, jak w wypadku podmenu wyboru programu do zmiany.

Fotografia 12. Podmenu wyboru programu do wykonania

Po wybraniu jednego z programów – dla przykładu, niech będzie to program czwarty – zostaną załadowane zapamiętane nastawy. Na ekranie znajdzie się również kilka innych rzeczy, które zostały zaznaczone na fotografii 13. Są to, kolejno:

  • Numer wczytanego programu.
  • Ustawiony tryb pracy mieszadła.
  • Zadane temperatury i czasy ich trwania.
  • Aktualna temperatura.
  • Aktualnie wykonywania akcja (HEAT – grzanie, COOL – chłodzenie, kreski – brak akcji).
Fotografia 13. Ekran rozpoczęcia wykonywania zadanego programu

Licznik całkowitego czasu, jaki minął od rozpoczęcia wykonywania programu (łącznie z przerwami na osiągnięcie zadanej temperatury) w minutach i sekundach.

Przyciskiem START można rozpocząć wykonywanie programu, wtedy ekran będzie wyglądał tak, jak na fotografii 14. Temperatura aktualna jest wyższa od zadanej, więc sterownik uruchomił chłodzenie i oczekuje, aż temperatura spadnie do żądanej wartości (komunikat „WAIT” po prawej stronie wskazywanego przez strzałkę wiersza). Kiedy uda się już ją osiągnąć, komunikat „WAIT” zmieni się w licznik czasu trwania tej temperatury, który będzie odliczał w górę – aż do odmierzenia zadanego czasu. Potem będzie wykonywany kolejny wiersz. Jeżeli mieszadło jest aktywne, w prawym górnym rogu zostanie pokazany komunikat „MIXING” wtedy, kiedy ono jest załączone. Może działać według jednego z pięciu pokazanych wcześniej schematów. W tym wypadku jest ono stale wyłączone, toteż nie ma również napisu.

Fotografia 14. Ekran podczas wykonywania programu

Jeśli temperatura osiągnie zadaną wartość, rozpoczęcie odliczania czasu będzie zasygnalizowane pojedynczym piśnięciem. Jeżeli zaś odliczanie czasu danego etapu dobiegło końca, wyemitowane zostaną dwa piśnięcia. Dzięki temu, użytkownik może np. dodać odpowiednie dla danej fazy składniki, co ma bardzo duże znaczenie w browarnictwie. Po zakończeniu trwania całego programu, ekran wraca do wyglądu, jak na fotografii 13. Jedyna różnica jest to, że licznik czasu całkowitego zatrzymuje się, a nie zeruje. Ponowne wciśnięcie START wyzeruje go i rozpocznie cały program od nowa, zaś przycisk STOP w każdej chwili zatrzyma wykonywanie programu. Ponowne wciśnięcie STOP spowoduje powrót do podmenu wyboru programu.

Uwagi

Na koniec, uwaga czysto techniczna – ścieżki na płytce mają określoną wytrzymałość prądową. Zostały one odsłonięte spod soldermaski, aby ułatwić ich pogrubienie przy użyciu np. nalutowanego na nie drutu lub tylko pocynowanie. W przypadku odbiorników pobierających naprawdę wysoką moc, polecam użycie zewnętrznych styczników, których cewki będą załączane przez przekaźniki znajdujące się na płytce sterownika.

Michał Kurzela, EP

 

Wykaz elementów:
Rezystory: (SMD 0805)
  • R1, R3, R5, R7, R9, R20…R25: 10 kΩ
  • R2, R4, R6, R8, R10: 330 Ω
  • R11…R14: 1 kΩ
  • R15, R17, R26: 100 Ω
  • R16, R18, R19: 3,3 kΩ
  • RN1: 4×10 kΩ (SIL5)
Kondensatory: (SMD 0805)
  • C1: 4700 μF/16 V
  • C2, C4…C9, C11, C22, C24, C27: 100 nF
  • C3, C10, C21, C23, C28: 10 μF/10 V
  • C12…C20: 1 μF/25 V
  • C25, C26: 1 nF
Półprzewodniki:
  • B1: KBL10
  • D1…D5: 1N4148 (mini MELF)
  • LED1: 5 mm czerwona, jasna, np. L-53SRC/E
  • T1…T4: BC817
  • US1: LD1117V33C (TO220)
  • US2: 24C04 (SO8)
  • US3: STM32F051K8T6 (TQFP32)
Inne:
  • BUZ1: buzzer z generatorem 3 V, np. PIEZO GEN3V
  • F1: gniazdo do druku, np. PTF-15 + bezpiecznik zwłoczny (5×20) mm 100 mA
  • J1…J4: ARK2 R=7,5 mm
  • J5: goldpin 6 pin, męski, R=2,54 mm
  • J6: ARK3 R=5 mm
  • LCD1: LCD 128×64-CF COG LED b/l-W/KK 3.3V+podświetlenie (opis w tekście)
  • PK1…PK3: przekaźnik RM83-1021-25-1005 lub podobny
  • RS1: ED1212S-24C24-30F lub podobny
  • SW1, SW2: przycisk miniaturowy THT (6×6×17) mm
  • TR1: TSZZ7/003M
  • Czujnik DS18B20 w wodoodpornej obudowie, na przewodzie 1 m, np. DS18B20 MOD–
Artykuł ukazał się w
Elektronika Praktyczna
styczeń 2019
DO POBRANIA
Pobierz PDF Download icon

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik wrzesień 2021

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio wrzesień - październik 2021

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje wrzesień 2021

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna wrzesień 2021

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich wrzesień 2021

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów