logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Termostat na przetwornicy AC-DC SR087SG, attiny i DS18S20. Język C, AtmelStudio

wiono 02 Gru 2014 02:52 6843 11
  • Witam wszystkich.

    Chciałbym się pochwalić zaprojektowaniem i wykonaniem termostatu bazującego na wymienionych w tytule podzespołach. W założeniu chciałem stworzyć termostat do swojej trawiarki tak, aby utrzymywać stałą temperaturę trawienia 40°C. Wcześniej po prostu zanurzałem w cieczy trawiącej podłączony do napięcia sieciowego przewód grzewczy. Sądzę, że taka konstrukcja przyda się każdemu, kto potrzebuje niewielkiego termostatu, z ustawioną na stałe podtrzymywaną temperaturą.

    Gdy spojrzałem na dokumentację do przetwornicy SR087SG, uzmysłowiłem sobie, że nadaje się ona wręcz idealnie do sterowania przekaźnikiem za pomocą mikrokontrolera. Dzięki niej mogłem uzyskać:
    - stałe napięcie 5V do zasilania mikrokontrolera oraz czujnika DS18S20,
    - stałe napięcie z przedziału 9-50 V dla cewki przekaźnika,
    - redukcję miejsca w obudowie ze względu na brak transformatora.
    Na mikrokontroler wybrałem ATtiny 85 (może być ATtiny 25). Do 2. pinu mikrokontrolera podpięty jest poprzez biały kabel czujnik DS18S20 i komunikacja z nim odbywa się poprzez protokół 1wire. 3. pin steruje przekaźnikiem za pomocą tranzystora 2n7000. Jako przekaźnik wybrałem G5PA firmy OMRON z napięciem cewki 24 V DC i przełączanym napięciem max. 250 V AC. Przewód grzewczy jest podłączony na schemacie do oznaczeń OUT1 i OUT2. Oporność przewodu grzewczego wynosi 950 Ω.

    Jeżeli chodzi o kod na ATtiny, to nie ma w nim nic wyszukanego. Temperatura jest sprawdzana co 30 sekund i jeżeli temperatura jest niższa niż 40 stopni, na 3. pinie pojawia się stan wysoki (5V), tranzystor 2n7000 zaczyna przewodzić, przekaźnik się załącza i przewód grzewczy grzeje. Gdy temperatura osiągnie bądź przekroczy 40 °C, na 3. pinie pojawia się stan niski i w konsekwencji przewód grzewczy przestaje grzać. Kod został napisany w C za pomocą AtmelStudio (w załączniku). Do komunikacji poprzez 1wire wykorzystałem gotowy kod dostępny na GIThubie (thoj/avr-hutcontrol). Wsad zajmuje 1,3 kB i z powodzeniem zmieści się na ATTiny 25.

    Jeżeli chodzi o koszty, to:
    - płytkę PCB zamówiłem w SATLANDzie za 68,27 zł (10 dniowy termin wykonania),
    - koszt części nie przekracza 30 zł. Prawie wszystko zamówiłem na TME. Najważniejsze z niewymienionych dotychczas części to: mostek prostowniczy DB157S, tranzystor unipolarny IGBT STGD5NB120SZT4, obudowa do zasilacza CP-Z-10A/B.

    Taka mała uwaga. Jeżeli ktoś zechce zbudować termostat w oparciu o moją dokumentację, niech NIE próbuje programować ATTiny, gdy termostat jest podłączony do napięcia sieciowego. W najlepszym wypadku wywali wam korki, jak tylko włożycie wtyczkę USB do komputera, w najgorszym - coś sobie sfajczycie w komputerze. Aby zaprogramować ATTiny w obudowie SMD, musiałem wykonać oddzielną przystawkę do programatora.

    PS: !!! URZĄDZENIE JEST NIEBEZPIECZNE ZE WZGLĘDU NA BRAK IZOLACJI GALWANICZNEJ !!! Podłączałem je do gniazdka, które znajdowało się 1 metr nad trawiarką. Mam w domu instalację elektryczną zabezpieczoną przez wyłączniki różnicowo-prądowe. Pod żadnym pozorem nie zamierzam dotykać trawiarki przed odłączeniem termostatu.

    Może macie jakiś pomysł na bezpieczniejszy element grzewczy do trawiarki, lepszy niż przewód oporowy? To jest mój pierwszy post na elektrodzie, więc proszę o wyrozumiałość. :D



    Termostat na przetwornicy AC-DC SR087SG, attiny i DS18S20. Język C, AtmelStudio Termostat na przetwornicy AC-DC SR087SG, attiny i DS18S20. Język C, AtmelStudio Termostat na przetwornicy AC-DC SR087SG, attiny i DS18S20. Język C, AtmelStudio Termostat na przetwornicy AC-DC SR087SG, attiny i DS18S20. Język C, AtmelStudio Termostat na przetwornicy AC-DC SR087SG, attiny i DS18S20. Język C, AtmelStudio
    Załączniki:
    • Kod_w_C_AtmelStudio_6_2.zip (95.28 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • schemat_i_p__ytka_w_eagle.zip (91 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    O autorze
    wiono
    Poziom 11  
    Offline 
    Specjalizuje się w: cokolwiek po fotonice
    wiono napisał 12 postów o ocenie 9. Mieszka w mieście Wrocław. Jest z nami od 2008 roku.
  • #2 14184352
    bootrecord
    Poziom 14  
    Posty: 55
    Pomógł: 4
    Ocena: 10
    Brawo za odwagę i opisanie swojego rozwiązania na forum. Bardzo dobry artykuł, to się naprawdę chwali.

    A teraz trochę dziegciu.
    1) Dopisz proszę uwagę dla własnego bezpieczeństwa, że używanie tego urządzenia grozi śmiercią oraz że używanie go do pomiaru temp. płynów jest niedopuszczalne.
    2) Takie urządzenie bezwzględnie musi posiadać izolację galwaniczną od sieci 230V. Najprostszy transformator załatwia sprawę.

    Popraw proszę schemat i przeprojektuj urządzenie. Schemat obecny usuń i nigdy nikomu nie pokazuj. Nie używaj go proszę jeśli nie planujesz spotkania ze św. Piotrem.

    Pozdrawiam
  • #3 14184400
    tronics
    Poziom 38  
    Posty: 5082
    Pomógł: 359
    Ocena: 845
    Cytat:
    2) Takie urządzenie bezwzględnie musi posiadać izolację galwaniczną od sieci 230V. Najprostszy transformator załatwia sprawę.

    Myślę, że koledze właśnie chodziło o małe wymiary i dużą sprawność - tutaj mała przetwornica impulsowa flyback da radę zamiast tego niebezpiecznego bucka i dodatkowo nie będzie problemu z programowaniem przy włączonym urządzeniu. A trafo do flybacka i tak zabierze dużo, dużo mniej miejsca niż zwykłe.
  • #4 14184436
    wiono
    Poziom 11  
    Posty: 12
    Ocena: 9
    Dzięki za odpowiedź. Następna wersja będzie na flybacku. Schemat usunąłem, żeby nikt nie pokusił się o jego zbudowanie. Przetwornica SR087SG według dokumentacji nie nadaje się do współpracy z transformatorem
    Cytat:
    Line Transformer
    During initial testing it is tempting to use an isolation transformer or a variable transformer on the AC line. However,the high inductance of the transformer (frequently in the mH’s) interferes with the normal operation of the SR087 and should not be used. This is not a concern with the normal inductance of the AC line or for AC line filters.

    The SR087 draws current from the AC line in short, high current pulses. The transformer’s high inductance tends to limit the current pulse. Furthermore, inductive kickback on the falling edge of the current pulse can create high voltage
    spikes which must be absorbed by the transient protector.
  • #5 14184530
    bootrecord
    Poziom 14  
    Posty: 55
    Pomógł: 4
    Ocena: 10
    Proponuje aby wykorzystać zasilacze od telefonów komórkowych. Są małe i powinno się udać wcisnąć je do obudowy. Wiąże się to jeszcze z wymiana przekaźnika na mniejsze napięcie np 5V ale wtedy cały układ może być zasilany z 5V. Jak położysz przekaźnik to taki zasilacz się zmieści w obudowie.

    Pełno zasilaczy można znaleźć w pojemnikach ze zużytym sprzętem elektronicznym lub popytać znajomych. Lepiej użyć markowego zasilacza ze sprzężeniem zwrotnym na transoptorze, które dokładnie stabilizuje napięcie. Ostatecznie taki zasilacz można przestawić na inne napięcie.

    Jeszcze jedno usprawnienie. Przekaźnik jest dobry ale często ulega awarii, wykańczają go częste przełączenia oraz obciążenia nierezystancyjne. Jak taki regulator będziesz wykorzystywał sporadycznie to wystarczy, jeśli miałby działać ciągle to proponuje optotriak i triak jako element wykonawczy.

    Kolejnym usprawnieniem może być regulacja PID. Będzie znacznie dokładniejsza ale nie nadaje się w połączeniu z przekaźnikiem (szybko go wykończy). Takie rozwiązanie do trawiarki nie jest konieczne.
  • #6 14185406
    mdm150
    Poziom 27  
    Posty: 1215
    Pomógł: 61
    Ocena: 133
    Gratulacje za odwagę, ale do takich rzeczy to jak wyżej wspomniano lepiej użyć nawet wypatroszonej elektroniki z ładowarki do telefonu, która bedzie bardziej bezpieczna(pełna separacja galwaniczna od napięcia sieci) niż ten scalaczek. Dobrym pomysłem byłoby użycie modułu zasilacza z drukarki laserowej (dostępne są tam napięcia:+24V i +5V a czasem tez i inne)-są tam obecne obwody zasilania i załączania(separacja przez optotriak)"grzałki". Wtedy by odpadło użycie przekaźnika bo tam miałbyś triaka. Jedyny chyba minus tego ostatniego to nieco większe wtedy gabaryty urządzenia-przy użyciu wypatroszonej elektroniki z ładowarki raczej byś nie odczuł na zwiększeniu gabarytów.
  • #7 14187184
    maciek_1992
    Poziom 13  
    Posty: 155
    Ocena: 13
    Projekt ciekawy jednak ja rozwiązałbym to inaczej (przy okazji dużo taniej).
    1. Tak mało skomplikowaną płytkę można zrobić bez problemów w domowych warunkach- tym bardziej, że wspominałeś o "twojej trawiarce" więc chyba masz jakieś pojęcie w wykonywaniu płytek PCB. Wykonanie takiej płytki wyniosłoby ok 10zł jeśli musiałbyś kupić wytrawiacz. Co prawda nigdy nie robiłem solder maski w domu więc nie wiem jakie są tego koszty ale płytkę zawsze można zabezpieczyć w inny sposób. Do tego dochodzi satysfakcja wykonania czegoś samemu.
    2. Zasilanie całego układu można zrealizować tak jak koledzy wcześniej pisali na ładowarce od telefonu (ok 5zł).
    Więc koszt takiego termostatu to tak max do 40zł za całość albo i mniej.

    Ok 2 lat temu zrobiłem termostat do lady chłodniczej 600W: ładowarka usb 750mA->atmega8 (taką miałem w szufladzie)->DS18S20->przekaźnik(nie pamiętam dokładnie jaki) do tego 2 rezystory i kondensator filtrujący zasilanie (można pominąć) wszystko na płytce uniwersalnej za 50gr, działa 24/7 do dzisiaj i ma się dobrze.

    A co do elementu grzejnego z często widzę na elektrodzie wytrawiarki z grzałką z akwarium.
  • #8 14187926
    vinetu_
    Poziom 17  
    Posty: 160
    Pomógł: 13
    Ocena: 44
    Projekt spokojnie dałoby się to wykonać na AtTiny13, 1kb to wystarczająco.

    Płytkę mogłeś zrobić sam i zabezpieczyć np lakierem izolacyjnym - może nie wygląda tak ładnie jak zielona maska, ale jest równie skuteczny, wtedy łączny koszt to byłoby < 20pln (laminat, wytrawiacz, lakier).

    Co do ładowarek USB, sam przejechałem sie na dwóch typowych noname, ale po zastąpieniu ich używanymi ładowarkami od głównego dostawcy nadgryzionego jabłka, działają bez przerwy od 4lat (ładowarki 350mA, obciążenie spoczynkowe < 20mA, podczas pracy 110mA)

    Zastosowanie grzałki akwariowej 100W nie byłoby bezpieczniejsze? Sam posiadam 80W dla 2.5l pojemnika, z czego podgrzewam 2L i sprawuje sie wyśmienicie.
  • #9 14188375
    mdm150
    Poziom 27  
    Posty: 1215
    Pomógł: 61
    Ocena: 133
    Owszem, często ładowarki noname mają niestabilne napięcie wyjściowe (od 4,5Vdo nawet 10V), a tzw. firmówki się znajdzie choćby ze starego nieużywanego już fona czy może od znajomych... .
  • #10 14193161
    wiono
    Poziom 11  
    Posty: 12
    Ocena: 9
    W swoim projekcie znalazłem błąd. Jakimś cudem przy temp. 40 °C stan niski na 2 pinie na attiny wynosi 1,35 V. Przy takim napięciu 2n7000 przewodzi. Zamierzam zamienić 2n7000 na 2n7008 i zobaczę czy pomoże.
  • #11 14193406
    Nerwus
    Poziom 18  
    Posty: 339
    Pomógł: 10
    Ocena: 23
    Popraw linie (kosmetycznie wygląda lepiej)

    while (DS18X20_conversion_in_progress()) {}
    na
    while (DS18X20_conversion_in_progress());

    Twoj #define relay_pin to PB4 a w DDRB = (1<<PB3);

    Jesteś pewny, że jest to ok? Czemu nie używasz wspólnego define w całym kodzie? Przy ewentualnej modyfikacji HW możesz mieć problem.
    Proponuje poprawić linie na DDRB = (1<<relay_pin);

    Mam nadzieje, że to rozwiąże twój problem.

    Masz trochę wolnej pamięci wiec można się pokusić o lepsza implementacje wliczając maszynę stanu, nie ma potrzeby co 30s zapisywać do portu.
    Proponuje coś takiego

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Mając już maszynę stanu możesz się pokusić o implementacje histerezy. Nie masz problemów z stabilnością przełączania?
  • #12 14194686
    wiono
    Poziom 11  
    Posty: 12
    Ocena: 9
    Do Nerwus: Z kodem masz rację. Dzięki :D. Mam problemy ze stabilnością przełączania. Zamówiłem parę 2n7008 i chcę jeden wstawić zamiast 2n7000. Z symulacji w LTSpice wynika mi, ze powinien sprawować się lepiej.
    Termostat na przetwornicy AC-DC SR087SG, attiny i DS18S20. Język C, AtmelStudio Termostat na przetwornicy AC-DC SR087SG, attiny i DS18S20. Język C, AtmelStudio
    Do vinetu_, maciek_1992: Wcześniejszą wersję płytki wytrawiłem. Jej jakość nie była najlepsza. Jak chciałem zaprogramować attiny to po podłączeniu zewnętrznego napięcia 5V nie mogłem zaprogramować mikrokontrolera bo programator nie mógł się z nim skomunikować (wszystkie LEDy zielone, Błąd: Failed to enter programming mode. ispEnterProgMode: Error status received: Got 0xc0, expected 0x00, ModuleName: TCF (TCF command: Device:startSession failed.).

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik zaprezentował projekt termostatu opartego na przetwornicy AC-DC SR087SG, mikrokontrolerze ATtiny 85 oraz czujniku DS18S20, mającego na celu utrzymanie stałej temperatury 40°C w trawiarkach. W odpowiedziach podkreślono konieczność zapewnienia izolacji galwanicznej od sieci 230V oraz zasugerowano alternatywne rozwiązania, takie jak użycie zasilaczy od telefonów komórkowych lub modułów zasilających z drukarek laserowych. Wskazano również na problemy z przełączaniem oraz stabilnością układu, co skłoniło autora do zamiany tranzystora 2N7000 na 2N7008. Użytkownicy podzielili się doświadczeniami oraz pomysłami na poprawę projektu, w tym zastosowaniem regulacji PID oraz optotriaków.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA