Termostat dwukanałowy – sterowanie wentylatorami – chłodzenie

Urządzenie to pełni funkcję dwukanałowego sterownika wentylatorów, sterowanych w zależności od wartości zmierzonej temperatury. Wyposażone jest w dwa niezależne kanały, z własnymi czujnikami temperatury. Umożliwia ono ustawienie za pomocą jednego potencjometru wszystkich podstawowych wartości. Dodatkowo jest ono wyposażone w podświetlany wyświetlacz LCD, na którym prezentowane są wszystkie najważniejsze dane. Sterownik przeznaczony jest do chłodzenia za pomocą wentylatorów podłączonych do jego wyjść.

Założenia:

Urządzenie spełniło wszystkie założenia. Najwięcej problemów sprawiło zabezpieczenie czujników przed działaniem wody. Urządzenie nie jest przeznaczone do ogrzewania, lecz do schładzania obiektów.

Realizacja:

Po przeanalizowaniu wymagań jakie zostały postawione wobec urządzenia, doszedłem do wniosku, iż najlepszym (najtańszym) rozwiązaniem będzie zastosowanie mikro kontrolera, wybór padł na Atmega8, z racji tego, iż była „na stanie”. Program został napisany w Bascomie AVR, w programie napisałem własne, proste procedury odejmowania liczb zawierających rozwinięcie dziesiętne. Nie używałem zmiennej typu single, ponieważ potrzebuje ona bardzo dużo pamięci RAM. Atmega jest taktowana wewnętrznym rezonatorem 8Mhz. Do Atmegi została dołączona bardzo mała ilość elementów elektronicznych. Na płytce znajduje się dodatkowo stabilizator napięcia Lm7805, który umożliwia w miarę szeroki zakres zasilania urządzenia (zakres ten rozszerzy się po zastosowaniu większego radiatora). Sterownik został wyposażony w wyświetlacz LCD 2×16 znaków, oparty na układzie hd44780. Funkcję czujników temperatury realizują bardzo dobre czujniki firmy Dallas – DS18B20. Układ mocy wyjść sterownika został zrealizowany na tranzystorach NPN BD139, gdzie ich maksymalna obciążalność wynosi 1A (na więcej nie pozwoli odpowiednio dobrany rezystor bazy). Napięcie panujące na wyjściach (wentylatorów) jest równe napięciu, które zasila układ.
Poniżej schemat układu (brakuje tylko diod zabezpieczających na wyjściach, które są podłączone bezpośrednio w gniazdach):

Jak można zauważyć – schemat jest banalnie prosty, najwięcej jest na nim wyprowadzeń.


Płytka została wykonana metodą termo-transferu.


Połączenie wyświetlacza LCD z płytką główną urządzenia zostało wykonane za pomocą taśmy oraz odpowiedniej płytki – przejściówki.

Obudowa:

Jednym z założeń było wykonanie w miarę zgrabnej obudowy do układu. Zastosowana została obudowa uniwersalna typu Z-P4, w której wywiercone zostały odpowiednie otwory. Panel przedni oraz tylny zostały zaprojektowane w programie graficznym, wydrukowane na drukarce laserowej po czym zostały za laminowane. Rolę gniazd wyjść wentylatorów pełni mały moduł z gniazdami RCA. Zasilanie układu podłączą się do przymocowanej z tyłu kostki. Czujniki temperatury podłączone są na stałe do sterownika, za pomocą przewodu o dł. ok. 2,5m. Przyciski zostały zamocowane za pomocą nakrętek, natomiast wyświetlacz LCD został przyklejony do przedniego panelu. Płytka sterownika przymocowana jest do obudowy na metalowych dystansach, które przykręcone są od spodu za pomocą nakrętek.

Czujniki temperatury:

Zastosowane czujniki to DS18B20, wymagane było, aby były one odporne na działanie wody. Znalezienie odpowiedniego rozwiązania kosztowało mnie 4 czujniki oraz 2 tygodnie doświadczeń. Po kilku nieudanych próbach zabezpieczenia ich przed wodą znalazłem (chyba) odpowiedni sposób. Czujniki zostały umieszczone w plastikowym pudełeczku oraz zalane silikonem – silikonem sanitarnym neutralnym. Z racji tego, iż zostały zalane zmniejszyła się ich szybkość reakcji na zmianę temperatury. Jednak nie ma to większego znaczenia, gdy czujniki zanurzone są w wodzie, ponieważ woda sama w sobie ma dość dużą bezwładność cieplną.

Uruchomienie, pierwsze ustawienia:

