Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Fibaro Fibaro
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterownik domowej wentylacji ATmega16

lukasixthm 19 Sty 2013 22:17 20502 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%...).


    Link


    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!
  • Fibaro
  • #2 19 Sty 2013 22:55
    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 19 Sty 2013 23:05
    lukasixthm
    Poziom 22  

    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 19 Sty 2013 23:10
    dondu
    Moderator Mikrokontrolery Projektowanie

    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 19 Sty 2013 23:15
    lukasixthm
    Poziom 22  

    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... :|

  • Fibaro
  • #6 19 Sty 2013 23:17
    dondu
    Moderator Mikrokontrolery Projektowanie

    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 :)

  • #7 20 Sty 2013 01:25
    baser
    Poziom 13  

    Jak trawiłeś płytkę, skąd wzięły Ci sie takie nadtrawienia? Źle odbity tuner? Czy nadal nie spalił Ci się BD139? Jakiej wartości jest rezystor R5?

  • Fibaro
  • #8 20 Sty 2013 02:12
    hehehehuhuhu
    Poziom 19  

    Projekt ok i w sam raz dla mnie, czy podzieli się kolega wsadem do atmegi?

  • #9 20 Sty 2013 04:16
    gbd.reg
    Poziom 20  

    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 20 Sty 2013 04:29
    dondu
    Moderator Mikrokontrolery Projektowanie

    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 20 Sty 2013 04:33
    gbd.reg
    Poziom 20  

    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 20 Sty 2013 04:41
    dondu
    Moderator Mikrokontrolery Projektowanie

    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 20 Sty 2013 04:45
    gbd.reg
    Poziom 20  

    No skoro wystarczyło przecięcie jednej ścieżki, żeby awarie ustały... nie było innego wyjścia :)

  • #15 20 Sty 2013 04:52
    gbd.reg
    Poziom 20  

    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 20 Sty 2013 04:55
    dondu
    Moderator Mikrokontrolery Projektowanie

    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 20 Sty 2013 08:02
    Kuniarz
    Poziom 36  

    Ł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 ;-)

  • #18 20 Sty 2013 11:32
    lukasixthm
    Poziom 22  

    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 20 Sty 2013 11:35
    apelacja
    Poziom 12  

    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 20 Sty 2013 11:39
    Kuniarz
    Poziom 36  

    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 ?

  • #21 20 Sty 2013 11:52
    apelacja
    Poziom 12  

    Kuniarz napisał:
    Od kiedy produkują Atmegi 16 w 28pin obudowach ?

    Sorki nie zwróciłem uwagi...
    Miałem na myśli M168..

  • #23 20 Sty 2013 12:32
    apelacja
    Poziom 12  

    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 20 Sty 2013 14:10
    pako8420
    Poziom 11  

    Witam, czy zastanawiał się kolega nad sterowaniem fazowym? Wtedy można by było bezpośrednio zasilać wentylatory typowe dla domowej wentylacji.

    Pozdrawiam

  • #25 20 Sty 2013 22:16
    AndrewS_
    Poziom 15  

    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 20 Sty 2013 22:23
    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: basic4gl
    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: basic4gl
    Zaloguj się, aby zobaczyć kod


    Dwie sprawy, na które chciałem zwrócić uwagę, pozdrawiam.

  • #27 20 Sty 2013 22:42
    lukasixthm
    Poziom 22  

    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 21 Sty 2013 02:58
    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 24 Sty 2013 20:57
    lukasixthm
    Poziom 22  

    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 24 Sty 2013 22:55
    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.

TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo