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

Termostat, uniwersalny sterownik urządzeń ~230V

hiszpan5 26 Lut 2014 14:38 10923 21
  • Termostat, uniwersalny sterownik urządzeń ~230V

    Projekt został zrealizowany na potrzeby sterowania urządzeniami zasilanymi z sieci 230V, świetnie nadaje się jako sterownik do wytrawiarki lub innych tego typu urządzeń, w których konieczne jest utrzymywanie stałej temperatury.

    Układ oparty jest o mikrokontroler ATmega8 firmy Atmel, który zarządza pracą dwóch układów wykonawczych w zależności od zadanej temperatury odczytywanej z cyfrowych czujników podłączonych za pomocą interfejsu 1-Wire.

    Dwa złącza zasilania znajdują się po lewej stronie, układ może być zasilany napięciem stałym z przedziału od 7 do 25V za sprawą popularnego stabilizatora liniowego LM7805. Prąd pobierany przez układ podczas zasilania napięciem 12V to max. 165mA wraz z wyświetlaczem. Jako zabezpieczenie użyty został bezpiecznik o wartości 200mA. Dwie zielone diody informują użytkownika o obecności napięcia przed, jak i za stabilizatorem napięcia.

    Użytkownik ma do dyspozycji 3 przyciski: dwa służące do komunikacji użytkownika z urządzeniem (ustawienie żądanej temperatury, histerezy, poruszanie się po MENU) oraz przycisk RESET. Obok przycisków znajduje się złącze umożliwiające podłączenie zewnętrznych przycisków, które mogą znajdować się na obudowie.

    W górnej części znajduje się 16 pinowe złącze umożliwiające podłączenie dowolnego wyświetlacza LCD. Kontrast wyświetlacza ustawiany jest ręcznie za pomocą potencjometru, natomiast podświetlenie załączane jest przez mikrokontroler. Układ posiada dwie diody LED (żółtą oraz czerwoną) oraz buzer. Wymienione elementy w zależności od potrzeb użytkownika mogą informować go o określonych zdarzeniach, np. przekroczenie określonej temperatury.

    Do pomiaru temperatury wykorzystywana jest magistrala 1-Wire oraz podłączone do niej cyfrowe czujniki temperatury DS18b20, które umożliwiają pomiar w zakresie od -55°C do +125°C. Błąd pomiaru w zakresie od -10°C do +85°C to 0,5°C. Odczyt temperatury z wszystkich czujników odbywa się co 750ms. Zaletą magistrali 1-Wire jest możliwość podłączenia wielu czujników do tej samej magistrali.

    Pracą układu zarządza mikrokontroler ATmega8 pracujący z zewnętrznym oscylatorem 16MHz. Programowanie odbywa się poprzez interfejs ISP, którego złącze znajduje na płytce. Program napisany został w języku AVR-GCC. Kod programu będzie rozwijany, dostosowywany do potrzeb użytkownika.

    Układy wykonawcze składają się z optotriaka MOC3042, który izoluje 2 obwody elektryczne od siebie oraz przekazuje informację do triaka BT138, który realizuje funkcję załączenia obwodu wysokiego napięcia. Przełączenie następuje w momencie przecięcia się wartości napięcia z osią odciętych. O załączeniu układu informuje czerwona dioda LED, która znajduje się nad optotriakiem.




    Wszystkie, nie wymienione wyżej, informacje na temat zastosowanych układów znajdują się w notach katalogowych.

    Koszty:
    Prawie wszystkie wykorzystane w projekcie elementy miałem w swoim 'warsztacie', więc podane koszty mają charakter orientacyjny.

    ATMega 8
    Podstawka precyzyjna DIP28
    Stabilizator 7805
    Złącza ARK
    Przyciski microswitch
    Optotriaki MOC3041
    Triaki BT138
    Czujnik DS18B20
    Buzer 1206
    Złącze zasilania
    Diody LED
    Kondensatory
    Rezystory
    Gniazdo bezpiecznika
    x 1
    x 1
    x 1
    x 4
    x 3
    x 2
    x 2
    x 1
    x 1
    x 1
    x 6
    x 9
    x 12
    x 1
    5 zł
    1 zł
    1 zł
    3 zł
    1 zł
    4 zł
    3 zł
    4 zł
    1 zł
    2 zł
    1 zł
    1 zł
    1 zł
    1 zł


    Doliczając koszty wykonania płytki i elementów nie wymienionych wyżej, całkowity koszt wyniósł około 30 zł

    Poniżej znajdują się zdjęcia oraz schematy elektryczne układu wykonane w programie CadSoft EAGLE.
    Termostat, uniwersalny sterownik urządzeń ~230V Termostat, uniwersalny sterownik urządzeń ~230V Termostat, uniwersalny sterownik urządzeń ~230V Termostat, uniwersalny sterownik urządzeń ~230V Termostat, uniwersalny sterownik urządzeń ~230V Termostat, uniwersalny sterownik urządzeń ~230V Termostat, uniwersalny sterownik urządzeń ~230V Termostat, uniwersalny sterownik urządzeń ~230V

    Aktualizacja (10.03.2014):
    Poniżej zamieszczam kod programu oraz film przedstawiający działanie układu.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Program został napisany w języku AVR-GCC. Nie jest on doskonały, napisałem go głównie w celu zaprezentowania działania urządzenia. Nie jest to ostateczna wersja programu, w przyszłości będę go rozwijał.

    Podczas programowania zauważyłem pewną niedogodność a mianowicie zbyt mało przycisków do komunikacji użytkownika z urządzeniem. Moim zdaniem można dobrze wykorzystać możliwości dwóch przycisków, ale optymalna liczba przycisków umożliwiająca sprawne poruszanie się po MENU to trzy lub cztery.

    Objaśnienie działania przycisków:
    W trybie automatycznym:
    - prawy przycisk - zmiana wartości histerezy od 0 do 10 z krokiem 1
    - lewy przycisk - zmiana wartości temperatury zadanej od 15 do 85 z krokiem co 1
    - przycisk prawy oraz lewy jednocześnie - zmiana trybu na manualny
    W trybie manualnym:
    - prawy przycisk - włącz/wyłącz triak 2
    - lewy przycisk - włącz/wyłącz triak 1
    - przycisk prawy oraz lewy jednocześnie - zmiana trybu na automatyczny



    Link


    Fajne! Ranking DIY
  • Relpol
  • #2 26 Lut 2014 16:08
    MuNiO
    Poziom 26  

    Grzałki zasilane z 230V ?
    Musisz zwiększyć przerwy izolacyjne albo wywalić polygon po stronie gorącej.

  • Relpol
  • #3 26 Lut 2014 17:44
    gRRubasek
    Poziom 14  

    Wszystko bardzo ładnie tylko:

    - przydało by się dać po 100n przy przyciskach, nogach zasilających atmege i samym zasilaczu
    - po co dwie diody led na wejściu i wyjściu stabilizatora
    - zgodnie z tym co mówił przedmówca poligony! Masz niby izolację galwaniczną, ale część 220V jest bardzo niebezpiecznie otoczona poligonem.

  • #4 26 Lut 2014 18:13
    barti879
    Poziom 18  

    Bardzo fajny układ. Dałbyś jakiś filmik z pracy? Chodzi głównie o wygląd i poruszanie się po menu ;)

  • #5 26 Lut 2014 18:18
    szczodros
    Poziom 18  

    Nie myślał kolega by zastosować wyjścia przekaźnikowe? Dzięki czemu mamy możliwość podłączenia większej liczby urządzeń (więcej w sensie np możliwość sterowania obwodami DC).
    Nie mniej projekt bardzo udany.
    Pozdrawiam kolegę mechatronika ;)

  • #6 26 Lut 2014 18:57
    hiszpan5
    Poziom 11  

    MuNiO napisał:
    Grzałki zasilane z 230V ?
    Musisz zwiększyć przerwy izolacyjne albo wywalić polygon po stronie gorącej.
    Racja, nie pomyślałem o poligonie przy projektowaniu urządzenia... mój błąd, ale najlepiej uczy się na własnych błędach.

    barti879 napisał:
    Bardzo fajny układ. Dałbyś jakiś filmik z pracy? Chodzi głównie o wygląd i poruszanie się po menu :wink:
    Program jeszcze nie jest w 100% gotowy, jak tylko napiszę do końca na pewno wstawię filmik oraz kod programu w AVR-GCC :)

    szczodros napisał:
    Nie myślał kolega by zastosować wyjścia przekaźnikowe? Dzięki czemu mamy możliwość podłączenia większej liczby urządzeń (więcej w sensie np możliwość sterowania obwodami DC).
    Nie zastosowałem przekaźników dlatego, że występują na nich drgania styków i czas przełączania jest długi, w porównaniu do układów wykonawczych z triakiem , w których można zastosować znacznie szybszą częstotliwość przełączania. W założeniach było sterowanie urządzeniami podłączonymi do sieci 230V a nie obwodami DC, chociaż za pomocą przekaźników można sterować jednym i drugim rodzajem obwodu.

  • #7 26 Lut 2014 19:18
    dgajew
    Poziom 18  

    Koledzy napisali już o polygonie w okolicy triaków, niepokoją mnie też rezystory R3 i R4, ich wartości ograniczają prądy dla optotriaków do około 5 mA, dla MOC3041 to może być za mało, w tekście autor wspomniał o MOC3042, na schemacie umieszczono najbardziej czuły MOC3043 :)

  • #8 26 Lut 2014 19:47
    hiszpan5
    Poziom 11  

    dgajew napisał:
    Koledzy napisali już o polygonie w okolicy triaków, niepokoją mnie też rezystory R3 i R4, ich wartości ograniczają prądy dla optotriaków do około 5 mA, dla MOC3041 to może być za mało, w tekście autor wspomniał o MOC3042, na schemacie umieszczono najbardziej czuły MOC3043 Smile
    Już wyjaśniam:
    - na schemacie widnieje MOC3043 - taki akurat był w EAGLE a niczym się nie różni od MOC3041 i MOC3042 (jeżeli chodzi o układ wyprowadzeń)
    - w tekście wspomniałem o MOC3042 i takie właśnie zastosowałem, co widać na zdjęciach
    - Kolega dgajew ma rację, wartości rezystorów są znacznie zawyżone. Po przeliczeniu wyszło mi, że należało by zastosować rezystory o wartości około 175Ω

  • #9 26 Lut 2014 20:16
    mateusz77892
    Poziom 17  

    Bardzo ładny projekt.
    Co do wyjść DC można by niewielkim kosztem pokombinować z transoptorami.
    Jednak optotriak+triak to bardzo dobry wybór do takiego sterownika.
    Czy czasem kolega nie ma błędu w połączeniu wyświetlacza pin 15,16 ??
    Anoda to + (5V) Katoda to - (GND) a chyba z tego co widzę jest odwrotnie na schemacie oraz płytce?

  • #10 26 Lut 2014 20:25
    hacker17
    Poziom 17  

    Bardzo fajnie zaprezentowałeś swój projekt, spodobało mi się to. Zauważyłem jeden malutki błąd atmega 8 nie może być programowana przez SPI tylko przez ISP.
    Pozdrawiam

  • #11 26 Lut 2014 20:54
    Steryd3
    Poziom 31  

    Bardzo estetycznie wykonany projekt. Oczywiście uwagi moich przedmówców są słuszne i nie ma co ich powielać. Mnie tylko w tekście rzuciło się w oczy programowanie po SPI -niewielka to pomyłka ale chyba powinno być ISP:) Ja mam inne pytanie: czy nie myślał kolega o implementacji do stabilizacji temperatury algorytmu PID??

  • #12 26 Lut 2014 20:55
    hiszpan5
    Poziom 11  

    mateusz77892 napisał:
    Czy czasem kolega nie ma błędu w połączeniu wyświetlacza pin 15,16 ??
    Anoda to + (5V) Katoda to - (GND) a chyba z tego co widzę jest odwrotnie na schemacie oraz płytce?
    Na schemacie oraz w bibliotece EAGLE jest zgodnie ze standardem HD44780, czyli pin 15 to anoda podświetlenia a pin 16 to katoda podświetlenia. W projekcie użyłem wyświetlacza, który ma zamienione te dwa piny dlatego na schemacie są one podłączone odwrotnie.

    hacker17 napisał:
    Zauważyłem jeden malutki błąd atmega 8 nie może być programowana przez SPI tylko przez ISP.
    Ten malutki błąd już poprawiłem :)

    krzysiekdg napisał:
    Rewelacyjny projekt.
    Wgraj jakiś film gdzie jest pokazane działanie układu?

    Można prosic o wsad do atmegi?

    hiszpan5 napisał:
    Program jeszcze nie jest w 100% gotowy, jak tylko napiszę do końca na pewno wstawię filmik oraz kod programu w AVR-GCC :smile:


    Steryd3 napisał:
    Ja mam inne pytanie: czy nie myślał kolega o implementacji do stabilizacji temperatury algorytmu PID??
    Myślałem o takim algorytmie, może w kolejnej wersji uda mi się go zaimplementować :)

  • #13 26 Lut 2014 21:09
    krzysiekdg
    Poziom 13  

    A moze dodaj jeszcze opcje czasu tzn wybór godziny załączenia i wyłączenia obu wyjść.
    Projekt byłby bardziej uniwerslny i praktyczniejszy.

  • #14 27 Lut 2014 20:10
    Tomiks
    Poziom 13  

    krzysiekdg napisał:
    A moze dodaj jeszcze opcje czasu tzn wybór godziny załączenia i wyłączenia obu wyjść.
    Projekt byłby bardziej uniwerslny i praktyczniejszy.


    Ustawianie musiałoby być z rozdzielczością co najmniej pojedynczych milisekund, skoro założenia wykluczyły zastosowanie przekaźników ze względu na duże czasy przełączania.
    To chyba pierwszy ze spotkanych tu na Elektrodzie projektów termostatu, który miałby się nadawać do stabilizacji obiektów o tak małej bezwładności termicznej jak np. włókno żarówki.

  • #15 28 Lut 2014 10:18
    survivour
    Poziom 2  

    Czy ten termostat mógłby posłużyć do sterowania grzejnikiem i utrzymywania stałej temperatury w pomieszczeniu ?

  • #16 10 Mar 2014 17:25
    hiszpan5
    Poziom 11  

    Myślę, że ten układ mógł by spełniać taką funkcję. Wszystko zależy od tego jaki zawór byś zastosował. Chodzi mi głównie o sposób jego załączania lub wyłączania (odkręcania/zakręcania).

    P.S.
    W pierwszym moim poście dodałem film przedstawiający działanie układu oraz kod programu.

  • #17 10 Mar 2014 23:52
    jacekele321
    Poziom 9  

    hiszpan5 napisał:
    Myślę, że ten układ mógł by spełniać taką funkcję.

    Pewni mógłby gdyby układa wykonwaczy triaka zastąpić takim, gdzie jest miejsce na radiator i ścieżki mają z pół centymetra i są wzmocnione drutem miedzianym, bo grzejnik to chyba ma coś koło 2.5kW czasami :D
    Ta płytka do grzałki 100W to może i owszem się nada, tyle że na radiatory tam nie ma miejsca, bo kiepsko zostały triaki rozplanowane.

    Moim skoromnym zdaniem złącza ARK są dobre do podpinania bateryjki 9V a nie 230VAC ;)
    Po prostu tam trzeba konkretne złącze dać (np. takie używane do wykonywania instalcji elektrycznej w domu) a nie takie miniaturki, które tylko ładnie wyglądają.

    hiszpan5 napisał:
    przekazuje informację do triaka BT138, który realizuje funkcję załączenia obwodu wysokiego napięcia. Przełączenie następuje w momencie przecięcia się wartości napięcia z osią odciętych.

    Nie lepiej wsadzić tam BTA jakieś z izolowanym tap'em, niż te nieszczęsne BT138 z napięciem 230VAC na tym tap'ie pod radiator?
    Tak czy inaczej odizolowałbym ten radiator, ale czasami kogoś może kusić dotknąć paluchami żeby sprawdzić czy się grzeje triak, no i to średni pomysł w przypadku BT138.
    BTA16 ma izolowanego tego tap'a, ale oczywiście nie sprawdzam palcami czy się coś grzeje w układzie wpiętym do 230VAC.

    A to przecięcie z osią odciętych to już kosmos :D
    Może bym coś wrzycił na elektrodę, ale nie chce mi się za free takich mądrych opisów robić, a moderatorzy jakieś regulaminy mi podsyłają i do poczekalni wrzucają układ z ok. 10ma analogowymi elementami w tym połowa oporników 0.25W, więc szkoda czasu, jak zasada działania czegoś jest tak oczywista, że nie potrzeba nawet 250 znaków do tego i 3ech zdań ;)

  • #18 11 Mar 2014 00:44
    hiszpan5
    Poziom 11  

    jacekele321 napisał:
    hiszpan5 napisał:
    Myślę, że ten układ mógł by spełniać taką funkcję.
    Pewni mógłby gdyby układa wykonwaczy triaka zastąpić takim, gdzie jest miejsce na radiator i ścieżki mają z pół centymetra i są wzmocnione drutem miedzianym, bo grzejnik to chyba ma coś koło 2.5kW czasami Very Happy
    Ta płytka do grzałki 100W to może i owszem się nada, tyle że na radiatory tam nie ma miejsca, bo kiepsko zostały triaki rozplanowane.

    Moim skoromnym zdaniem złącza ARK są dobre do podpinania bateryjki 9V a nie 230VAC Wink
    Po prostu tam trzeba konkretne złącze dać (np. takie używane do wykonywania instalcji elektrycznej w domu) a nie takie miniaturki, które tylko ładnie wyglądają.

    Źle zrozumiałem a propos tego grzejnika, myślałem o sterowaniu zaworem elektrycznym...
    Natomiast do grzejnika elektrycznego taki termostat nie nadaje się ponieważ jak kolega jacekele321 napisał, taki grzejnik pobiera bardzo duży prąd. Godne uwagi jest również to, że na obudowie triaków BT138 pojawia się napięcie i dotknięcie radiatora lub samego triaka to nie ciekawa sprawa.

  • #19 11 Mar 2014 12:57
    ^Rachel
    Poziom 21  

    hiszpan5 napisał:
    Program został napisany w języku AVR-GCC.


    nie ma takiego języka programowania :D

  • #20 11 Mar 2014 19:48
    jacekele321
    Poziom 9  

    hiszpan5 napisał:

    Źle zrozumiałem a propos tego grzejnika, myślałem o sterowaniu zaworem elektrycznym...
    Natomiast do grzejnika elektrycznego taki termostat nie nadaje się

    Spokojnie tą płytkę się da przerobić pod większe obciażenia jak się dodatkowe uklady wykonawcze podepnie, bo przecież ni ema sensu do podobnych projektów robić różnej elektroniki, tylko kwestia podpięcia przez optoizolatory różnych układów wykonawczych, które maja własne zasilanie i są galwanicznie odizolowane ;)

    Zawsze można wyrzucić z tego układu te triaki, MOC3041 i ten opornik, który w wersji SMD to już w ogóle porażka, bo jest bardzo krótki i podatny na przebicie, nie wspominając o tym ze brakuje tutaj bezpieczników po stronie 230VAC i... po prostu w miejscu gdzie jest wejście MOC3041 po prostu wyprowadzić 2a kabelki a sam układ wykonawczy triaka na MOC3041 poszukać gdzie indziej, gdzie jest to solidnie zrobione.
    Nie widzę sensu pakowania tuż obok mikroprocesora triaków na 230VAC.
    Przecież jest pełno w miarę sensownych układów wykonawczych triaka.
    Tutaj czajniki są załączane z 3ech faz naraz i nawet z warystorem układy wykonawcze triaka, na solidnym radiatorze.
    http://mirley.firlej.org/trojfazowy_modul_wykonawczy

  • #21 19 Kwi 2014 22:48
    Doctore.
    Poziom 18  

    Cytat:

    Steryd3 napisał:
    Ja mam inne pytanie: czy nie myślał kolega o implementacji do stabilizacji temperatury algorytmu PID??


    Cytat:
    A moze dodaj jeszcze opcje czasu tzn wybór godziny załączenia i wyłączenia obu wyjść.
    Projekt byłby bardziej uniwerslny i praktyczniejszy.



    Jestem za!
    Gratulacje dla autora za projekt!
    Jednak SMD i 220V to zły pomysł...



    EDYTA:
    Można do tego układu zastosować wyświetlacz 2x16 bez ZNACZNYCH zmian w kodzie?

  • #22 24 Lut 2018 08:59
    valstus
    Poziom 21  

    Schemat jest kiepskiej rozdzielczości, czy kolega mógłby wrzucić pliki w Eagle?