Sterownik Domowy


8.33333
Ocena: None Średnia: 8.3 (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
16x 330R
2x 1k
3x 10k
1x 10k Potencjometr Montażowy

4x 22pF
1x 100nF
1x 100uF Elektrolit
1x 470uF Elektrolit

1x Wyswietlacz LCD 20x2
1x Rezonator Kwarcowy 16MHz
1x 7805
1x ATMEGA162 + Podstawka
1x ATTINY2313 (nie konieczny w wersji podstawowej)
2x BC547B
1x BC548B
1x BC558B
6x Dioda LED 2 kolory
1x Mostek Prostowniczy 1,5A

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:

ZałącznikWielkość
Schemat100.65 KB
Płytka29.97 KB
Płytka (odbicie lustrzane)30.33 KB
Płytka (2 na stronie)58.87 KB
Montowanie42.27 KB
Kod źródłowy15.99 KB



Portret użytkownika gosc

termoregulator

Czy zbudowanie termoregulatora na atmega i z wyświetlaczem LCD jest bardzo skomplikowane i czy mógłbyś pomoc w budowie?

Portret użytkownika mirley

termoregulator

Ma to być układ termostatu pracujący włącz wyłącz, czy może bardziej złożony układ regulatora grupowego itp? Czym dokładnie ma sterować ten układ? Bez problemu pomogę w budowie o ile mi tylko czas pozwoli :)

Ps. O nowych pomysłach i urządzeniach prosze pisać używając formularza kontaktowego (Link kontakt na górze strony)

-

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.

Portret użytkownika gosc

termoregulator

Ma on włączać grzałkę w akwarium. Obciążenie max to ok 100W. Powinien tez mieć możliwość ustawienia histerezy.

Portret użytkownika mirley

termoregulator

Czy w urządzeniu musi być LCD? Może być LED? Czy ma to znaczenie?. Zrobiło by się dwa projekty za jednym zamachem bo była już prośba o termometr z liczeniem średniej itp.

-

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.

Portret użytkownika Szymański

Pomoc w budowie sterownika

Witam.
Oglądam Twoją stronę od pewnego czasu. Spodobał mi się ten projekt. Chciałbym zbudowac podobny ale zupełnie nie znam się na programowaniu. Czy mógłbyś mi w tym pomóc? Zrobiłem cały schemat na którym widac jaki port procesora będzie obsługiwał dany element. Chciałbym aby procesor obsługiwał trzy optotriaki, jeden czujnik temperatury DS18B20, jeden przekaźnik i zmianę koloru diód RGB. Widziałem to wszystko w Twoich projektach i myślę że poradziłbyś sobie z tym wyzwaniem. Jeśli masz odrobinę chęci to proszę, napisz do mnie na gadu-gadu: 2712747. Pozdrawiam i z góry dziękuję.

Portret użytkownika mirley

Budowa sterownika

Chęci do robienia przerożnych projektow i urzadzeń zawsze mam ale akurat ostatnio mam strasznie mało czasu. Wiele osob prosi ostatnio o wszelkiego rodzaju sterowniki, ulepszenia programow itp. a czasami nawet nie dam rady odpisac na pytanie na stronie a co dopiero coś zaprojektować. Odkładam tą prośbę do kolejki razem z innymi i napewno się tym zajmę jednak nie mogę obiecać kiedy dokładnie. Proszę wysłać, korzystając z formularza kontaktowego (u gory strony) krotki opis urządzenia, do czego ma służyć i jak działać

-

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.

Portret użytkownika chszanek

Sterownik Domowy

Hejka.
Mógłbyś dokładniej opisać czemu chcesz użyć 2 uK (Tiny), moim zdaniem wystarczyłoby gdybyś zastąpił atmege 162 na szybsza i w rezultacie płytka byłaby mniej skomplikowana, program przejrzystszy, nie byłoby ewentualnych zakłóceń (atmega<->tyni). Moze i koszt uK by wzrósł jednak jak byś podliczył wszystko.... itp itd. Z góry dzięki
pozdr.

Portret użytkownika mirley

Re: Sterownik

