Sześciopunktowy termostat ogrzewania podłogowego

Urządzenie służy do sterowania pompą ogrzewania podłogowego. Posiada 6 programowalnych kanałów temperatury (wraz z pętlą histerezy) oraz jedno wyście przekaźnika. Istnieje możliwość ustawienia sześciu różnych wartości temperatury zadanej (dla każdego pokoju osobno). Sterownik sam wykrywa uszkodzenie czujnika, sygnalizując to na wyświetlaczu LCD, jednocześnie uszkodzenie danego kanału powoduje jego wyłączenie.

Założenia

Realizacja

Sterownik można zasilić napięciem od 8V do 16V, dzięki zastosowanemu stabilizatorowi LM7805 (wraz z małym radiatorem). Układ został oparty na popularnym mikro kontrolerze Atmega32, wraz rezonatorem kwarcowym 16Mhz. Funkcję pomiaru temperatury pełnią czujniki DS18B20, zapewniające spełnienie postawionych wymagań. Komunikację z użytkownikiem zapewnia duży wyświetlacz LCD alfanumeryczny 4×20 znaków. Natomiast nawigowanie w menu sterownika odbywa się za pomocą 5 wielofunkcyjnych przycisków. Dodatkowo umieszczona została zielona dioda LED sygnalizująca pracę przekaźnika (czyli pompy). Każdy kanał ma swoje osobne wejście czujnika temperatury, dzięki temu po uszkodzeniu można go bezproblemowo wymienić i czujnik nadal będzie przypisany do prawidłowego kanału. Podświetlanie wyświetlacza LCD sterowane jest sygnałem PWM (poprzez tranzystor BC547) z mikroprocesora.

Przekaźnik został umieszczony na osobnej płytce PCB, głównie po to by na płycie głównej nigdzie nie panowało napięcie 230V. Na płytce przekaźnika znajduje się dodatkowo bezpiecznik (w zabezpieczającej, plastykowej obudowie) oraz układ gasikowy, który przedłuża czas życia styków przekaźnika.

Schematy są bardzo proste – typowe podłączenie wyświetlacza LCD, czujników DS18B20, oraz trochę elementów na wyprowadzenia, trochę od sekcji zasilania.

Po zaprojektowaniu płytek, przyszedł czas na ich wykonanie. Mozaika ścieżek została przeniesiona metodą termotransferu, później płytki zostały wytrawione w roztworze BC327, powiercone, a na końcu przetarte delikatnym papierem ściernym. Obudowy nie wykonywałem.

Zasada działania

Po poprawny podłączeniu zasilania, czujników oraz przekaźnika urządzenie zostaje włączone. Sterownik posiada dwa tryby pracy – praca ręczna oraz automatyczna. Domyślnie uruchamia się w trybie pracy automatycznej, by włączyć go w trybie pracy ręcznej należy podczas uruchamiania trzymać wciśnięty przycisk MENU/OK. Opuszczenie tego trybu jest możliwe tylko poprzez odłączenie zasilania. Tryb ręczny polega na tym, iż sami (niezależnie od wartości temperatur) możemy sterować wyjściem przekaźnikowym. Odbywa się to za pomocą dwóch przycisków; PRAWO – przekaźnik zostaje załączony, LEWO – przekaźnik zostaje wyłączony. Na wyświetlaczu LCD ukazany jest jego aktualny stan.

Tryb pracy automatycznej – jest to tryb, w którym sterownik porównuje temperatury panujące na wszystkich sześciu czujnikach do tych zapisanych w jego pamięci (zdefiniowane przez użytkownika) i w zależności od wyników włącza, bądź wyłącza przekaźnik. W tym trybie sterownik przed przystąpieniem do pierwszego pomiaru temperatury sprawdza, czy zostały podłączone wszystkie czujniki, rezultat jest wyświetlany na wyświetlaczu LCD. Jeśli jakiś czujnik nie został wykryty sterownik informuje o tym wyświetlając nazwę kanału do którego został on przypisany oraz płynnie ściemnia i rozjaśnia podświetlanie LCD. Po ok. 20s (gdy wszystkie czujniki zostały znalezione czas ten nie istnieje) następuje przejście do normalnej pracy sterownika.

Oprogramowanie mikroprocesora zostało tak napisane, by zapewnić wygodę odczytu ustawionych wartości, jak i prostotę w ich ustawianiu. Organizację danych wyświetlanych na LCD można podzielić na 2 grupy; „pulpity” oraz dwupoziomowe menu. Całość przedstawia poniższy schemat:

Easy AdSense by Unreal

Jak można zauważyć poszczególne pulpity wyświetlają takie dane jak wartość temp. aktualnej, zadanej oraz histerezy. Każdy pulpit posiada 2 ekrany, na których są reprezentowane wartości dla kanałów od 1 do 3 oraz od 4 do 6. Przełączanie pomiędzy pulpitami możliwe jest za pomocą przycisków PRAWO/LEWO, natomiast pomiędzy ekranami GÓRA/DÓŁ. Istnieje możliwość automatycznego (co 6s) przełączania ekranów.

Z poziomu menu istnieje możliwość włączenia/wyłączenie automatycznego przełączania pulpitów oraz automatycznego, płynnego ściemniania podświetlania (podświetlanie świeci tylko delikatnie) wyświetlacza LCD po ok. 15s od czasu ostatniej aktywności któregoś z przycisków.

Ustawienie temperatur zadanych również odbywa się z poziomu menu. Zakres temperatur wynosi (ograniczenie programowe):

Zawsze zachowana jest rozdzielczość ustawień 0,1°C, tak więc możliwe jest ustawienie np. 22,4°C. Dokonując ustawienia danego kanału, jego nazwa oraz wartość ustawionej temperatury mruga na ekranie LCD, sygnalizując jego aktywność. Wartość nastawianej temperatury zwiększa się za pomocą przycisku PRAWO, a zmniejsza przyciskając przycisk LEWO. Dłuższe przytrzymanie przycisków (ok 3s) skutkuje znacznym przyśpieszeniem wzrostu wprowadzanej wartości.

Jeśli czujnik od samego początku włączenia urządzenia, lub podczas jego pracy uległ uszkodzeniu (bądź nie był podłączony) sterownik to wykryje oraz powiadomi o tym użytkownika wyświetlając napis „Err” w miejscu, gdzie normalnie wyświetlana jest wartość temperatury bieżącej kanału, którego dotyczy problem. Kanał taki zostaje natychmiast pomijany w obliczeniach (porównaniach z wartością zadaną) oraz nie ma już wpływu na wyjście przekaźnikowe – sterownik zachowuje się tak jakby ten kanał dla niego nie istniał. Jednak ciągle monitoruje wejście czujnika temperatury, gdy odnajdzie czujnik pracujący prawidłowo automatycznie zaczyna ponownie uwzględniać ten kanał, a na wyświetlaczu LCD zamiast napisu „Err” wyświetlana jest bieżąca temperatura. Dzięki takiemu rozwiązaniu możliwa jest wymiana czujnika bez konieczności ponownego uruchamiania sterownika.

Zasada działania wyjścia przekaźnikowego:
Przekaźnik zostaje załączony, gdy temperatura bieżąca na którymś z kanałów spadnie poniżej temperatury zadanej (wszystko w obrębie jednego, tego samego kanału), pozostaje włączony tak długo, dopóki temperatura bieżąca na tym samy kanale osiągnie wartość zadaną + wartość temperatury pętli histerezy.

Przykład:
Załóżmy ustawienie wartości pętli histerezy na 1 °C
Załóżmy ustawienie wartości temp. zadanej na 22 °C

1. Temperatura bieżąca wynosi 23,3 °C - kanał nie powoduje załączenia przekaźnika
2. Temperatura bieżąca spada poniżej 22 °C (np. 21,9 °C) – kanał powoduje załączenie przekaźnika
3. Temperatura bieżąca zaczyna rosnąć – osiąga 22,5 °C - kanał nadal powoduje załączenie przekaźnika
4. Temperatura bieżąca osiąga 23 °C (czyli temp zad. + temp. histerezy) – kanał przestaje powodować załączenie przekaźnika
Proces się zapętla. Na to czy przekaźnik jest załączony, bądź też nie mają wpływ wszystkie (6) kanały – dla nich wszystkich zasada działania jest dokładnie taka sama jak ta opisana powyżej. Dodatkowo, aby sprawdzić, który kanał wywołuje załączenie przekaźnika (mogą to być nawet wszystkie kanały) nie trzeba skakać po ekranach LCD, aby sprawdzać temperaturę zdana, histerezy, potem jeszcze samemu to obliczać. W tym celu zaraz obok nazwy kanałów znajdują się prostokąty. Możliwe są dwa stany; pusty prostokąt (tylko jego kontury) – kanał nie powoduje załączenia przekaźnika, pełny prostokąt (cały czarny) – kanał powoduje pracę przekaźnika.