Easy AdSense by Unreal

Podczas uruchamiania, mikro kontroler sprawdza czy podpięte są dwa czujniki temperatury (jeśli nie, to sterownik dalej się nie uruchamia oraz wyświetlany jest odpowiedni komunikat na LCD), po czym następuje sprawdzenie pamięci EEPROM – jeśli nie znajdują się w niej żadne dane, bądź dane są niepoprawne, wyświetlany jest odpowiedni komunikat informujący, iż należy ustawić parametry pracy urządzenia, po czym kontynuuje swoją pracę.

Ustawienia dokonuje się w bardzo prosty sposób, tj. za pomocą trzech przycisków oraz jednego potencjometru. Dwa przyciski odpowiadają za regulację temperatury progowej – odpowiednio dla kanału 1 oraz 2. Natomiast trzeci przycisk (niebieski) odpowiada za regulację wartości temperatury histerezy. Potencjometr jest uniwersalny – służy do regulacji wszystkich wartości. Naciskając przycisk np. „Kanał 1” przystępujemy do regulacji temperatury progowej kanału pierwszego. Ustawiamy ją za pomocą potencjometru, po odpowiednim ustawieniu ponownie naciskamy przycisk „Kanał 1” – następuje zapis wartości do pamięci EEPROM, oraz powrót do normalnej pracy. Analogicznie ustawia się pozostałe dwa parametry pracy.
Wartość histerezy można ustawić w zakresie 0-4 st. C, przy zachowaniu rozdzielczości 0,1 st. C, natomiast wartość temperatury progowej mieści się w przedziale 10-30 st. C.

Praca:

Zasada działania jest następująca (każdy kanał osobno):
Dokonywany jest pomiar temperatury co ok. 1s, gdy temperatura przekroczy ustawiony próg wtedy pojawia się napięcie na wyjściu, wentylator rozpoczyna chłodzenie. Praca wentylatora trwa tak długo, dopóki wartość temperatury mierzonej nie spadanie poniżej ustawionego progu temperatury pomniejszonego o wartość histerezy – wtedy dopiero wentylator jest wyłączany.

Zapraszam do obejrzenia również drugiego filmu: http://www.youtube.com/watch?v=fYcIt7mQti4

Wyświetlacz LCD:

Podczas normalnej pracy na wyświetlaczu prezentowane są takie dane jak:

Dodatkowo wyświetlacz LCD jest bardzo przydatny podczas nastawiania temperatur progowych – prezentowana jest wtedy na bieżąco ustawiana temperatura za pomocą potencjometru.

Zdjęcia:


18 Responses

Subscribe to comments via RSS

  1. Written by Artur Barciś
    on 10 września 2010 at 21:28
    Odpowiedz · Permalink

    Proszę o wsad wraz z kodem źródłowym do wyżej wymienionego regulatora (Bascom)
    Jak jest możliwość to PCB w Eagle

    Pozdrawiam AB

    • Written by Wojtek
      on 10 września 2010 at 23:04
      Odpowiedz · Permalink

      Proszę o kontakt poprzez formularz kontaktowy.

  2. Written by example
    on 11 grudnia 2010 at 16:40
    Odpowiedz · Permalink

    „Podczas uruchamiania, mikro kontroler sprawdza czy podpięte są dwa czujniki temperatury (jeśli nie, to sterownik dalej się nie uruchamia oraz wyświetlany jest odpowiedni komunikat na LCD)” – Ja jestem zwolennikiem elastycznych rozwiązań, ale poza tym projekt w porządku.

    • Written by Wojtek
      on 12 grudnia 2010 at 0:15
      Odpowiedz · Permalink

      Akurat tutaj było takie założenie, by sterownik nie uruchamiał się, gdy czujniki są uszkodzone lub gdy po prostu nie są podłączone. W innym projekcie podczas awarii/braku czujnika kanał jest wyłączany i układ zachowuje się tak jakby go nie było.

  3. Written by Szymon
    on 15 stycznia 2011 at 16:05
    Odpowiedz · Permalink

    Wszystko ładnie wykonane. Kiedyś robiłem podobny sterowniczek, jednak do zmiany ustawień zastosowałem impulsator, a czujniki przesmarowałem silikonem akwarystycznym i zagrzałem w rurce termokurczliwej.

  4. Written by Piotr
    on 22 sierpnia 2011 at 11:25
    Odpowiedz · Permalink

    Witam
    Projekcik zgrabny i funkcjonalny, mam nadzieję że spełni moje oczekiwania:), w związku z czym – czy można prosić o kod źródłowy? Ponadto – czy byłaby możliwość podłączenia trzeciego wyjścia do podłączenia buzerka pełniącego funkcję alarmu po przekroczeniu jakiejś granicznej temp. na wskutek n.p. uszkodzenia wentylatorka? Oraz – czy programik ma jakiegoś watchdoga?

  5. Written by Mateusz
    on 24 kwietnia 2012 at 19:01
    Odpowiedz · Permalink

    Witam.
    Mógłbyś opisać dokładnie złącza na schemacie? Nie wiem do końca co gdzie jest. Jakbyś mógł przesłać mi również kod programu bedę wdzięczny. Planuje podobny projekt i bardzo byś mi pomógł. Z góry dziękuje.

  6. Written by Mateusz
    on 2 maja 2012 at 21:27
    Odpowiedz · Permalink

    Witam.
    Nie rozumiem dlaczego oba czujniki temperatury są podpięte do tych samych trzech pinów. W jaki sposób temperatura odczytywana jest niezależnie z każdego czujnika???

    • Written by Wojtek
      on 2 maja 2012 at 22:09
      Odpowiedz · Permalink

      Do jednej linii danych może być podpiętych wiele urządzeń. Każde z nich posiada bowiem unikalny 64-bitowy numer identyfikacyjny (adres). Najmniej znaczący bajt adresu oznacza typ urządzenia. Najbardziej znaczący bajt przetrzymuję sumę kontrolną CRC dla poprzednich 56 bitów.

      Więcej informacji: http://pl.wikipedia.org/wiki/1-Wire

      • Written by Mateusz
        on 2 maja 2012 at 22:31
        Odpowiedz · Permalink

        Z tego wynika, że przy zastosowaniu czujników wilgotności sy-hs-220 wyjścia czujników muszę podłączyć do osobnych wyprowadzeni uC. Z dokumentacji wnioskuje, że czujniki nie korzystają z 1-Wire. Nie mylę się?

        • Written by Wojtek
          on 3 maja 2012 at 1:12
          Odpowiedz · Permalink

          Tak, dodatkowo pod kanały ADC mikrokontrolera, ponieważ czujnik posiada wyście analogowe (napięcia). Natomiast czujniki DS18B20 są czujnikami z wyjściem cyfrowym

  7. Written by Mateusz
    on 3 maja 2012 at 10:01
    Odpowiedz · Permalink

    Witam.
    Mam jeszcze jedno pytanie. Po co złącze JP6 (Rx/Tx) skoro jest ISP ?

  8. Written by Janek
    on 6 czerwca 2012 at 10:51
    Odpowiedz · Permalink

    Witam, świetny projekt czy można poprosić o wsad do uC i
    wzór PCB? pozdrawiam Janek

  9. Written by Alex Stoica
    on 11 listopada 2012 at 0:08
    Odpowiedz · Permalink

    Witam! Sunt din România și am văzut video despre termostat pe youtube.com. Sunt pasionat de electronică și doresc să construiesc acest circuit acasă. Imi puteți trimite vă rog pe e-mail codul sursă (doar .hex) pentru circuitul din film?
    Scuzați traducerea, dar a fost realizată cu Google Translate. Multumesc frumos!

  10. Written by Alex Stoica
    on 11 listopada 2012 at 0:09
    Odpowiedz · Permalink

    Witam! Jestem z Rumunii i widziałem film na youtube.com termostat. Elektronika jest pasją i chcesz zbudować tego obwodu w domu. Mogę wysłać e-mail prosimy o kod źródłowy (Hex only.) dla obiegu filmowym?
    Przepraszam tłumaczenie, ale to było zrobione z Google Translate. Dziękuję bardzo!

  11. Written by Waldemar Bęben
    on 23 czerwca 2013 at 13:18
    Odpowiedz · Permalink

    Fajny projekt, można podejrzeć źródło ?
    Potrzebuję zmodernizować termostaty pasywne mojej chłodziarko zamrażarki które dziwnie ostatnio działają
    pozdrawiam serdecznie

  12. Written by Fryszka Piotr
    on 23 maja 2015 at 10:04
    Odpowiedz · Permalink

    Witam
    Przepiękny projekt. Brawo
    Jestem akwarysta i ten projekt termostatu miał by zastosowanie w moim hobby. Czy jest mozliwość otrzymania paczki z wsadem do tego projektu. Do wykonania tego termostatu. Bym był bardzo wdzięczny.
    z gory dziekuje i pozdrawiam
    Fryszka Piotr

Subscribe to comments via RSS

Leave a Reply