Tu nie chodziło mi o to że brakowało mi mocy obliczeniowej tylko poprostu drugi układ miał pełnić tylko funkcję 6-kanałowego regulatora fazowego mocy żarówek. Tej funkcji nie udało mi się jednak zrealizować więc w finalnym projekcie ten mikrokontroler nie istnieje, jest poprostu zwarty a piny ATMEGi trafiają prosto na złącza ARK.

Człowiek całe życie się uczy i teraz z pewnością zrobił bym o wiele lepiej taki projekt.

-

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.

Portret użytkownika Despero

pamięć sram

Witam
Mam pytanie odnośnie atmegi162.
Chcę zrobić podobny układ, który by wystarowywał wyjścia dany stan, w zależności od komendy rs485. Pytanie jest takie: jak zrobić aby te wyjścia były w stanie w jakim były przed zanikiem prądu, jeżeli taki by wystapił. Domyślam się, że trzeba zapisywać je do pamięci sram. Atmega162 ma 1kB sram, więc wystarczy. Jak zapisać informacje do sram??
Dziękuję z góry za pomoc.
Pozdrawiam

Portret użytkownika mirley

Re; M162

Pamięć SRAM to już wykorzystujesz, bo to ta w której siedzą Zmienne, chodziło ci o pamięc nieulotną EEPROM a tą zapisujesz w bascomie:

Writeeeprom Zmienna, Adres

i czytasz:

Readeeprom Zmienna, Adres 

i to w sumie tyle. Przykład znajdziesz w pomocy do bascoma, w indeksie wpisz writeeeprom i readeeprom a wyskoczy ci przykład

-

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.

Portret użytkownika Despero

uart

A czy jest możliwość, aby tak zaimplementować uart w atmedze, żeby można było zmieniać jego prędkość transmisji, parzystość, kontrola poprzez Dipswitche??

Portret użytkownika mirley

Re: UART

Nigdy nie stosowałem takiego czegoś, więc niestety nie wiem. Wszystko w mikrokontrolerze ustawiane jest w jego rejestrach więc odpowiednie przestawienie rejestru sterującego UART powinno zmienić tryb pracy. Trzeba się zaznajomić z karta katalogową i ewentualnie z pomocą od bascoma

-

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.

Portret użytkownika Despero

Tak rozumiem, tylko chodzi mi

Tak rozumiem, tylko chodzi mi o to, czy można potem nie programując uC, zmienić jego rejestry poprzez ustawienie odpowiednich bitów. czyli, jeżeli ktoś posiada układ bez możliwości programowania, mógł sobie zmienic 9600kb/s na 2400
Dzieki za pomoc

Portret użytkownika mirley

Re: RS232

Rejestrów bez programowanie nie da się przestawić ale odpowiednio napisany program może je przestawiać w zależności np od zworek podłączonych do pinów... tak mi się przynajmniej wydaje...

-

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.

Portret użytkownika sebeq

Problem z zaprogramowaniem

Witam, przeglądając wiele stron opisujących budowę różnych układów mikroprocesorowych muszę stwierdzić że rzetelność oraz poziom Pańskich jest na wysokim poziomie. Jednak natknąłem się na jeden problem związany z zaprogramowaniem Atmegi162. Podłączenie Atmegi jest wporządku, jest wykrywana w bascomie.W zasadzie po raz pierwszy programuję uc.Po kompilacji programu (plik bin i hex) próbowałem wgrać do procesora lecz za każdym razem wyskakuje błąd podczas wgrywania,oraz przy późniejszym sprawdzaniu zgodność oczywiscie też wyskakuje błąd niezgodności z pamięcią. Nie wiem w czym szukać przyczyny, czy jeszcze w podłączeniu czy może ustawieniach programu(kompilatora), czy wartość $crystal=16000000 jest poprawna. Byłbym wdzięczny za jakiekolwiek wskazówki. Pozdrawiam.

Portret użytkownika mirley

Re: Programowanie

Jeśli błąd odczytu jest zawsze w innej komórce pamięci to spróbuj skompilować prościutki programik który miga diodą led i tyle. W zależności czym programujesz mogą wystąpić trudności z wgraniem programu. Szczególnie jest to problem dla dużych programów i programatorów na LPT (bez buforów). Jeśli klikasz identyfikację procesora i wyskakuje Ci atmega162 to znaczy że komunikacja jest dobra.

-

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.

Portret użytkownika sebeq

Re:Problem z zaprogramowaniem

Dzięki za tak szybką odpowiedź. Tak błąd zawsze był w innej komórce, całkiem prawdopodobne że chodzi właśnie o programator. Postaram się albo zakupić dobry gotowy programator z buforem(może stk500)albo sam wykonać, lecz spróbuję w pierwszej kolejności jednak z tą migającą diodą led. Z komunikacją nie mam problemu, nie ma żadnych błędów, wyświetla się producent atmegi oraz są opcje ustawień fusebitów(chodź też chwilkę zajeło mi prawidłowe podłączenie). Przyznam się szczerze że przez moją nieuwagę i niedoświadczenie poprzestawiałem fusebity oraz inne bity konfiguracyjne przez co zablokowałem wcześniej procesor :(.Będę miał wkrótce jeszcze 2 sztuki i wtedy będę próbował.Może również uda się odblowować w jakiś sposób zablokowaną atmegę. Jeszcze raz dzięki wielkie.

Portret użytkownika mirley

Re: Programator

Próbuj zaprogramować 20 razy to w końcu zaskoczy a jak nie to zrób stk200 z mojej strony i będzie chodził lepiej, koszt to kilka złotych

-

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.

Portret użytkownika sebeq

Okej, tak zrobię. Właśnie

Okej, tak zrobię. Właśnie myślałem nad wykonianiem tego programatora.Tak jak mówisz nie wielki koszt. Dzięki. A jeszcze chciałbym zapytać o ten impulsator oraz przyciski na panelu sterowania. Może głupie pytanie ale jak ma wyglądać ich połączenie ze złączem sw1 ?

Portret użytkownika mirley

Re: Sterownik Domowy

Impulsator do pinów PortE.0 i PportE.1 a wspólne wyprowadzenie do masy. Dwa przyciski to Portb.6 i Portb.7

Ps. Skasowałem ciąg twoich wpisów jeden pod drugim.... takie pisanie nie jest zgodne z regulaminem.... poczytaj

-

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.

Portret użytkownika sebeq

Sterownik domowy - pytanie

Witam, właśnie ukończyłem budowę sterownika(Zaprogramowałem na STK200 z twojej strony;)).Zaprogramowałem procesor i włączam układ pokazuje się napis sterownik domowy wersja 0.4 następnie wyświelta się napis "korytarz" oraz w rogu temp. (0.0C nie mam jeszcze czujników) a po chwili pokolei zapalają się wszystkie segmenty pikseli wyświetlacza. Sterownik jeszcze nie reaguje na impulsator oraz przyciski. Pytam czy jest to normalne i dopiero bo podłączeniu czujniów bądź innych układów wykonawczych zacznie działać czy coś źle podłączyłem ?. I czy Pine.2 wyprowadzony na panel sterowania ma być z czymś podłączony bo w kodzie nie widzę żadnej jego definicji.Pozdrawiam.

--------------------

Zauważyłem jeszcze jedną rzecz. Podczas włączania gdy pisze sterownik domowy przez krótką chwilę sterownik reaguje na impulator oraz przyciski. Ale po jakiś 2sek tak jakby jest zawieszony i nie reaguje na nic.

Portret użytkownika mirley

Re: Sterownik

Układ powinien normalnie działać bez czujników temperatury.....projekt za który się zabrałeś jest strasznie stary i nie ma szans żebym pamiętał wszystkie szczegóły z nim związane. Napewno trzeba ustawić fusebity mikrokontrolera żeby działał z zewnętrznym kwarcem, zastosuj też kwarc 16MHz a nie 8MHz bo napewno dałem taki.

Po tym wszystkim spróbuj zaprogramować ponownie procesor i nie powinno żadnych efektów być na wyświetlaczu. Jak nie reaguje na przyciski i impulsator to znaczy że się zawiesił z jakiegoś powodu

-

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.

Portret użytkownika sebeq

Zmieniłem kwarc na 16mhz

Zmieniłem kwarc na 16mhz pomimo iż w fusebitach ustawiałem 8mhz.Teraz działa dużo lepiej ale jeszcze nie jest to 100% sprawne(reaguje na impulsator ale muszę po restarcie poruszać impulsatorem żeby się nie zwiesił).Spróbuję jeszcze raz zaprogramować. Tak pozatym nie wiem czemu ale po zaprogramowaniu procesora mam problem z jego odczytem pomimo iż wszystko działa a fuse bity napewno dobrze poustawiałem.