Zastosowanie

Urządzenie nie służy do sterowania wartością temperatury wody – mieszadłem. Zadanie to nadal spoczywa na fabrycznym sterowniku pieca. Tutaj chodzi o to by pompa od ogrzewania podłogowego ciągle nie pracowała. Ma się włączać dopiero, gdy temperatura w którymś z pokojów spadnie poniżej zadanej. Ponoć dzięki takiemu rozwiązaniu można znacznie oszczędzić gaz – nie wiem nie sprawdzałem, ponieważ urządzenie nie pracuje u mnie. Czujniki są umieszczone w sześciu pokojach. Każdy czujnik posiada swoją nazwę (dla wygody).

Inne zdjęcia

Posted on Grudzień 24, 2010 at 22:24 by Wojtek · Permalink
In: Termostaty · Tagged with: , , , , , , , , , , , , , ,

8 Responses

Subscribe to comments via RSS

  1. Written by PiotrZ
    on 6 sierpnia 2011 at 22:53
    Odpowiedz · Permalink

    Wszystko ładnie i pięknie tylko scalaki DS18B20 (czujnik pomiaru temperatury) mogą być maksymalnie na 20 cm oddalone od mikroprocesora. Nie można tych scalaków w takim rozwiązaniu umieścić w konkretnych pokojach. Nie chce mi się trochę wierzyć, że te scalaki są umieszczone w różnych pokojach.

    • Written by Wojtek
      on 7 sierpnia 2011 at 12:52
      Odpowiedz · Permalink

      Niestety, ale nie masz racji. Proszę nie pisz takich głupot. Przy zastosowaniu odpowiedniego podciągania linii danych (wystarczy nawet zwykły rezystor 4k7 do VCC) oraz odpowiednich przewodów (w żadnym wypadku skrętki ekranowanej) można uzyskać odległość nawet 40m. Wykonałem już nie jeden system sterowania ogrzewaniem oparty właśnie na tych czujnikach temperatury. Czujniki były rozmieszczone po całym domu. Tak więc nie masz racji pisząc takie rzeczy. Pozdrawiam

  2. Written by Daro_Elektronik
    on 3 października 2011 at 11:12
    Odpowiedz · Permalink

    Kolego PiotrZ gdzieś ty takie głupoty wyczytał. Potwierdzam, że da się 40m a nawet więcej. Osobiście wykorzystałem te czujniki na skrętce komputerowej o długości nawet 100m. Aby dobrze działało zmniejszyłem rezystor podciągający d 1k a przy samym czujniku dodałem kondensator 100n.

  3. Written by Jerzy
    on 19 listopada 2011 at 13:23
    Odpowiedz · Permalink

    Najlepsze okablowanie do onewire to najzwyklejszy przewód instalacyjny 3×1.5 mm2 100 m odległości bez najmniejszego problemu.

  4. Written by Piotr B.
    on 25 stycznia 2012 at 10:32
    Odpowiedz · Permalink

    Zgaduję że pisane w Bascomie? W trybie ręcznym nadpisz ostatnią literę spacją bo wyświetla się podwójnie A.

  5. Written by Tomek
    on 5 lutego 2012 at 14:57
    Odpowiedz · Permalink

    Bardzo fajny projekt. Ja właśnie zastanawiam się nad budową kontrolera do sterowania 3 pompami w CO. Jeżeli jest możliwość otrzymania kodu źródłowego to będę bardzo wdzięczny.
    Pozdrawiam

  6. Written by Artur
    on 19 lutego 2012 at 17:23
    Odpowiedz · Permalink

    Bardzo fajny projekt. Profesjonalne wykonanie.

  7. Written by Janusz
    on 9 lutego 2016 at 9:26
    Odpowiedz · Permalink

    Hmm.. niezły pomysł. Ja mam instalację podłogówki w kilku pomieszczeniach i pasowałoby mi to rozwiązanie z jednym „ale”.
    Tutaj kolega wspominał o sterowaniu większą ilością pomp. Ja mam właśnie 1 pompę ale mam możliwość regulacji na głowicach termostatycznych ale same termostaty są do D i dlatego taki układ wykonawczy, który przymyka głowice mnie osobiście by interesował. A jeśli to problem …. chętnie się podpiszę pod propozycją z wieloma obwodami wykonawczymi ON/OFF.
    Pozdrawiam.

Subscribe to comments via RSS

Leave a Reply