Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Termostat na Atmega8 z ustawianiem temp. zadanej.

klops_mops 20 Gru 2008 00:57 16385 31
  • Termostat na Atmega8 z ustawianiem temp. zadanej.

    Witam!

    Na wstępie chciałbym zaznaczyć, iż mój projekt nie jest tak efektywny jak zamieszczane w tym dziale przez innych użytkowników, lecz uważam, że warto go pokazać, chociażby dla początkujących elektroników (takich jak ja).


    1. Pomysł
    Projekt ten powstał z konieczności zastosowania ogrzewania w puszcze z dość czułymi elementami elektronicznymi (odbiornik radiowy), które przy temperaturach poniżej 0 C wymagają ogrzania. Budując termostat, chciałem by był on przede wszystkim tani w budowie, dlatego nie zastosowałem wyświetlaczy LED, LCD (tak bardzo popularnych w projektach z uC), lecz pragnąłem by była zachowana możliwość ustawienia zadanej temperatury oraz odczytu aktualnej temperatury, która panuje w skrzynce. W tym celu zastosowałem dwie diody LED, które spełniają te założenia.


    2. Projekt
    Schemat wykonałem w bardzo popularnym programie - Eagle 4.16r2. Dzięki niemu wykonałem również projekt płytki PCB i przeniosłem go metodą na laminat.

    Schemat termostatu konsultowałem z użytkownikami forum (polegało to na sprawdzeniu popełnionych przez mnie błędów - dziękuję za pomoc), program napisałem sam. Jest to mój pierwszy tego typu projekt, "godny" pokazania na elektrodzie, (choć nie mi o tym decydować).

    Termostat na Atmega8 z ustawianiem temp. zadanej.
    Wiem, iż nie należy on do grupy poprawnie wykonanych schematów (niestety zasad rysownia schematów się nadal uczę), aż wstyd mi go pokazywać.


    3. Budowa
    Sercem układu jest mikroprocesor Atmega8, do niego podłączony jest czujnik temperatury DS18B20. Jak już pisałem formę komunikacji z układem pełnią 2 diody LED. Mikroprocesor można programować za pomocą 2 przycisków. Zastosowałem przekaźnik podłączony za pomocą tranzystora B527, do uC. Całość zasilana może być napięciem stałym od 7V do 23V, dzięki zastosowanemu stabilizatorowi napięcia LM7805.

    Obudowy nie zamierzam wykonywać, z tego względu iż układ będzie pracował w zamkniętej skrzynce na zewnątrz (podwieszona pod dachem domu). Dlatego, też mija się z celem tworzenie obudowy.


    4. Działanie

    Link

    (niedługo dodam zdjęcia)



    Proszę o szczerą ocenę oraz komentarze dotyczące tego termostatu. Programu nie umieszczam, ponieważ nie mam wykonanych w nim komentarzy (jest nieuporządkowany), jak tylko dodam komentarze i go trochę uporządkuję to zamieszczę. Jeżeli ktoś jest zainteresowany zbudowaniem podobnego termostatu to proszę o kontakt.


    EDIT:
    Zgodnie z obietnicą zamieszczam kod programu w postaci .BAS .
    Prowizja może i jest wysoka, ale trochę się męczyłem nad napisaniem tych komentarzy (mogą być literówki, bo się już spieszyłem). Myślę, że nie będzie problemów ze zrozumieniem działania programu. Proszę się nie skarżyć na prowizję: nie chcesz - nie ściągaj. Poza tym za poprawne zgłoszenie post'a łamiącego regulamin forum jest 5pkt. Takich postów jest cała masa. Wystarczy to zrobić i macie punkty. Dzięki temu nawet Elektroda będzie lepsza jakościowo :)


    Pozdrawiam, Wojtek.
    Załączniki:

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    klops_mops
    Poziom 17  
    Offline 
    klops_mops napisał 302 postów o ocenie 58, pomógł 8 razy. Jest z nami od 2008 roku.
  • PCBway
  • #2
    zbyrek
    Poziom 23  
    Mam sugestię. Jeśli temperatura nie wynosi więcej niż 99 °C
    To czerwona dioda może odpowiadać za dziesiątki, a zielona jedności temperatury. Znacznie ułatwiłoby to odczytywanie. :wink:
  • PCBway
  • #3
    klops_mops
    Poziom 17  
    Tak, w fazie pisania programu rozważałem taką możliwość, lecz szybko z niej zrezygnowałem, ponieważ temperatura będzie odczytywana sporadycznie - tylko przy otwieraniu skrzynki. Ma to być coś typu "zamontuje uruchomię i zapomnę", parę razy do roku jedynie będzie ktoś tam "zaglądał".

    Każdy pomysł jest dobry - zależy kto co woli.
  • #4
    Balu
    Poziom 38  
    No i ja powiem:)
    Co się tutaj rzadko dość zdarza, schemat nie zawiera rażących błędów merytorycznych!
    Respect! 100nF jest gdzie powinno, rezystory na diodach etc!

    Starannie zrobione, a co najważniejsze... FUNKCJONALNE!.
  • #5
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #6
    bolek
    Specjalista - oświetlenie sceniczne
    dziś istnieją czujniki z funkcja termostotu, które do pracy nie potrzebują procesora- nie pościej?
  • #7
    Miroslaw Pajdak
    Poziom 14  
    Witam.
    Klops_mops napisał:
    Obudowy nie zamierzam wykonywać, z tego względu iż układ będzie pracował w zamkniętej skrzynce na zewnątrz (podwieszona pod dachem domu)

    Jak będziesz wiedział czy układ wykonuje poprawnie pracę tzn. raz nastawisz i umieścisz w obudowie. Czy nie wskazana była by sygnalizacja (dźwiękowa lub wizualna na zewnątrz) gdy np;obwód grzałki się uszkodzi, a temperatura tej puszki jest dla Ciebie przecież bardzo ważna.
    Poza tym miło popatrzeć jak stworzony samodzielnie układ spełnia Twoje oczekiwania i założenia.
    Pozdrawia Mirek
  • #8
    krofffka
    Poziom 11  
    Witam.
    A mógłbyś napisać co to za odbiornik radiowy, który wymaga temperatury powyżej zera - zaciekawiło mnie to. A nie boisz się że procesor może się zawiesić itp. Ja bym zastosował termostat na wzmacniaczu operacyjnym i termistorze, no ale nie było by wtedy możliwości odczytu temperatury.
  • #9
    Madman07
    Poziom 19  
    krofffka napisał:
    Witam.
    A mógłbyś napisać co to za odbiornik radiowy, który wymaga temperatury powyżej zera - zaciekawiło mnie to. A nie boisz się że procesor może się zawiesić itp. Ja bym zastosował termostat na wzmacniaczu operacyjnym i termistorze, no ale nie było by wtedy możliwości odczytu temperatury.


    W takim przypadku autor mógłby zastosować mały trick. Zapisać nastawy do Eepromu i uruchomić Watchdoga. Potem to odczytywać przy starcie.
  • #10
    k4be
    Poziom 31  
    Watchdog na pewno już jest uruchomiony, w końcu to podstawa przy budowie układów, które nie będą nadzorowane :)
    Czemu akurat mega8? Jaki był powód wybrania tego mikrokontrolera?
  • #11
    Balu
    Poziom 38  
    vinetu_ napisał:
    S1 i S2 są bez rezystorów podciagających, o ile S2 podłączony jest do portu C ( ponoć tam jest rezystor podciągający) to S1 nie ma żadnego.

    Nie masz żadnych dziwnych zachowań ?


    Kę? A o wew. pullUpach kolego nie słyszeliśmy?
    Ł.
  • #12
    tomus2k
    Poziom 24  
    Jak termostat to powinien mieć histerezę , w opisie i na filmie nie widać piszesz ustawia się 27 i jak 27 to załącza.
    Chyba że przekaźnik ma służyć za sygnał dźwiękowy osiągnięcia zadanej temperatury ;-)
    Co to jest na schemacie "włącznik" podpięty do portu Megi Pc2 , co nim włączasz ?
  • #13
    klops_mops
    Poziom 17  
    Witam!

    Już odpowiadam na pytania:

    Cytat:
    dziś istnieją czujniki z funkcja termostotu, które do pracy nie potrzebują procesora- nie pościej?

    Tak istnieją, na pewno prostsze byłoby kupienie gotowego termostatu, lecz ja chciałem wykonać to w pełni samodzielnie, a nie z "gotowców". Dzięki temu uzyskałem urządzenie przystosowane pod moje potrzeby. W takim gotowym termostacie jak np tu, nie miałbym możliwości ustawania zadanej temperatury oraz odczytywania panującej.


    Cytat:
    Jak będziesz wiedział czy układ wykonuje poprawnie pracę tzn raz nastawisz i umieścisz w obudowie.Czy nie wskazana była by sygnalizacja (dźwiękowa lub wizualna na zewnątrz) gdy np;obwód grzałki się uszkodzi ,a temperatura tej puszki jest dla Ciebie przecież bardzo ważna.

    Bardzo dobry pomysł z ta sygnalizacją dźwiękową. Pomyślę nad wdrążeniem tego do układu. Dziękuję


    Cytat:
    S1 i S2 są bez rezystorów podciągających, o ile S2 podłączony jest do portu C ( ponoć tam jest rezystor podciągający) to S1 nie ma żadnego.

    Nie masz żadnych dziwnych zachowań ?

    Nie wiem czy kolega wie ale Atmega8 ma możliwość wewnętrznego podciągania pinów do VCC :)


    Cytat:
    Tez taka sugestia,można dołożyć jeszcze jeden przekaźnik który by odcinał zasilanie dla urządzenia w przypadku zbyt niskiej/wysokiej temperatury przez dłuższy czas.

    Owszem, można by było, tylko odcinanie zasilania w przypadku zbyt niskiej temperatury nic tu nie pomoże, ponieważ urządzenie i tak będzie narażone na tą temperaturę. Lepiej żeby pracowało (zarówno termostat jak i odbiornik. Natomiast jeżeli chodzi o odcinanie przy zbyt wysokiej temperaturze to uważam, że takowa nie osiągnie raczej 40 C z działania grzałki - taki przypadek może powstać tylko latem, ale wtedy termostat sam się wyłącza (palić się będzie tylko zielona LED), lub wyłączę go ręcznie..


    Cytat:
    A mógłbyś napisać co to za odbiornik radiowy, który wymaga temperatury powyżej zera - zaciekawiło mnie to.

    Proszę: Link


    Cytat:
    A nie boisz się że procesor może się zawiesić

    Nie zdarzyło mi się jeszcze, by ten procesor przy tak małym "obciążeniu" się zawiesił..


    Cytat:
    Czemu akurat mega8? Jaki był powód wybrania tego mikrokontrolera?

    Jego popularność, dostępność, możliwości oraz to że posiadam ok. 30 takich uC i nie chciałbym kupować nowych innych procesorów.


    EDIT:


    Cytat:
    Jak termostat to powinien mieć histerezę , w opisie i na filmie nie widać piszesz ustawia się 27 i jak 27 to załącza.
    Chyba że przekaźnik ma służyć za sygnał dźwiękowy osiągnięcia zadanej temperatury Wink

    Rozwiązałem to w następujący sposób, tj.
    Ustawiamy temperaturę na 27 C, to gdy spadnie ona poniżej tej temperatury termostat rozpoczyna grzanie, lecz nie do 27 C tylko o 2 stopnie więcej, tj do 29 C i potem znów, gdy temperatura spadnie poniżej zadanej, to rozpoczyna się proces ogrzewania, aż temperatura osiągnie o 2 C więcej od zadanej. W ten sposób wyeliminowałem ciągłe załączanie/rozłączanie przekaźnika.


    Cytat:
    Co to jest na schemacie "włącznik" podpięty do portu Megi Pc2 , co nim włączasz ?

    Jest to takie dodatkowe wyprowadzenie (na goldpinach) jednego pinu z procesora, oraz GND. Może kiedyś się do czegoś przyda...



    Zamieszczam zdjęcie skrzynki, w której będzie pracował termostat. Obecnie dołożony jest do niej akumulator 1,2 Ah 12V, oraz zamontowane są przekaźniki (na tych czarnych podstawkach na szynie). Zdjęcie sprzed ok. roku.
    Termostat na Atmega8 z ustawianiem temp. zadanej.
  • #14
    j4rek
    Poziom 18  
    A co jak chcesz zmienić zadaną temp. na niższą? Masz inkrementację (przypuszczam, że maksymalna wartość to 255) więc klikasz tyle razy, czy reset całości i ustawianie od nowa?
  • #15
    o-o0o-o
    Poziom 11  
    Witam, z tego co napisałeś będziesz do puszki zaglądał bardzo rzadko. Ja się trochę przyczepię do tej redukcji kosztów :) Można by zastosować 2- cyfrowy wyświetlacz LED. Koszt ok 2-3zł ale ile oko mniej meczysz. Ja bym chyba nie wytrzymał 116 mrugnięć :P
  • #16
    klops_mops
    Poziom 17  
    j4rek napisał:
    A co jak chcesz zmienić zadaną temp. na niższą? Masz inkrementację (przypuszczam, że maksymalna wartość to 255) więc klikasz tyle razy, czy reset całości i ustawianie od nowa?

    Max. temperatura zadana to 30 C, gdy zostanie ona osiągnięta, to czerwona dioda mrugnie szybko 3 razy i zaczyna się liczenie od 0.


    o-o0o-o napisał:
    Witam, z tego co napisałeś będziesz do puszki zaglądał bardzo rzadko. Ja się trochę przyczepię do tej redukcji kosztów Smile Można by zastosować 2- cyfrowy wyświetlacz LED. Koszt ok 2-3zł ale ile oko mniej meczysz. Ja bym chyba nie wytrzymał 116 mrugnięć Razz

    Tak, masz racje. Co do tych 116 mrugnięć to na filmie były one osiągnięte w celu pokazania zasady działania. ;)
  • #17
    dawid512
    Poziom 32  
    Przydatne urządzenie ale dodałbym do niego złącze do lcd lub chociaż złącze DB9 żeby można było ustawić/odczytać temp na PC. Po za tym pokusiłbym się o wykonanie przejściówki z USB na RS232 wtedy wszystko leci po USB:)
  • #18
    Galareta
    Poziom 21  
    No tak tylko Jak autor zauważył chciał zredukować koszty;) A przejściówka RS - USB będzie droższa niż ten cały układ ale co do wyświetlacza LED to by się przydał bo liczenie np 20 mrugnięć męczące będzie

    ps. ATmega nie lubi mieć koło siebie przekaźników szczególnie jeżeli duży prąd przez niego ma płynąć podczas przyłączenia wariuje czasami...
  • #19
    klops_mops
    Poziom 17  
    Pomijając koszty, to i tak uważam za niepotrzebną jakąkolwiek komunikację z PC, a zwłaszcza USB... Jak już pisałem skrzynka (a w niej termostat) znajduję się na zewnątrz domu.

    Przyszedł mi teraz jeden pomysł.. Można by było wykonać bezprzewodową transmisję między termostatem, a PC. Umożliwiło by to odczyt danej temperatury, jak i zapis zadanej temperatury. Ale nie wiem czy jest to mi, aż tak potrzebne. Jak bym miał to robić to na jakiś modułach Telecontrolii.

    Co do tego przekaźnika i Atmegi umieszczonej obok niego - nic się nie wiesz itp., gdyż na zasilaniu uC znajduje się kondensator, gdy by go nie było (testowałem) to uC potrafił by szaleć.

    Pozdrawiam
  • #20
    Lukaszinfer
    Poziom 12  
    Naprawdę fajny projekcik. Mam pytanie do wszystkich na tym forum: czy ten projekcik może zostać użyty w wytrawiarce?

    Poprawiłem
    /Faces/
  • #21
    kaktus_c++
    Poziom 18  
    W jakim języku programowałeś?
    Jeśli w C to bardzo by mnie interesował kod (fragment jak odczytuje się temperaturę - może być bez komentarza).
    Chciałem zrobić sobie podobny termostat na Atmega8 do innych celów.
  • #22
    klops_mops
    Poziom 17  
    Możesz go wykorzystać jako termostat w wytrawiarce.

    Program pisałem w bascomie.
  • #23
    Lukaszinfer
    Poziom 12  
    Fajnie. Jeszcze jeśli można to prosiłbym autora o podanie kodu do ATMEGI. A i jak jest zrobiony czujnik temperatury. I na schemacie jak jest wyjście grzałki to nóżka 0 od przekaźnika nie jest nigdzie podłączona.
  • #24
    klops_mops
    Poziom 17  
    1. W filmie było napisane, że czujnik temperatury to DS18B20. A jak jest zrobiony? Nota katalogowa i wszystko jasne :)

    2. Po co kolega wytyka mi "błędy", jeśli sam nie wie co pisze? - Nóżka "0" nie jest wykorzystywana, bo też po co? Proponuje zapoznać się z przekaźnikiem z naciskiem na jego sposoby podłączania i wyprowadzenia..
  • #25
    Lukaszinfer
    Poziom 12  
    Sorki za te moje uwagi ale jak się przyjrzałem lepiej temu schemacikowi to już wszystko wiem.

    Poprawiłem
    /Faces/
  • #26
    markovip
    Poziom 34  
    Witam, osobiście uważam że całe te zamieszanie jest niepotrzebne. Z tego co widać na zdjęciu wyżej z puszki wychodzi bały przewód, z pewnością jest to antena. Więc nie łatwiej i lepiej by było umieścić tą skrzynkę za ścianą (w domu), i na zewnątrz wyprowadzić tylko antenę?

    Poza tym gratuluje udanego projektu.
    Pozdrawiam
  • #27
    klops_mops
    Poziom 17  
    Nie, ponieważ w tym przypadku ten mur z cegły klinkierowej to jest płot.

    W drugim przypadku skrzynka wisi pod dachem, owszem była by możliwość zrobienia tego tak jak Kolega wspomniał. ale kto by chciał mieć w domu taką skrzynkę? Ja na pewno nie..
  • #28
    markovip
    Poziom 34  
    Dlatego napisałem ''osobiście'', zależy też co jest po drugiej stronie, jak np. spiżarka to nie widzę problemu, jak salon to już inna sprawa.
  • #29
    Fengus
    Poziom 13  
    To jak pojawi się program ?? bardzo zależy mi na nim :]
  • #30
    cmario74
    Poziom 10  
    Witam!

    Gratuluję udanego projektu i dołączam się do prośby o zamieszczenie kodu w Bascomie.
    Chętnie skorzystam z doświadczeń kolegi gdyż jestem w trakcie budowy podobnego urządzenia.

    Z góry dziękuję i pozdrawiam

    Cmario74