Portret użytkownika mirley

Re: Fusebity

W fusebitach musisz jeszcze wyłączyć opcje dzielenia przez 8 (CKDIV8), a ustawienie powinno być dla kwarca 8MHz-.... czyli dla częstotliwości ponad 8MHz. Wyłącz tez interfejs JTAG, bit JTAGEN.

-

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.

Portret użytkownika sebeq

Sterownik programowanie

wyłączyłem dzielenie przez 16(jest 16 a nie 8 nie wiem czemu) i bit jtagen. Potestuje jak będę miał czujniki. Pozdrawiam

Portret użytkownika sebeq

Sterownik domowy - programowanie

Przepraszam że Cię tak męczę ale mam pytanie. W atmega162 jest możliwość ustawienia bitu CKOPT ? bo nie mogę nigdzie znaleźć informacji na ten temat. Bo nie wiem czy przyczyną problemów z zaprogramowaną atmegą(wykonywaniem programu) nie jest przypadkiem ustawienie CKOPT.

Portret użytkownika mirley

Re: M162

Mega162 nie ma takiego bitu. Wszystko co musisz ustawić to taktowanie na zewnętrzny kwarc, bez dzielenia i wyłączony JTAG http://mirley.firlej.org/files/ART_fuseM162_05.gif

-

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.

Portret użytkownika sebeq

M162

To dobrze, dzięki że odpisałeś. Czekam jeszcze na DS18B20 to sprawdzę czy wszystko działa. Obecnie po włączeniu sterownika mam nazwe pomieszczenia wraz z temp. w rogu(0st.) mogę wejść do menu rejestracji czujnika oraz wyboru opcji świateł po resecie, i możliwe jest wyjście do głównego menu. Natomiast jeżeli chodzi o sterowanie oświetleniem to wogóle nie mam żadnych opcji ustawiania oświetlenia. W żadnej możliwej opcji diody się nie zapalają. Nie wiem w sumie do końca jak ma wyglądać wejscie do ustawień oświetlenia. Pewnie nie wiele pamiętasz jak to wyglądało ?:(

Portret użytkownika mirley

Re: Sterownik Domowy

Układ oprócz impulsatora ma jeszcze dwa przyciski:

Sw1 Alias Pinb.6
Sw2 Alias Pinb.7

Na portach podanych w kodzie, więcej szczegółów nie pamiętam, trzeba patrzeć do kodu programu

-

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.

Portret użytkownika sebeq

Sterownik domowy

Tak wiem mam na panelu 2 przyciski i impulsator. Ale za nic nie wiem jak ustawić włączanie światła;/

Portret użytkownika mirley

Re: Sterownik

Sterowanik nie umożliwia właczania świateł na czas ani nic z tych rzeczy jeśli dobrze rozumiem co chcesz zrobić. Jeśli masz wyświetlane dane o jednym pomieszczeniu to klikasz Sw1 i zmienia się stan oświetlenia na przeciwny. Celem urządzenia w pierwowzorze było włączenie oświetlenia na całym piętrze z jednego miejsca oraz kontrola temperatury w pomieszczeniach

-

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.

Portret użytkownika sebeq

Sterownik domowy

Aha no to wszystko wporządku:) To myślę że wszystko działa ;) mógłbym na forum opisać własne wykonanie ?:)

Portret użytkownika mirley

Re: Sterownik Domowy

Możesz opisać w dziale "Projekty z tej strony", zamieść zdjęcia i opis co i jak wykonałeś

-

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.

Portret użytkownika sebeq

Sterownik domowy

No to fajnie jak dokończę wszystko to napiszę ;)

Portret użytkownika sorontar

Złącza

Witam,
nie bardzo rozumiem pewną rzecz. Mianowicie: jeżeli oświetleniem sterujemy przez złącza TR1 i TR2, to w jakim celu są złącza wlamp1 i wlamp2?
Pozdrawiam

Portret użytkownika mirley

Re; Sterownik

Do TR1 i TR2 podłączone są układy wykonawcze z triakami a do Wlamp1 i Wlamp2 klasyczne wyłączniki jakie są w domowej instalacji elektrycznej. Dodatkowo oprócz wyłącznikiem tak jak zwykle lampa może być sterowana z 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.

Portret użytkownika sorontar

Re: Sterownik Domowy

Czyli wyłączniki podłączone do wlamp 1 i 2 są przy sterowniku i służą po prostu do wygodniejszego sterowania?
Pozdrawiam

Portret użytkownika mirley

Re: Sterownik Domowy

Nie.. wyłączniki te to klasyczne wyłączniki podtynkowe które stosuje sie w instalacjach elektrycznych, normalnie takim wyłacznikiem zwierasz sobie lampę w pokoju.

Zamysłem tego sterownika było sterowanie w taki sposób żeby lampa dalej była włączana tym samym wyłącznikiem w pomieszczeniu a dodatkowo jeszcze ze sterownika. Od puszki każdego z wyłączników musi iść kabel kilku żyłowy do sterownika na którym będzie działał ds18B20, będzie sterowany triak oraz odczytywany sten wyłącznika

-

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.

Portret użytkownika sebeq

Atmega 162 - sterownik domowy.

Witam, mam już czujniki lecz po podłączeniu wogóle ich nie wykrywa nic się nie zmienia jeżeli chodzi o wyświetlane informacje. Już w sumie nie wiem gdzie szukać przyczyny. Próbowałem nawet programować przez stk200 bez rezystorów które występują w projekcie(bez zmian;/). Może to wina impulsatora ? kurcze gdybyś mi pomógł rozwiązać mój problem, zgłębić się w istotę problemu, wspomógłbym Cię jakąś kwotą.Bardzo mi na tym zależy, Pozdrawiam.

Portret użytkownika mirley

Re: M162

CO próbowałeś programować? nie wykrywa ci czujników czy procesora? Pod dołożeniu czujników tak poprostu to wiadomo że nic nie wykrywa, musisz je zarejestrować w systemie, w menu sterownika w ustawieniach jest opcja rejestracji ds18B20, musisz wybrać z menu odpowiednią opcję. Podczas rejestracji danego czujnika podłaczony musi on być sam do ukłądu a dokładnie włożony w złacze ds_reg na płytce.

Aha między pinem Pa6 procesora a +5V należy dolutować rezystor 4,7k od spodu płytki

-

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.

Portret użytkownika sebeq

Sterownik domowy - problem

Dzięki za odpowiedź. Spróbuje z rezystorem popołudniu. Odpowiadam na pytania: Programować próbowałem procesor(wszystko przebiega pomyślnie i nie ma z tym widocznego problemu). Natomiast problem z rejestracją czujników :(, po podłączeniu do złącza czujnika jak trzeba(gnd,+5,1wire) wchodząc do menu rejestracji czujnika(piszę rejestracja ds18b20) wybieram jednym z przycisków pomieszczenie napisane pod spodem, natomiast drugim zatwierdzam i pojawia się zamiast napisu pomieszczenia "zapisano". Cała procedura nic nie zmienia tak jakbym to samo zrobił bez czujnika. Temperatura się nie zmienia na żadnym pomieszczeniu(0.00).Jednym słowem nie ma żadnej zmiany z czujnikiem czy bez.W razie dokładniejszych pytań pisz.Jeszcze raz wielkie dzięki za odpowiedz.

Portret użytkownika mirley

Re: Rezystor

Rezystor 4,7k między linią sygnałową DS a +5V musi być zamontowany. podczas rejestracji tak jak robiłeś powinno pojawić się "Zapisano" i wtedy jeśli będzie rezystor temperatura powinna się pojawić. Podczas rejestracji każdy czujnik musisz umieścić z osobna w sterowniku a po zakończeniu rejestracji wszystkich czujników. Podłączasz je równolegle(piny Data wszystkich czujników zwarte do siebie)

-

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.

Portret użytkownika sebeq

Wielkie dzięki :D, rezystor

Wielkie dzięki :D, rezystor był kluczem. Lecz mam jeszcze pewne problemy. Pierwszy to diody sygnalizacyjne wogóle nie działają, druga to temperatura nie może zejść poniżej zera bo głupoty pokazuje (temp. 4000 cos stopni).Może wiesz jak rozwiązać te problemy? :) jakbyś pomógł napewno Cię jakoś wspomogę ;)

Portret użytkownika mirley

Re: Diody

Diody sprawdź czy działają bez użycia procesora. Wyjmij go z podstawki i zewrzyj odpowiednie piny w podstawce. Popatrz na schemat, jak podłączysz do pinu 27 w podstawce napięcie +5V to tranzystor T5 sie włączy. Teraz za pomocą drugiego kabelka zwieraj piny 12-17 do +5V, powinny się po kolei zapalać czerwone diody. Teraz zamiast pinu 27 podłącz do +5V pin 28 i tak samo zwieraj piny 12-17, tym razem zapalą się zielone diody. Jeśli diody się nie zapalą to wylutuj jedną i sprawdź czy napewno są to diody ze wspólną anodą a nie czasami ze wspólną katodą

Temperatury ujemne nie są obsługiwane do to termometr do pokoju ale możesz spróbować zamienic fragment programu:

    Temp_aktualna = Msb * 256
    Temp_aktualna = Temp_aktualna + Lsb
    Temp_aktualna = Temp_aktualna / 16
    Temp_string(wyswietlany_pokoj) = Fusing(temp_aktualna , "#.##")

na:

    Temp_ak = Msb * 256
    Temp_ak = Temp_ak + Lsb
    If Msb.7 = 1 then
      Temp_ak = not Temp_ak
      Temp_ak = Temp_ak + 1  
    end if
 
    Temp_aktualna = Temp_ak / 16
    Temp_string(wyswietlany_pokoj) = Fusing(temp_aktualna , "#.##")

a na początku programu dodaj deklarację zmiennej:

Dim Temp_ak as word

-

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.

Portret użytkownika sebeq

sterownik domowy - problem

Jeżeli chodzi o diody to tak jak myślałem wspólna katoda;/ sygnały w porządku. Jeżeli chodzi o zamienienie kodu to nie działa... Cały czas pokazywana jest temperatura 0.06 stopnia i czujnik podpięty nie zmienia tej wartości po zarejestrowaniu. Jutro jeszcze raz dokładnie sprawdzę.

Portret użytkownika mirley

Re: Temperatura

A dodatnia temperatura jest pokazywana dobrze na starej wersji kodu? Czy też są problemy?

-

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.

Portret użytkownika sebeq

sterownik domowy - problem

Dodatnia temperatura na starej wersji kodu jest prawidłowa. Jak są podłączone wszystkie 3 wyprowadzenia czujnika to działa bardzo dobrze w dodatnich temperaturach. Natomiast jak nie ma czujnika to pokazuje 4095.94 stopni.Hmm w sumie nie wiem czemu nie chce pokazywać ujemnych kod wygląda na prawidłowy.Spróbuję dzisiaj jeszcze raz wgrać ten kod.

----

Właśnie sprawdziłem jeszcze raz i tak jak przypuszczałem zapomniałem wcześniej zrestartować po zaprogramowaniu :D. Wielkie dzięki ujemna temperaturka jest w prawidłowa :) tylko zaimplementuję sobie jeszcze znak minusa. Chodź powiem Ci że przy starcie atmegi jak nie kręcę (dynamicznie) impulsatorem to się zawiesza procek ale to już nie ma takiego znaczenia ważne że jak już jest uruchomiony to wszystko pokazuje tak jak trzeba ;), Wielkie dzięki jeszcze raz. Pozdrawiam.

Portret użytkownika mirley

Strerownik

żeby był minus to wystarczy dopisać:

Temp_aktualna = Temp_ak / 16
if Msb.7 = 1 then Temp_aktualna = (-1)*Temp_aktualna        'to trzeba dopisać

-

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.

Portret użytkownika sebeq

sterownik domowy - problem

Witam. Próbowałem w ten sposób ale syntax check nie przepuszcza mi nawiasu (-1) a bez nawiasu nie działa poniżej temperatury zerowej pokazuje -0.6 stopinia i się nie zmienia... ;/

Portret użytkownika mirley

Temperatura

Zastosuj w takim razie poprostu:

Temp_aktualna = -Temp_aktualna 

lub

Temp_aktualna =0 - Temp_aktualna 

-

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.