(3 głosujących) Urządzenie to pierwotnie miało włączać żarówki w 6 pomieszczeniach. Obecnie sterownik zapewnia dodatkowo pomiar temperatury w każdym z pomieszczeń i wyświetlanie informacji na wyświetlaczu LCD. Układ działa w oparciu o mikrokontroler ATMEGA162 a w roli czujników temperatury pracują DS18B20. Urządzenie współpracuje z sześcioma Układami Wykonawczymi znajdującymi się w puszkach podtynkowych wyłączników sieciowych. Na płytce znajduje się miejsce na drugi mikrokontroler na którym można wykonać ściemniacz żarówek jednak ta wersja nie jest aktualnie oprogramowana.
Działanie:Schemat ideowy sterownika przedstawia poniższy rysunek: Sercem układu jest mikrokontroler U1 (ATMEGA162) wraz z elementami X1 (8MHz), C4 (22pF) i C5 (22pF). Drugi mikrokontroler U3 (ATTINY2313) współpracuje z rezonatorem kwarcowym X2 (16MHz) i kondensatorami C6 (22pF) i C7 (22pF). Na układzie U2 (7805) zbudowany jest zasilacz stabilizowany +5V. Kondensatory C1 (470uF), C2 (100uF) i C3 (100nF) a także mostek prostowniczy Br1 (1,5A) współpracują ze stabilizatorem U2. Potencjometr P1 (10k) służy do regulacji kontrastu wyświetlacza W1 (LCD 20x2) a rezystor R7 (22R) ogranicza prąd struktur led podświetlających wyświetlacz. Złącze prog wraz z rezystorami R13 - R16 (330R) umożliwia zaprogramowanie procesora U1. Przycisk S1 umożliwia wykonanie resetu mikrokontrolera w dowolnej chwili. Goldpin sw1 służy do podłączenia panelu sterującego złożonego z impulsatora i dwóch przycisków. Do Złącz wlamp1 (ARK3) i wlamp2 (ARK3) podłączamy przełączniki lamp w kolejnych pomieszczeniach. Zworką Ds_en (goldpin) można odłączyć magistralę 1-Wire od czujników umieszczonych w pokojach, co jest konieczne przy rejestracji nowego czujnika. Rezystory R1 - R6 (330R) ograniczają prąd optotriaków w układach wykonawczych podłączonych do złącz TR1 i TR2. Elementy R19 - R24 (330R) ograniczają prąd diod sygnalizacyjnych D1 - D6. Katodami diod sterują tranzystory T4 (BC547) i T5 (BC547). Prosty interfejs RS-232 zbudowany jest w oparciu o tranzystory T1 (BC558) i T2 (BC548) oraz rezystory R10 - R12 (10k) Budowa:Sterownik można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Płytka w odbiciu lustrzanym dostępna jest tutaj. Montaż należy rozpocząć od wlutowania zworek. W następnej kolejności od strony druku należy zamontować listwy goldpin sw1 i ds_en oraz złącze szufladkowe ds_reg. Złącze programujące można także zamontować od strony druku. Kolejność pozostałych elementów jest dowolna ale dobrze jest lutować elementy w kolejności od najmniejszych do największych. Pod mikrokontroler(y) należy zastosować podstawkę(i). Gdy sterownik ma pracować w wersji podstawowej to zamiast procesora U3 należy wykonać zworki kawałkami przewodów w podstawce tak aby kolejne wyprowadzenia procesora U1 od PC.0 do PC.5 były połączone z rezystorami R1-R6. Jeżeli mikrokontroler U3 będzie wykorzystany jako fazowy regulator mocy żarówek to konieczne będzie zastosowanie Układu Wykrywania Zera. Diody D1 - D6 należy przylutować na takiej wysokości aby wystawały troszeczkę ponad wyświetlacz LCD. Do złącza Zs doprowadzamy napięcie z transformatora o wartości ok 6-7V. Pomocą przy konstrukcji może okazać się schemat montażowy dostępny tutaj. Wykaz Elementów:5x Złącze ARK2 5x Złącze ZARK3 1x Listwa Gold Pin 1x6 1x Listwa Gold Pin 1x8 3x uSwitch 1x Impulsator 1x 22R 4x 22pF 1x Wyswietlacz LCD 20x2 Programowanie:Fragmenty programu napisanego w języku BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/) przedstawione są poniżej: Przerwanie Timera: Prztimer0: Timer0 = 130 Set Flaga_4ms Incr Licznik_mig If Licznik_mig = 100 Then Licznik_mig = 0 Miganie = Not Miganie End If Incr Dzielnik If Dzielnik = 400 Then Dzielnik = 0 Disable Interrupts 1wreset 1wwrite &H55 Select Case Wyswietlany_pokoj Case 1: 1wwrite Czujnik1(1) , 8 Case 2: 1wwrite Czujnik2(1) , 8 Case 3: 1wwrite Czujnik3(1) , 8 Case 4: 1wwrite Czujnik4(1) , 8 Case 5: 1wwrite Czujnik5(1) , 8 Case 6: 1wwrite Czujnik6(1) , 8 End Select 1wwrite &HBE Lsb = 1wread() Msb = 1wread() 1wreset 1wwrite &HCC 1wwrite &H44 Enable Interrupts Temp_aktualna = Msb * 256 Temp_aktualna = Temp_aktualna + Lsb Temp_aktualna = Temp_aktualna / 16 Temp_string(wyswietlany_pokoj) = Fusing(temp_aktualna , "#.##") Set Flaga_wysw_temp End If Return Obsługa Przycisków: Przyciski: If W1 <> Stan_w1 Then Incr Licznik_w1 If Licznik_w1 = 25 Then Stan_w1 = W1 Else Licznik_w1 = 0 End If If W2 <> Stan_w2 Then Incr Licznik_w2 If Licznik_w2 = 25 Then Stan_w2 = W2 Else Licznik_w2 = 0 End If If W3 <> Stan_w3 Then Incr Licznik_w3 If Licznik_w3 = 25 Then Stan_w3 = W3 Else Licznik_w3 = 0 End If If W4 <> Stan_w4 Then Incr Licznik_w4 If Licznik_w4 = 25 Then Stan_w4 = W4 Else Licznik_w4 = 0 End If If W5 <> Stan_w5 Then Incr Licznik_w5 If Licznik_w5 = 25 Then Stan_w5 = W5 Else Licznik_w5 = 0 End If If W6 <> Stan_w6 Then Incr Licznik_w6 If Licznik_w6 = 25 Then Stan_w6 = W6 Else Licznik_w6 = 0 End If If Sw1 = 0 And Sw2 = 1 Then Incr Licznik_sw1 If Licznik_sw1 = 250 Then Licznik_sw1 = 0 Select Case Wyswietlany_pokoj Case 1: Inwersja1 = Not Inwersja1 Case 2: Inwersja2 = Not Inwersja2 Case 3: Inwersja3 = Not Inwersja3 Case 4: Inwersja4 = Not Inwersja4 Case 5: Inwersja5 = Not Inwersja5 Case 6: Inwersja6 = Not Inwersja6 End Select End If Else Licznik_sw1 = 230 End If If Sw2 = 0 And Sw1 = 1 Then Incr Licznik_sw2 If Licznik_sw2 = 250 Then Licznik_sw2 = 0 Poz_menu = 1 Cls Set Flaga_wysw_menu Ledg = 1 Ledr = 1 D1 = 0 D2 = 0 D3 = 0 D4 = 0 D5 = 0 D6 = 0 End If Else Licznik_sw2 = 230 End If Return Fragment procedury sterującej diodami led i triakami (dalsza część analogiczna): Sterowanie: Incr Multiplex_diody If Multiplex_diody = 7 Then Multiplex_diody = 1 Ledg = 0 Ledr = 0 Select Case Multiplex_diody Case 1: D6 = 0 If Stan_w1 = 1 Then If Inwersja1 = 0 Then Tr1 = 1 Ledg = 1 Else Tr1 = 0 Ledr = Miganie End If Else If Inwersja1 = 0 Then Tr1 = 0 Ledr = 1 Else Tr1 = 1 Ledg = Miganie End If End If D1 = 1 Case 2: D1 = 0 If Stan_w2 = 1 Then If Inwersja2 = 0 Then Tr2 = 1 Ledg = 1 Else Tr2 = 0 Ledr = Miganie End If Else If Inwersja2 = 0 Then Tr2 = 0 Ledr = 1 Else Tr2 = 1 Ledg = Miganie End If End If D2 = 1 Case 3: D2 = 0 If Stan_w3 = 1 Then If Inwersja3 = 0 Then ... ... Pętla Główna: Do Gosub Impulsator If Poz_menu = 0 Then Wyswietlany_pokoj = Wyswietlany_pokoj + Rezultat If Wyswietlany_pokoj = 0 Then Wyswietlany_pokoj = 6 If Wyswietlany_pokoj = 7 Then Wyswietlany_pokoj = 1 If Flaga_4ms = 1 Then Flaga_4ms = 0 Gosub Sterowanie Gosub Przyciski End If If Rezultat <> 0 Then Rezultat = 0 Locate 1 , 1 Lcd Nazwa_pokoj(wyswietlany_pokoj) End If If Flaga_wysw_temp = 1 Then Flaga_wysw_temp = 0 Locate 2 , 14 Lcd Temp_string(wyswietlany_pokoj) ; Chr(0) ; "C" End If Else Poz_menu = Poz_menu + Rezultat If Poz_menu = 0 Then Poz_menu = 2 If Poz_menu = 3 Then Poz_menu = 1 If Rezultat <> 0 Or Flaga_wysw_menu = 1 Then Flaga_wysw_menu = 0 Rezultat = 0 Select Case Poz_menu Case 1: Locate 1 , 1 Lcd "Rejestracja DS18B20" Locate 2 , 1 Lcd Nazwa_pokoj(wyswietlany_pokoj) Case 2: Locate 1 , 1 Lcd "Stan lamp po resecie" Locate 2 , 1 Select Case Menu_stan_poczatkowy Case 0: Lcd "tak jak wylacznik " Case 1: Lcd "zawsze wlaczone " Case 2: Lcd "zawsze wylaczone " End Select End Select End If If Flaga_4ms = 1 Then Flaga_4ms = 0 Gosub Przyciski2 End If End If Loop End Zdjęcia Projektu:
|
|||||||||||||||||
sterownik domowy - temperatura
Witam, teraz działa wyświetlana jest ujemna temperatura z minusem, drażni mnie tylko to że jak wyswietlana jest temp. np. 20 stopni to znaki stopni są prawidłowe. Gdy schodzi do jedności temp. to pokazywane są dwie literki "CC" na końcu natomiast jak temp. jest ujemna poniżej 9 to wogóle nie ma"C". Wiem że jest to spowodowane tym że zmienia się ilość wyświetlanych znaków przy przejściach temp. np. z jedności na dziesiątki i wtedy wszystko się przesuwa i zastanawiam się czy nie dałoby się jakoś na ifie albo case zrobić jakoś rozpoznawanie przedziału temp. i odpowiednie przesuwanie wyświetlanej temp. w którąś ze stron np "locate 2,15" jeżeli chodzi o temp. dodatnie w jednościach. ? Czy jest to możliwe ?
sterownik domowy - temperatura
Może można byłoby sprawdzać wartość zmiennej Temp_aktualna i odpowiednio wyswietlać ?
Re: Sterownik
Flaga wyświetlająca jest tutaj:
Trzeba sobie zrobić nową zmienna pozycja i modyfikować jej wartość:
potestuj ten kod i zobacz czy działa jak należy, bo tak na sucho to nigdy nie można być pewnym
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
sterownik domowy - temperatura
Dzięki, teraz wszystko ładnie się wyświetla :) gdybyś mi nie pomógł długo bym dochodził do tego chodź to nie są trudne rzeczy:) na przyszłość już będę wiedział. W sumie to pierwszy raz coś takiego z mikrokontolerami wykonuję, jak skończę zaprezentuję wykonanie.Pozdrawiam ;)
Kilka modułów!
Mirley!
Mam pytanie i prośbę. Czy dało by radę żeby to urządzenie sterowało oświetleniem w 6 pokojach, mierzyło temperaturę w nich, można sterować nim z jednego miejsca wszystkie pokoje?
Dodatkowo chciałbym żeby w każdym pokoju też było takie urządzenie może mniejsze z LCD która by sterowało tylko tym jednym pokojem (Czyli temperatura, oświetlenie wl/wyl, gniazdo,radio, inne - czyli np przekaźniki wl/wyl, data godzina, ew 1 przekaźnik z termostatem itp)
Mogło to być tak zbudowane żeby każdy z pokoi miał swój mikro kontroler i przesyłał do centrali informacje do głównego mikro kontrolera.
Czy dało by radę takie coś zrobić? Oczywiście zapłacił bym za pomoc...
Re: Sterownik C.O
Trzeba by było zrobić do każdego pokoju sterownik i potem wysyłać done do głównego sterownika. To jest dość złożona sprawa więc wykracza poza ramy tego układu. Pisz na maila w tej sprawie
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Sterownik Domowy
Witam Zastanawiam się czy byłaby mozliwość uzupełnienia w/w sterownika o 6 termostatów do regulacji temperatury w pokojach. Mamy odczyt temperatury, a brak regulacji. Była by to bardzo użyteczna dodatkowa funkcja
Re: Termostaty
Można by tak zrobić ale projekt jest na tyle stary że nie warto w tej wersji wprowadzac modyfikacji..... Sam pomysł wielokanałowego prostego termostatu jest ciekawy więc mógłby się taki pojawić w formie dodatkowego urządzenia
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
sterownik
Powstało by fajne urządzenie sterujące temperaturą (ogrzewaniem) w domu, myślę że wiele osób by było zainteresowane
grzanie sie sterownik
Z czystej ciekawosci zapytam: nie grzeje Ci sie 7805 w tym sterowniku?
Re: Sterownik
Trudne pytanie.... już nie pamiętam. Może się nagrzewać bo trochę ma podłączone na wyjściu. Przykręć kawałek blaszki
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Rejestracja DS
Witam Mirku ponownie
Tak przeglądam kod i pytanko mam?
Na czym polega rejestracja DS-ów w projekcie jesli nie ma opcji wyboru danego DS-a do danego pokoju?
Pozdrawiam
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Re: Sterownik
Mało z tego pamiętam bo to stary program, ale wydaje mi się że było to tak że czujnik się rejestrował do danego pokoju który aktualnie był wyświetlany na LCD
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Rezonator
Głupie pytanie ze względu na brak umiejętności angielskiego
czy ATmega162 może chodzić z kwarcem 16MHz ?
Re: M162
Może chodzić na 16MHz
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
sterowanie roletami
Czy w tym sterowniku jest możliwość sterowania, albo przerobienia tak, aby dało się sterować roletami? (Chodzi o sterowanie silniczkiem, serwomotorem, który będzie połączony z roletą)
Re: Sterownik
Nie ma niestety takiej funkcji, a ukłąd jest na tyle stary że nie warto go modyfikowac. Sprawdź inne moje projekty, np Prosty sterownik domowy i do niego próbuj dodać sterowanie silniczkiem
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.