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

Sterownik domowej wentylacji ATmega16

lukasixthm 19 Sty 2013 22:17 22926 37
  • Sterownik domowej wentylacji ATmega16

    Witam.
    Chciałem zaprezentować konstrukcję sterownika wymuszonej wentylacji w moim domu. Układ powstał jako pierwszy mój projekt na mikroprocesorze. Program opracowywałem na płytce ewaluacyjnej EvB. Płytka to również pierwsze dziecko metody termotransferu (stąd te niedoskonałości).

    Serce układu to ATmega16, która jest tu procesorem o wiele na wyrost zainstalowanym. Do niej miałem jednak swobodny i tani dostęp. Wyświetlacz LCD 4x20 znaków pokazuje godzinę, temperatury: w domu i na zewnątrz, a także aktualnie wybrany tryb pracy.

    Sterownik ma na celu włączać i wyłączać wentylatory od PC 80mm, które mam umieszczone w kratkach wentylacyjnych. Powietrze jest wyciągane na zewnątrz z kuchni, dwóch pokojów i łazienki. W domu niestety panuje wilgoć, nie ma swobodnej cyrkulacji powietrza. Stąd też ten pomysł. Prędkość wentylatorów regulowana jest przez PWM z rozdzielczością 10%. Rodzaj pracy wybieramy z menu. Temperaturę odczytują 2 x DS18b20.

    Krótko o trybach pracy:
    -automatyczny według temperatury: ustawiamy próg temperatury, przy którym wentylatory włączą się na 100%. Po obniżeniu się temperatury o 0,2 stopnia wentylatory kręcą się na 30% obrotów.
    -automatyczny według czasu: ustawiamy prędkość wentylatorów, z jaką będą się kręciły w czasie aktywnym. Dodatkowo nastawiamy dwa czasy: czas pracy i czas "przerwy". W czasie pracy wentylatory kręcą się z ustawiana prędkością, w czasie przerwy ustawione są na sztywno na 30%. Maksymalny czas pracy/przerwy wynosi 60 minut. Ustawianie co 5 min.
    -tryb ręczny: ustawiamy tylko prędkość z jaką mają się kręcić wentylatory. Praca ciągła.

    Układ zasilony jest z transformatora toroidalnego 30W. Uzwojenie wtórne nawijałem ręcznie (a właściwie odwijałem i dowijałem). Powstało trafo z dwoma napięciami: po wyprostowaniu 8V DC dla stabilizatora uC i 16V DC dla wentylatorów.

    Kosztorys:
    - ATmega: 10zł
    - wyświetlacz: 30zł
    - 2 x DS18b20: 7zł
    - obudowa i reszta drobnicy + to, co miałem: 7zł

    Razem ok. 60zł.


    Schemat:

    Sterownik domowej wentylacji ATmega16


    I kilka zdjęć z placu budowy, a także gotowa konstrukcja:

    Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16
    Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16

    I filmik (po piątej próbie wrzucenia filmu na serwer elektrody poddałem się, upload zatrzymuje się na 8%...).





    Zamieszczam program w BASCOMie, który jest dosyć niezoptymalizowany, więc proszę się nie czepiać, tylko ewentualnie udzielać wskazówek...


    AKTUALIZACJA

    Po jakimś roku powstała już poprawiona wersja w której dodałem:
    -temperaturę zasilania instalacji CO
    -temperaturę powrotu instalacji CO
    -temperaturę w zasobniku CWU
    -ciśnienie instalacji CO
    -moc [kW] z jaką pracuje piec (wartość orientacyjna)
    -alarmy akustyczne przy przekroczeniu ustawionych temperatur (za wysokiej i za niskiej)

    Płytka została przeprojektowana i już w nowej wersji wyszła spod frezarki.

    Oto kilka fotek:
    Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16 Sterownik domowej wentylacji ATmega16
    Załączniki:

    Fajne? Ranking DIY
    O autorze
    lukasixthm
    Poziom 23  
    Offline 
    Specjalizuje się w: automatyka ciepłownicza
    lukasixthm napisał 599 postów o ocenie 377, pomógł 60 razy. Mieszka w mieście Ostrowiec Świętokrzyski. Jest z nami od 2009 roku.
  • #2 11813286
    Dawid523
    Poziom 14  
    Projekt ciekawy, jednak jak dla mnie obudowa powinna być mała i kompaktowa, no ale jak kto woli ;) Plus za duży wyświetlacz, na małych komunikaty są zwykle upchane, a tu wszystko czytelne.

    Jedna ważna uwaga - piny AVCC i AREF podciągnij do Vcc, a kwarc z kondensatorami jak najbliżej procesora. Jeśli otwory były wiercone po trawieniu to zapewne wiertło było tępe i zrywało miedź, jeśli wiercone przed trawieniem to trzeba wiercić po ;)
  • #3 11813335
    lukasixthm
    Poziom 23  
    Obudowa na zdjęciach wydaje się ogromna. W rzeczywistości jest do zaakceptowania. W środku nie zostało wiele miejsca, można powiedzieć że wszystko zmieściło się na styk. Kwarc można było jeszcze zbliżyć do atmegi. Będę o tym pamiętał na przyszłość. Również o podciągnięciu AVCC i AREF do Vcc nawet jeśli ADC nie jest wykorzystywane.
  • #4 11813357
    dondu
    Moderator na urlopie...
    Jak każdy tego typu projekt, także i ten jest fajny :)
    Tym bardziej, że to pierwszy Twój projekt na uC.

    W opisie piszesz, że sercem jest ATmega 16, a na schemacie jest ATmega32.

    Zawsze podłączaj wszystkie piny zasilania mikrokontrolera: http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html
    Płącz AVcc z pinem Vcc jakimś przewodem od spodu PCB.

    W przyszłości proponuję, abyś projektował schematy w ten sposób: http://mikrokontrolery.blogspot.com/2011/04/jak-projektowac-czytelne-schematy.html
    Wprawdzie ten jest jeszcze czytelny, ale bardzie skomplikowany projekt (a pewnie taki zrobisz) już czytelny nie będzie.

    EDIT:
    lukasixthm mnie wyprzedził co do AVcc :)
  • #5 11813382
    lukasixthm
    Poziom 23  
    Na schemacie jest ATmega32 ponieważ na evb pracowałem z tym procesorem i tak już zostało na schemacie. W sterowniku siedzi ATmega 16. Artykuł o zasilaniu procesorów znałem już przed tworzeniem projektu... :|
  • #6 11813391
    dondu
    Moderator na urlopie...
    lukasixthm napisał:
    W sterowniku siedzi ATmega 16. Artykuł o zasilaniu procesorów znałem już przed tworzeniem projektu... :|

    Ale AVcc nie podłączyłeś :)
    Może nanieś poprawkę AVcc na schemat + zmianę ATmega16.

    Poza tym super jak na pierwszy projekt :)
  • #8 11813769
    hehehehuhuhu
    Poziom 19  
    Projekt ok i w sam raz dla mnie, czy podzieli się kolega wsadem do atmegi?
  • #9 11813808
    gbd.reg
    Poziom 21  
    Dawid523 napisał:
    Jedna ważna uwaga - piny AVCC i AREF podciągnij do Vcc
    lukasixthm napisał:
    o podciągnięciu AVCC i AREF do Vcc


    Ojj... błąd, błąd tutaj musze wytknąć... Zgazam się jak najbardziej z AVCC, nie tyle podciągnięciem co podłączeniem do VCC, ale AREF się do VCC nie podłącza! Jeśli chcesz użyć jako napięcia odniesienia napięcie zasilania, jest od tego odpowiedni rejestr, nie podłącza się tego na zewnątrz. Zrobisz aktualizację softu, wrzucisz do procka ale się pomylisz i włączysz wewnętrzne źródło odniesienia i co? Mamy zwarcie... Tak właśnie można usmażyć Atmegę. AREF jak już to przez kondensator do GND, ale do VCC NIGDY!
  • #10 11813812
    dondu
    Moderator na urlopie...
    gbd.reg napisał:
    Ojj... błąd, błąd tutaj musze wytknąć... Zgazam się jak najbardziej z AVCC, nie tyle podciągnięciem co podłączeniem do VCC, ale AREF się do VCC nie podłącza! Jeśli chcesz użyć jako napięcia odniesienia napięcie zasilania, jest od tego odpowiedni rejestr, nie podłącza się tego na zewnątrz. Zrobisz aktualizację softu, wrzucisz do procka ale się pomylisz i włączysz wewnętrzne źródło odniesienia i co? Mamy zwarcie... Tak właśnie można usmażyć Atmegę. AREF jak już to przez kondensator do GND, ale do VCC NIGDY!

    Choć generalnie masz rację, bo podłączanie AREF do VCC, to niezalecany sposób, jednakże nie oznacza, że nieprawidłowy. Zwarcie o którym piszesz jest konfliktem, ale nie doprowadzi do uszkodzenia mikrokontrolera, ze względu na wewnętrzną impedancję - przetestowane empirycznie osobiście na ATmega8 :)

    O obu tych tematach pisałem tutaj: http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html
  • #11 11813814
    gbd.reg
    Poziom 21  
    Nie uszkodzi od razu... Po tygodniu, dwóch jednak może już... Przetestowane osobiście :) Błędem według mnie jest, bo usmażyłem tak 3 procki pod rząd i 2 miesiace zajęło mi szukanie problemu (po 2gim procku zacząłem szukać, bo to nie mógł być przypadek). "Usmażenie" objawiało się tym, że cała częśc analogowa przestała działać.
  • #12 11813816
    dondu
    Moderator na urlopie...
    OK :)
    Żeby być pewnym, że to było przyczyną trzeba by zobaczyć schemat całości wraz z częścią zasilającą.

    Ale oczywiście dobrze że autorowi tematu, to wskazałeś, bo nie sprawdziłem jak poprawił schemat.
  • #13 11813817
    gbd.reg
    Poziom 21  
    No skoro wystarczyło przecięcie jednej ścieżki, żeby awarie ustały... nie było innego wyjścia :)
  • #15 11813821
    gbd.reg
    Poziom 21  
    Hehe no nie do końca tak :) Wyłączenie wewn. źródła odniesienia też dawało zadowalający efekt... przyglądałem się sprawie bliżej... z zasilaniem było wszystko w porządku, wiele różnych rzeczy sprawdziłem, wyeliminowałem praktycznie wszystkie inne przyczyny :)

    Może dość tego off topicu? I tak nas z tąd ktoś wytnie :D
  • #16 11813822
    dondu
    Moderator na urlopie...
    Nie jest to offtop, ponieważ słusznie zauważyłeś, że po poprawkach AREF jest połączone z VCC:

    lukasixthm napisał:
    Schemat:
    Sterownik domowej wentylacji ATmega16

    Więc można sugerować pozostawienie AREF własnemu losowi i rozłączenie go od Vcc lub rozłączenie i dodanie do niego kondensatora 100nF do masy bo może w przyszłości coś będzie mierzyć za pomocą ADC.
  • #17 11813881
    Kuniarz
    Moderator Projektowanie
    Ładnie, duży plus za maskownicę (sporo projektów szpeci śrubami, albo wyświetlaczem na wierzchu), jednakże jest też minus - brak jakichkolwiek opisów przycisków. Osoba postronna podchodzi do tego cudeńka i... nie wie co wcisnąć, żeby nie wybuchło. Sam będziesz kiedyś starym sklerotykiem ;-) i będziesz się zastanawiał, po co były te przyciski w projekcie z młodości ;-)
    Pomogłem? Kup mi kawę.
  • #18 11814446
    lukasixthm
    Poziom 23  
    Przesyłam fotkę prawidłowego zasilenia procesora:
    Sterownik domowej wentylacji ATmega16

    Co do opisów przycisków - ich działanie zmienia się w zależności od tego w jakim miejscu menu się znajdujemy. Zorientowanie się w ich funkcjowaniu nie zajmuje więcej niż 10 sekund.
  • #19 11814460
    apelacja
    Poziom 13  
    lukasixthm napisał:
    Na schemacie jest ATmega32 ponieważ na evb pracowałem z tym procesorem i tak już zostało na schemacie. W sterowniku siedzi ATmega 16. Artykuł o zasilaniu procesorów znałem już przed tworzeniem projektu..


    Skoro w sterowniku siedzi M16, to czemu na zdjęciu widnieje podstawka 40PIN a nie 28PIN ???
  • #20 11814488
    Kuniarz
    Moderator Projektowanie
    apelacja napisał:
    Skoro w sterowniku siedzi M16, to czemu na zdjęciu widnieje podstawka 40PIN a nie 28PIN ???


    Od kiedy produkują Atmegi 16 w 28pin obudowach ?
    Pomogłem? Kup mi kawę.
  • #21 11814543
    apelacja
    Poziom 13  
    Kuniarz napisał:
    Od kiedy produkują Atmegi 16 w 28pin obudowach ?

    Sorki nie zwróciłem uwagi...
    Miałem na myśli M168..
  • #23 11814755
    apelacja
    Poziom 13  
    waleryfw napisał:
    Witam i też mam prośbę o wsad do procesora . Może dla autora jest to proste ale inni też kiedyś chcą zacząć . Na pewno dobra baza się przyda

    Skoro chcesz zacząć naukę programowania, to spróbuj w Vamgrafie.. (gdyby nie graficzne środowiska programistyczne, to do dziś dnia bym się męczył na układach CEMOS )

    Graficzne programowanie jest banalnie proste, a przy tym daje olbrzymie możliwości... (Vamgrafa z C nie porównasz, lecz uwierz mi że ten program autora w Vamgrafie można napisać na swobodnym luzie.. )

    Pozdrawiam... :)
  • #24 11815301
    pako8420
    Poziom 12  
    Witam, czy zastanawiał się kolega nad sterowaniem fazowym? Wtedy można by było bezpośrednio zasilać wentylatory typowe dla domowej wentylacji.

    Pozdrawiam
  • #25 11817972
    AndrewS_
    Poziom 16  
    Regulacja wilgotności w pomieszczeniach bez jej pomiaru jest dla mnie jakoś nie do końca skuteczna.
    Którędy doprowadzasz świeże powietrze do pomieszczeń ??
    Żeby coś wyciągać to trzeba tez wpuszczać.
    Masz w oknach nawiewniki ??
  • #26 11818018
    Flaman11
    Poziom 17  
    lukasixthm napisał:
    Zamieszczam program w bascomie, który jest dosyć niezoptymalizowany więc proszę się nie czepiać tylko ewentualnie udzielać wskazówek...


    Proszę bardzo :D

    Staraj się jak najmniej korzystać z funkcji cls, która jest nie przyjemna dla oka. Tekst statyczny umieszczaj przed pętlą, natomiast zmienne wartości przez nadpisywanie wspierając się spacjami, gdy następna wyświetlana wartość w danym miejscu jest krótsza od poprzedniej.

    Wykorzystałeś dwa porty do sterowania czujnikami, można to wykonać nieco inaczej, rozumiem, że zrobiłeś to dlatego, by czujnik na dłuższym przewodzie odpowiadał za wyświetlanie out, a nie in. Wystarczy ID wpisać do pamięci EEPROM i zrobić dodatkową opcję w menu, w którym zamieniamy komórki pamięci eeprom do zmiennej odpowiedzialnej za konkretny czujnik, działa to tak, jakbyś fizycznie przelutował czujnik na przewodzie.

    Jednakże tak jak zrobiłeś też jest ok, ale można było to znacznie bardziej zoptymalizować, masz funkcje 1wread(), a w nawiasie możesz podać nr portu, więc cały podprogram dla obu czujników jest taki sam, poza nr portu, więc dodajemy zmienną np. typu bit, np.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Oczywiście to również można jeszcze bardziej uprościć, potraktuj to jedynie jako wskazówkę na przemyślenie.

    Zresztą gdybyś użył zmiennej do odczytu temperatury typu integer lub word, nie potrzebowałbyś łączyć dwóch zmiennych ze sobą lsb i msb, np.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Dwie sprawy, na które chciałem zwrócić uwagę, pozdrawiam.
  • #27 11818132
    lukasixthm
    Poziom 23  
    pako8420 napisał:
    Witam, czy zastanawiał się kolega nad sterowaniem fazowym? Wtedy można by było bezpośrednio zasilać wentylatory typowe dla domowej wentylacji.

    Pozdrawiam


    Nie przeszło mi to przez myśl. Ale myślę że to nie problem. Moje rozwiązanie spełnia swoje zadanie więc jest ok. Dla większych "zabawek" trzeba by układ zmodyfikować o jakieś triaki..

    Flaman11

    Dzięki za informacje. Trochę mi się rozjaśniło. Tak jak pisałem - to mój pierwszy projekt na uP i sam nie wiedziałem, że uda mi się wyskrobać takiego działającego twora, nawet w bascomie :)

    AndrewS_ napisał:
    Regulacja wilgotności w pomieszczeniach bez jej pomiaru jest dla mnie jakoś nie do końca skuteczna.
    Którędy doprowadzasz świeże powietrze do pomieszczeń ??
    Żeby coś wyciągać to trzeba tez wpuszczać.
    Masz w oknach nawiewniki ??


    Chciałem dodać czujnik wilgotności, jednak ceny trochę mnie przeraziły... Powietrze dostaje się do domu właśnie przez nawiewniki w oknach.
  • #28 11818686
    p4trykx
    Poziom 16  
    lukasixthm napisał:
    Chciałem dodać czujnik wilgotności, jednak ceny trochę mnie przeraziły... Powietrze dostaje się do domu właśnie przez nawiewniki w oknach.

    Zobacz na DHT22 jest w dobrej cenie (~25 zł) na pewnym portalu aukcyjnym albo też bezpośrednio z chińskich sklepów z darmową wysyłką szukaj przez zagraniczny znany portal aukcyjny ;-)
  • #29 11836633
    lukasixthm
    Poziom 23  
    Fajna sprawa z tym DHT, nie widziałem go wcześniej. Jak szukałem to widziałem tylko takie po ~100zł ;) Ale z tego co mi się wydaję to nie miałoby to u mnie sensu, ponieważ właściwe dostosowywanie wilgotności w pomieszczeniu jest procesem trudnym do poprawnego i skutecznego zrealizowania. Należy sterować nie tylko przepływem powietrza, ale także ogrzewaniem - najlepiej w cyklu całodobowym. Mój piec CO jak i instalacja na to fizycznie nie pozwala, a przerabiać jej nie będę.

    Po około tygodniu pracy sterownika z wilgotnością w domu jest troszke lepiej. Okna już tak nie parują. Zachodzą parą do około 10 cm od dolnej ramy - do tej pory kapało na podłogę z parapetu ;))
  • #30 11837415
    p4trykx
    Poziom 16  
    Jakbyś miał DHT22 na dworze to np. podczas deszczu lub mgły gdy wilgotność jest >100% mógłbyś odpouścić sobie wietrzenie. Poza tym warto mniej więcej wiedzieć jaką mamy wilgotność w mieszkaniu. Optymalna to chyba 53% u mnie sezonie grzewczym spada nawet do 30%

    Można też sobie kupić dość tanio zwykły analogowy ze wskazówką. U mnie mimo dość małej wilgotności przy większych mrozach też się para skrapla na dolnej krawędzi szyby. Więc to też zależy od jakości izolacji szyby zespolonej.
REKLAMA