(20 głosujących) Opisywane urządzenie jest prostym sterownikiem domowym, urządzeniem pełniącym wiele pożytecznych funkcji, do których między innymi należą: dwupunktowy pomiar temperatury (w domu i na dworze) i zegar pracujący w trybie 24-godzinnym, wzbogacony o dwukanałowy sterownik czasowy. Dodatkowo w programie zaimplementowano prosty termostat z histerezą oraz prosty system alarmowy z dwoma obwodami ochronnymi. Funkcja cichego alarmu umożliwia podgląd o której godzinie obwód ochronny został naruszony, bez włączania syreny. Układ sterownika został zbudowany na mikrokontrolerze ATMEGA16 a wszystkie ustawienia dokunuje się poprzez bardzo prosty interfejs z wyświetlaczem LCD i 6-przyciskową klawiaturą. Do odmierzania czasu wykorzystano układ RTC przez co sterownik może długo chodzić podtrzymując czas na zasilaniu bateryjnym. Wyjścia układu zbudowane na triakach posiadają optoizolację od napięcia sieciowego.
Działanie:Schemat ideowy układu znajduje się na rysunku poniżej: Sercem układu jest mikrokontroler U1 (ATMega16) wraz z rezonatorem kwarcowym X1 (16MHz) i kondensatorami C1 (22pF) i C2 (22pF). Do odmierzania czasu wykorzystywany jest układ RTC U2 (PCF8583). Do jego poprawnej pracy wymagany jest rezonator kwarcowy (tak zwany zegarkowy) X2 (32,768kHz) oraz kondensator C5 (33pF). Kondensatory C6 (100nF) i C7 (47uF) filtrują napięcie zasilania samego układu RTC, które podawane jest poprzez prosty układ bezprzerwowego zasilania z diodami D1 (1N4148), D2 (1N4148) i baterią BAT1 (3V). Rezystory R15 (3,3k) i R16 (3,3k) podciągają linie magistrali I2C do plusa zasilania, umożliwiając jej poprawną pracę. Obwody zasilania całej płytki zbudowane są na stabilizatorze U5 (7805) i kondensatorach filtrujących C3 (220uF), C4 (47uF) i C8 (100nF). Potencjometr P1 (10k) umożliwia regulację kontrastu wyświetlacza W1 (LCD 16x2). Podświetlanie wyświetlacza uruchamiane jest z poziomu programu sterownika za pomocą tranzystora T1 (BC556) i rezystora R2 (3,3k). Prąd podświetlania wyświetlacza ograniczany jest przez rezystor R1 (47R). W roli sygnalizacji alarmu pracuje buzzer z generatorem BUZ1 (5V), włączany poprzez tranzystor T2 (BC556) i rezystory R3 (3,3k) i R4 (3,3k). Złącze Prog (goldpin) umożliwia programowanie mikrokontrolera U1 w układzie, do tego został tez wyprowadzony pin resetu Res. Złącze RS (goldpin) umożliwia podpięcie komunikacji Rs232 a właściwie odpowiedniego konwertera, w przypadku klasycznego Rs232 będzie to MAX232 a przypadku konwertera USB-RS232, odpowiednia przejściówka. Klawiaturę urządzenia stanowią przyciski S1-S6 (uSwitch). Złącze ALARM (ARK) stanowi wejścia czujników alarmowych, jedno wejście jest typu N.O. a drugie typu N.C. Rezystor R14 (4,7k) umożliwia poprawną pracę magistrali 1-Wire z czujnikami U3-U5 (DS18B20). Budowa:Układ z powodzeniem można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż płytki nie jest skomplikowany i wykonujemy go w sposób klasyczny. Rozpoczynamy od wlutowania dwóch zworek pod wyświetlaczem W1, następne w kolejności powinny być rezystory a potem kondensatory. Kolejność pozostałych elementów nie jest krytyczna. Pod mikrokontroler U1 i układ RTC U2 dobrze jest zastosować podstawki. Złacza na czujniki U3 i U4 są w takiej odległości że można wlutować w ich miejsce podstawkę DIL6, tak jak można to zobaczyć na zdjęciach. Złącza te przydadzą się w momencie rejestracji czujników DS18B20 i podczas testów całego systemu. Potem można wykorzystać złącze U5 do podłączenia wszystkich czujników temperatury równolegle. Zamiast BUZ1 można podłączyć układ sterujący większą syreną alarmową. Do zasilania całego układu najwygodniej jest użyć ładowarki od komórki (np. NOKIA 6610) gdyż daje ona przy takiej pracy napięcie ponad 5V. Szczególną ostrożność należy zachować przy podłączaniu odbiorników 230V gdyż triaki znajdują się na tej samej płytce co sterownik i istnieje ryzyko porażenia. Układ został zbudowany głównie do celów pokazowych (stąd układy wykonawcze na tej samej płytce) ale jest w pełni funkcjonalnym urządzeniem. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Podłączenie sterownika przedstawione jest na rysunku poniżej: Wykaz Elementów:5x Złącze Śrubowe ARK2(podwójne) 5x 3,3k 2x 22pF 1x Rezonator Kwarcowy 16MHz Programowanie:Kod Źródłowy do sterownika został napisany w BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej: '************* Konfiguracja uC ***************** '*********************************************** $regfile = "m16def.dat" $crystal = 16000000 Config Porta = &B11110011 : Porta = &B11111111 Config Portb = &B11111111 : Portb = &B11111111 Config Portc = &B11111111 : Portc = &B11111111 Config Portd = &B00000011 : Portd = &B11111111 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.1 , Rs = Porta.0 Config Lcd = 16 * 2 Cls Cursor Off Noblink Config 1wire = Pinc.7 Config Scl = Portb.0 Config Sda = Portb.1 I2cinit Lcd_light Alias Portc.6 Sw_port Alias Pind 'nazwa portu Tr1 Alias Portc.2 Tr2 Alias Portc.1 Tr_term Alias Portc.0 Buzz Alias Portc.5 Linia_no Alias Pina.2 Linia_nc Alias Pina.3 Config Timer0 = Timer , Prescale = 256 Enable Timer0 : On Timer0 Prztimer0 Enable Interrupts '********** Konfiguracja uC Koniec ************ '****************** Zmienne ******************* '*********************************************** Dim Stan_sw As Byte , Sw As Byte , Licznik_sw As Byte 'sw Dim Wyswietlanie As Byte , Poz_wysw As Byte , Wyswietlono As Bit 'Lcd Dim Mig As Bit , Poz_ust As Byte Dim Autosave As Byte , Autolight As Byte Dim Ds1(8) As Byte , Ds2(8) As Byte , Ds3(8) As Byte , Ds(8) As Byte , Ds_adr As Byte , Ds_ok As Bit 'DS18B20 Dim Ktory_ds As Byte , Lsb As Byte , Msb As Byte , Minusy As Byte Dim T(3) As Word Dim T_ust As Word , T_his As Byte , Term_ena As Bit 'termostat Dim Dzielnik(2) As Byte 'dzielniki timera Dim Flaga_4ms As Bit , Flaga_500ms As Bit , Flaga_1s As Bit 'flagi przerwa? Dim Hbyte(2) As Byte , Hword(3) As Word , N As Byte , Hbit As Bit Dim Godziny As Byte , Minuty As Byte , Sekundy As Byte Dim Godziny_bcd As Byte , Minuty_bcd As Byte , Sekundy_bcd As Byte Dim Zapisz_czas As Bit Dim G(4) As Byte , M(4) As Byte , Ar_tr1 As Bit , Ar_tr2 As Bit 'programtot czas Dim Alarm As Byte , Salarm As Byte , A_g As Byte , A_m As Byte 'alarmy 0-wyl, 1-czuwa, 2-czas wtargniecia Dim Alarm_licz As Byte '************* Zmienne Koniec **************** '************ Warunki Poczatkowe *************** '*********************************************** Lcd_light = 0 Autolight = 20 Lcd "Sterownik Domowy" Lowerline Lcd " Wersja 1.05" Wait 1 If Sw_port = &B01001111 Then Ds_adr = 30 Gosub Ds_reg Cls Lcd "Ds1" End If If Sw_port = &B01010111 Then Ds_adr = 40 Gosub Ds_reg Cls Lcd "Ds2" End If If Sw_port = &B01011011 Then Ds_adr = 50 Gosub Ds_reg Cls Lcd "Ds term" End If For N = 1 To 8 Hbyte(1) = 30 + N Readeeprom Ds1(n) , Hbyte(1) Hbyte(1) = 40 + N Readeeprom Ds2(n) , Hbyte(1) Hbyte(1) = 50 + N Readeeprom Ds3(n) , Hbyte(1) Next N For N = 10 To 13 Readeeprom G(n -9) , N If G(n -9) > 23 Then G(n -9) = 0 Next N For N = 14 To 17 Readeeprom M(n -13) , N If M(n -13) > 59 Then M(n -13) = 0 Next N Readeeprom Hbyte(1) , 18 Ar_tr1 = Hbyte(1).0 Ar_tr2 = Hbyte(1).1 Term_ena = Hbyte(1).2 Readeeprom T_ust , 19 Readeeprom T_his , 21 If T_ust > 1000 Or T_ust < 100 Then T_ust = 450 If T_his > 100 Or T_his < 5 Then T_his = 20 Readeeprom Alarm , 22 Readeeprom Salarm , 23 Readeeprom A_g , 24 Readeeprom A_m , 25 If Alarm > 2 Then Alarm = 0 If Salarm > 2 Then Salarm = 0 If A_g > 23 Then A_g = 0 If A_m > 59 Then A_m = 0 Wait 1 Wyswietlono = 1 Wyswietlanie = 1 Autosave = 5 '******* Warunki Poczatkowe Koniec *********** '************** Petla glowna ****************** '*********************************************** Do '*********************************************** co 4ms If Flaga_4ms = 1 Then Flaga_4ms = 0 If Alarm = 1 Then If Linia_no = 0 Or Linia_nc = 1 Then Alarm = 2 A_g = Godziny A_m = Minuty End If Else If Alarm = 2 Then Buzz = Mig Else Buzz = 1 End If End If If Salarm = 1 Then If Linia_no = 0 Or Linia_nc = 1 Then Salarm = 2 A_g = Godziny A_m = Minuty End If End If Gosub Przyciski If Wyswietlono = 1 Then Gosub Wysw_lcd End If '*********************************************** '*********************************************** co 500ms If Flaga_500ms = 1 Then Flaga_500ms = 0 If Autolight > 0 Then Decr Autolight Lcd_light = 0 Else Lcd_light = 1 End If Mig = Not Mig If Poz_wysw <> 1 Or Poz_ust = 0 Then If Zapisz_czas = 1 Then Gosub Zapis_rtc 'jednorazowo zapisuje po wyj?ciu z ustawie? Zapisz_czas = 0 Else Gosub Odczyt_rtc 'odczytuje czas End If Else Zapisz_czas = 1 End If If Poz_wysw = 1 Then Wyswietlanie = 1 'uaktualniaj czas je?li jest pokazywany na LCD If Poz_wysw = 2 Then Wyswietlanie = 2 If Poz_wysw = 4 Then Wyswietlanie = 4 'je?li wyswietlony termostat to uaktualnij. If Poz_wysw = 5 Then Wyswietlanie = 5 End If '*********************************************** '*********************************************** co 1s If Flaga_1s = 1 Then Flaga_1s = 0 If Autosave < 5 Then Incr Autosave If Autosave = 5 Then For N = 10 To 13 Writeeeprom G(n -9) , N Next N For N = 14 To 17 Writeeeprom M(n -13) , N Next N Hbyte(1) = 0 Hbyte(1).0 = Ar_tr1 Hbyte(1).1 = Ar_tr2 Hbyte(1).2 = Term_ena Writeeeprom Hbyte(1) , 18 Writeeeprom T_ust , 19 Writeeeprom T_his , 21 Writeeeprom Alarm , 22 Writeeeprom Salarm , 23 Writeeeprom A_g , 24 Writeeeprom A_m , 25 Poz_ust = 0 End If End If Gosub Temperatura If Poz_wysw = 3 Then Wyswietlanie = 3 'jesli wysw temperatura to uaktualnij Gosub Sterowanie End If '*********************************************** Loop End '************ Petla glowna Koniec ************** '************ Przerwanie timer 0 *************** '*********************************************** Prztimer0: Timer0 = 5 Set Flaga_4ms Incr Dzielnik(1) If Dzielnik(1) = 125 Then Dzielnik(1) = 0 Set Flaga_500ms Incr Dzielnik(2) If Dzielnik(2) = 2 Then Dzielnik(2) = 0 Set Flaga_1s End If End If Return '******** Przerwanie timer 0 Koniec ************ '*********************************************** '***************** Przyciski ************** Przyciski: Sw = Sw_port And &B11111100 'And &B00001111 'maska na piny nieu?ywane jako sw If Sw <> &B11111100 And Stan_sw = Sw Then Incr Licznik_sw If Licznik_sw = 68 Then Licznik_sw = 0 Autolight = 20 Select Case Stan_sw Case &B11101100: 'incr '*********************************************************** Select Case Poz_wysw Case 1: Select Case Poz_ust Case 0: 'podczas wyswietania czasu If Alarm = 2 Then Alarm = 0 'If Salarm = 2 Then Salarm = 0 Case 1: Incr Godziny If Godziny = 24 Then Godziny = 0 Case 2: Incr Minuty If Minuty = 60 Then Minuty = 0 Case 3: Incr Sekundy If Sekundy = 60 Then Sekundy = 0 End Select Case 2: Select Case Poz_ust Case 0: Ar_tr1 = Not Ar_tr1 Case 1: Incr G(1) If G(1) = 24 Then G(1) = 0 Case 2: Incr M(1) If M(1) = 60 Then M(1) = 0 Case 3: Incr G(2) If G(2) = 24 Then G(2) = 0 Case 4: Incr M(2) If M(2) = 60 Then M(2) = 0 Case 5: Incr G(3) If G(3) = 24 Then G(3) = 0 Case 6: Incr M(3) If M(3) = 60 Then M(3) = 0 Case 7: Incr G(4) If G(4) = 24 Then G(4) = 0 Case 8: Incr M(4) If M(4) = 60 Then M(4) = 0 End Select Autosave = 0 Case 4: Select Case Poz_ust Case 0: Term_ena = Not Term_ena If Term_ena = 0 Then Tr_term = 1 Case 1: If T_ust < 1000 Then T_ust = T_ust + 10 Case 2: If T_his < 100 Then Incr T_his End Select Autosave = 0 Case 5: Select Case Poz_ust Case 0: ' podczas wysw alarmow Case 1: If Alarm <> 0 Then Alarm = 0 Else Alarm = 1 Buzz = 1 Case 2: If Salarm <> 0 Then Salarm = 0 Else Salarm = 1 End Select Autosave = 0 End Select Case &B11111000: 'ustaw next '*********************************************************** Select Case Poz_wysw Case 1: Incr Poz_ust If Poz_ust = 4 Then Poz_ust = 0 Case 2: Incr Poz_ust If Poz_ust = 9 Then Poz_ust = 0 Case 4: Incr Poz_ust If Poz_ust = 3 Then Poz_ust = 0 Case 5: Incr Poz_ust If Poz_ust = 3 Then Poz_ust = 0 End Select Case &B11110100: 'decr '*********************************************************** Select Case Poz_wysw Case 1: Select Case Poz_ust Case 0: 'podczas wyswietania czasu If Alarm = 2 Then Alarm = 0 Case 1: Decr Godziny If Godziny = 255 Then Godziny = 23 Case 2: Decr Minuty If Minuty = 255 Then Minuty = 59 Case 3: Decr Sekundy If Sekundy = 255 Then Sekundy = 59 End Select Case 2: Select Case Poz_ust Case 0: Ar_tr2 = Not Ar_tr2 Case 1: Decr G(1) If G(1) = 255 Then G(1) = 23 Case 2: Decr M(1) If M(1) = 255 Then M(1) = 59 Case 3: Decr G(2) If G(2) = 255 Then G(2) = 23 Case 4: Decr M(2) If M(2) = 255 Then M(2) = 59 Case 5: Decr G(3) If G(3) = 255 Then G(3) = 23 Case 6: Decr M(3) If M(3) = 255 Then M(3) = 59 Case 7: Decr G(4) If G(4) = 255 Then G(4) = 23 Case 8: Decr M(4) If M(4) = 255 Then M(4) = 59 End Select Autosave = 0 Case 4: Select Case Poz_ust Case 0: Term_ena = Not Term_ena If Term_ena = 0 Then Tr_term = 1 Case 1: If T_ust > 100 Then T_ust = T_ust - 10 Case 2: If T_his > 5 Then Decr T_his End Select Autosave = 0 Case 5: Select Case Poz_ust Case 0: ' podczas wysw alarmow Case 1: If Alarm <> 0 Then Alarm = 0 Else Alarm = 1 Buzz = 1 Case 2: If Salarm <> 0 Then Salarm = 0 Else Salarm = 1 End Select Autosave = 0 End Select Case &B11011100: 'next menu '*********************************************************** Poz_ust = 0 Wyswietlanie = Poz_wysw + 1 If Wyswietlanie = 6 Then Wyswietlanie = 1 Case &B10111100: 'triak 1 '*********************************************************** Select Case Poz_wysw Case 2: Ar_tr1 = 0 Tr1 = Not Tr1 Case 4: Term_ena = 0 Tr_term = Not Tr_term Case 5: If Alarm = 2 Then Alarm = 0 'If Salarm = 2 Then Salarm = 0 End Select Autosave = 0 Case &B01111100: 'triak 2 '*********************************************************** Select Case Poz_wysw Case 2: Ar_tr2 = 0 Tr2 = Not Tr2 Autosave = 0 Case 4: Term_ena = 0 Tr_term = Not Tr_term Case 5: If Alarm = 2 Then Alarm = 0 If Salarm = 2 Then Salarm = 0 End Select Autosave = 0 End Select End If Else Stan_sw = Sw Licznik_sw = 60 End If Return '*********************************************** '*********************************************** '************** LCD *********** Wysw_lcd: If Wyswietlanie <> 0 Then Wyswietlono = 0 Select Case Wyswietlanie Case 1: 'aktualny czas '************************************************************** If Poz_wysw <> 1 Then Cls Lcd " Aktualny Czas " End If Locate 2 , 5 If Poz_ust = 1 And Mig = 1 Then Lcd " " Else If Godziny < 10 Then Lcd "0" Lcd Godziny End If If Poz_ust = 0 And Mig = 1 Then Lcd " " Else Lcd ":" If Poz_ust = 2 And Mig = 1 Then Lcd " " Else If Minuty < 10 Then Lcd "0" Lcd Minuty End If If Poz_ust = 0 And Mig = 1 Then Lcd " " Else Lcd ":" If Poz_ust = 3 And Mig = 1 Then Lcd " " Else If Sekundy < 10 Then Lcd "0" Lcd Sekundy End If Case 2: 'programator czasowy '************************************************************** If Poz_wysw <> 2 Then Cls End If Locate 1 , 1 If Poz_ust = 1 And Mig = 1 Then Lcd " " Else If G(1) < 10 Then Lcd "0" Lcd G(1) End If Lcd ":" If Poz_ust = 2 And Mig = 1 Then Lcd " " Else If M(1) < 10 Then Lcd "0" Lcd M(1) End If Lcd " - " If Poz_ust = 3 And Mig = 1 Then Lcd " " Else If G(2) < 10 Then Lcd "0" Lcd G(2) End If Lcd ":" If Poz_ust = 4 And Mig = 1 Then Lcd " " Else If M(2) < 10 Then Lcd "0" Lcd M(2) End If Lcd " " If Ar_tr1 = 1 Then Lcd "A" Else Lcd "R" Locate 2 , 1 If Poz_ust = 5 And Mig = 1 Then Lcd " " Else If G(3) < 10 Then Lcd "0" Lcd G(3) End If Lcd ":" If Poz_ust = 6 And Mig = 1 Then Lcd " " Else If M(3) < 10 Then Lcd "0" Lcd M(3) End If Lcd " - " If Poz_ust = 7 And Mig = 1 Then Lcd " " Else If G(4) < 10 Then Lcd "0" Lcd G(4) End If Lcd ":" If Poz_ust = 8 And Mig = 1 Then Lcd " " Else If M(4) < 10 Then Lcd "0" Lcd M(4) End If Lcd " " If Ar_tr2 = 1 Then Lcd "A" Else Lcd "R" Case 3: '************************************************************** If Poz_wysw <> 3 Then Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 'stopien Deflcdchar 1 , 4 , 32 , 14 , 17 , 17 , 17 , 14 , 32 ' o kreskowane Cls Lcd "Dw" ; Chr(1) ; "r:" Lowerline Lcd "Dom:" End If For N = 1 To 2 Hword(1) = T(n) / 10 Hword(2) = 11 If Hword(1) >= 10 Then Decr Hword(2) If Hword(1) >= 100 Then Decr Hword(2) If Minusy.n = 1 Then Decr Hword(2) Locate N , Hword(2) Hword(2) = T(n) Mod 10 Lcd " " If Minusy.n = 1 Then Lcd "-" Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C" Next N Case 4: '************************************************************** If Poz_wysw <> 4 Then Deflcdchar 2 , 4 , 4 , 31 , 4 , 4 , 32 , 31 , 32 '+- Cls Lcd "Term:" End If Hword(1) = T(3) / 10 Hword(2) = 8 If Hword(1) >= 10 Then Decr Hword(2) If Hword(1) >= 100 Then Decr Hword(2) If Minusy.3 = 1 Then Decr Hword(2) Locate 1 , Hword(2) Hword(2) = T(3) Mod 10 Lcd " " If Minusy.3 = 1 Then Lcd "-" Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C " If Term_ena = 1 Then Lcd "A" Else Lcd "R" If Poz_ust = 1 And Mig = 1 Then Locate 2 , 1 Lcd " " Else 'tust Hword(1) = T_ust / 10 Hword(2) = 3 If Hword(1) >= 10 Then Decr Hword(2) If Hword(1) >= 100 Then Decr Hword(2) Locate 2 , Hword(2) Hword(2) = T_ust Mod 10 Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C " ; Chr(2) End If If Poz_ust = 2 And Mig = 1 Then Locate 2 , 11 Lcd " " Else 'thist Hbyte(1) = T_his / 10 Hbyte(2) = 12 If Hbyte(1) >= 10 Then Decr Hbyte(2) If Hbyte(1) >= 100 Then Decr Hbyte(2) Locate 2 , Hbyte(2) Hbyte(2) = T_his Mod 10 Lcd Hbyte(1) ; "." ; Hbyte(2) ; Chr(0) ; "C" End If Case 5: '************************************************************** If Poz_wysw <> 5 Then Cls Lcd "Alarm: " Lowerline Lcd "C. Alarm: " End If Locate 1 , 8 If Poz_ust = 1 And Mig = 1 Then Lcd " " Else If Alarm = 0 Then Lcd "Wyl. " If Alarm = 1 Then Lcd "Czuwa" If Alarm = 2 Then If A_g < 10 Then Lcd "0" Lcd A_g ; ":" If A_m < 10 Then Lcd "0" Lcd A_m End If End If Locate 2 , 11 If Poz_ust = 2 And Mig = 1 Then Lcd " " Else If Salarm = 0 Then Lcd "Wyl. " If Salarm = 1 Then Lcd "Czuwa" If Salarm = 2 Then If A_g < 10 Then Lcd "0" Lcd A_g ; ":" If A_m < 10 Then Lcd "0" Lcd A_m End If End If End Select Poz_wysw = Wyswietlanie Wyswietlanie = 0 Wyswietlono = 1 End If Return '************** LCD Koniec *********** '********** rejestracja DS ********* Ds_reg: Disable Interrupts 1wreset 1wwrite &H33 Ds(1) = 1wread(8): Enable Interrupts If Ds(1) <> 255 Or Ds(2) <> 255 Or Ds(3) <> 255 Or Ds(4) <> 255 Or Ds(5) <> 255 Or Ds(6) <> 255 Or Ds(7) <> 255 Or Ds(8) <> 255 Then Ds_ok = 1 For N = 1 To 8 Hbyte(1) = Ds_adr + N Writeeeprom Ds(n) , Hbyte(1) Next N Else Ds_ok = 0 End If Return '****** rejestracja DS Koniec ****** '************* Temperatura *********** Temperatura: Disable Interrupts 1wreset Select Case Ktory_ds Case 0: 1wwrite &HCC 1wwrite &H44 Case 1: 1wwrite &H55 1wwrite Ds1(1) , 8 1wwrite &HBE Lsb = 1wread(): Msb = 1wread(): Case 2: 1wwrite &H55 1wwrite Ds2(1) , 8 1wwrite &HBE Lsb = 1wread(): Msb = 1wread(): Case 3: 1wwrite &H55 1wwrite Ds3(1) , 8 1wwrite &HBE Lsb = 1wread(): Msb = 1wread(): End Select Enable Interrupts If Ktory_ds > 0 Then T(ktory_ds) = Msb * 256 T(ktory_ds) = T(ktory_ds) + Lsb Minusy.ktory_ds = Msb.7 If Minusy.ktory_ds = 1 Then T(ktory_ds) = Not T(ktory_ds) T(ktory_ds) = T(ktory_ds) + 1 End If T(ktory_ds) = T(ktory_ds) * 10 T(ktory_ds) = T(ktory_ds) / 16 Else If Poz_wysw = 1 And Wyswietlono = 1 Then Wyswietlanie = 1 End If Incr Ktory_ds If Ktory_ds = 4 Then Ktory_ds = 0 Return '********** Temperatura Koniec ********* '****************** Zapis RTC ******************** Zapis_rtc: 'zapisuje czas g,m i s do uk?adu RTC Godziny_bcd = Makebcd(godziny) Minuty_bcd = Makebcd(minuty) Sekundy_bcd = Makebcd(sekundy) I2cstart I2cwbyte 162 I2cwbyte 0 'rejestr kontrolny I2cwbyte 8 'ustawienie rejestru zapisu daty I2cstop I2cstart I2cwbyte 162 I2cwbyte 2 I2cwbyte Sekundy_bcd I2cwbyte Minuty_bcd I2cwbyte Godziny_bcd I2cstop Return '************* Zapis RTC Koniec ***************** '****************** Odczyt RTC ******************** Odczyt_rtc: 'odczytuje czas z RTC do zmiennych I2cstart I2cwbyte 162 'adres zapisu I2cwbyte 2 'rejestr sekund I2cstart I2cwbyte 163 'adres odczytu I2crbyte Sekundy_bcd , Ack I2crbyte Minuty_bcd , Ack I2crbyte Godziny_bcd , Nack I2cstop Sekundy = Makedec(sekundy_bcd) Minuty = Makedec(minuty_bcd) Godziny = Makedec(godziny_bcd) Return '************** Odczyt RTC Koniec ***************** '************ Sterowanie *************** '*********************************************** Sterowanie: Hword(1) = Godziny * 60 Hword(1) = Hword(1) + Minuty 'czas w minutach 'prog czasowy For N = 1 To 3 Step 2 Hword(2) = G(n) * 60 Hword(2) = Hword(2) + M(n) 'czas w minutach Hword(3) = G(1 + N) * 60 Hword(3) = Hword(3) + M(1 + N) 'czas w minutach Hbit = 1 If Hword(3) >= Hword(2) Then If Hword(1) >= Hword(2) Then If Hword(1) < Hword(3) Then Hbit = 0 Else If Hword(1) >= Hword(2) Then Hbit = 0 If Hword(1) < Hword(3) Then Hbit = 0 End If If N = 1 Then If Ar_tr1 = 1 Then Tr1 = Hbit Else If Ar_tr2 = 1 Then Tr2 = Hbit End If Next N 'termostat If Term_ena = 1 Then Hword(1) = T_ust + T_his Hword(2) = T_ust - T_his If T(3) >= Hword(1) Then Tr_term = 1 If T(3) <= Hword(2) Then Tr_term = 0 End If Return '******** Sterowanie Koniec ************ Ustawienia fusebitów przedstawione są na rysunku poniżej: Zdjęcia Projektu:
|
|||||||||||||||||||||||||||||||
Re: Sterownik Domowy
W programie mogą występować problemy bo wersja na której pisałem była dostosowana do płytki testowej potem tylko wkleiłem fragment z konfiguracja ze starego programu. O klawiaturze sobie zapomniałem bo na płytce testowej inne piny były wykorzystywane.
Jak będę dopisywał dalszą część programu to zmienię konfigurację pinów od razu na takie jak powinny być i w takiej wersji będę testował. Co do temperatury to po zaprogramowaniu nową wersją eeprom procesora się skasował i trzeba na nowo zarejestrować czujniki temperatury według opisu o którym już mówiliśmy. Aby tego w przyszłości uniknąć można sobie zgrać do pliku epp pamięć eeprom i po zaprogramowaniu flash wgrać tez eeprom. Ogólnie mówiąc dopiszę to jak znajdę troszkę czasu
Co do tego sterowania czujnikiem w szambie to nie będzie problemu, drugi procesor będzie badał poziom i komunikacja między procesorami będzie po rs232 bez najmniejszego problemu. Wystarczy w jednym procesorze napisać "printbin zmienna" a w drugim odebrać bajt z wartością poziomu i wyświetlić go. To nie będzie żaden problem o ile wiesz jak zmierzyć poziom w zbiorniku. Komunikacja będzie odbywała się za pomocą pinów RXD i TXD procesora porty D0 i D1
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.
Szambo
OK kod w wersji v1,03 i V1,05 różnia się sporo poza tym że dodałeś odczyt portów
poprawiłem kod i nazwałem go V1,06 Mirley & Greg :)
>>Tutaj wklej link do pliku umieszczonego na jakimś serwisie, kod źródłowy zajmuje za dużo miejsca i wystarczy że jest juz raz w treści opisu
więc możesz sie tym posugerować
Myślę że te ikonki są nie potrzebne, i może pozostać tak jak jest obecnie tylko trzeba dodać szynę beep do pipania i szynę do alarmu - sugeruję przekaźnik - ja tak u siebie zrobiłem PK załancza syrenę więc potrzeba szyny na beeper aktywny
jesli chodzi o szambo to czujniki to
myslę ilość zgodna z ilościa kratek na LCD ale może coś do ustawienia w peogramie ile tych kratek ma sie pokazywać
Ja chce zastosować 10-16 czujników - zależy jak podziele czy na 10 części czy na ilość metrów sześciennych cieczy
będą załanczać te czujniki po kolei masę na porty w czasie żeczywistym
może jeśli dasz rade to w menu jak będzie full na zbiorniku i załączy się ostatni czujnik " nazwijmy awaryjny" to niech wyświetla informację " Zamow Transport " na zmiane z nr tel "dzwon 0700123456" czy jakos tak.
pozdrawiam
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Re: Sterownik Domowy
Jedyną zmianę jaka trzeba było zrobić w programie to połączyć kod w pierwszej wersji z kodem który ostatnio dodałem. Poza wklejeniem pierwszej części programu trzeba było tylko zmienić procedurę przyciski a dokładniej linijki " Case &B11111000: " na takie wartości jak w pierwszej wersji. Jeśli siądę do dopisania dalszej części to i tak sam to pozmieniam żeby być pewnym że wszystko jest jak ma być.
Co do podpisów ikonek i tych rzeczy to jeszcze zobaczę, podpis na panelu przednim będę miał taki jak wcześniej tylko z nowszą wersją, jak chcesz to możesz sobie pozmieniać napisy ale w twojej wersji programu. Co do tego szamba to zrobię to tak że będę wyświetlał wartość jaka przyjdzie po rs232, powiedzmy w zakresie 0-255, twój drugi procesor pomiarowy ma odczytać czujniki i wysłać po rs232 wartośc w takim przedziale (przedział liczbowy sie ustali) gdzie 1 to min a 255 max. W jaki sposób to przedstawię na wyświetlaczu to już jest dodatkowe zmatrwienie.
Ps. Narazie nie dopisuj nic do programu, dopóki nie dokończę kodu... straszny się bajzel w tym robi i nigdy nie dojdę gdzie mam najnowszą wersję. Wszystkie wersje dokończone które napiszę, umieszczę na stronie.
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.
Wykonałem pana sterownik jest
Wykonałem pana sterownik jest ok.
Ale mam taką prośbę, czy dała sie ustawić mniejszą histerezę nap 0,1 st ewentualnie
proszę wskazać w progranie w którym miejscu można to zrobić
Re: Sterownik Domowy
TO akurat nie jest problemem aby dać możliwość ustawienia od 0.1 stopnia. Wystarczy zmienić w linijce:
zamienić: T_his > 5 na T_his > 1 a na początku programu w linijce:
zamienić: T_his < 5 na T_his < 1
1 oznacza właśnie 0.1 stopnia i w tym sterowniku nie da się dać mniej. Skorzystaj z wyszukiwania aby znaleźć te linijki w kodzie o których mówiłem. Po tych modyfikacjach menu powinno pozwolić ustawić do min 0.1 stopnia
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.
takie mam wskazania temperatury
jak w tytule i są one poprawne
a i takie jest moje menu sterownika
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Dzięki za odpowiedz. jak
Dzięki za odpowiedz.
jak znajdę chwilę czasu to przetestuję
jak ustawić
Pnie Mirku proszę o jakieś instrukcje jak mam ustawić żeby mi zadziałała druga lampa.
Dodam że jedną z nich udaje mi się załączać a druga za chiny nie zadziała
http://www.danio.jaw.pl
T1 i T2 - danioo
Jeśli chodzi o czasy to naciskasz tylko set i przechodzisz dalej - natomiast jeśli jesteś w menu ustawień tych 2 triaków to naciskasz sw T1 i sw T2 - wł/wył się jeden lub drugi triak i to cala filozofia - niema nic do ustawiania w programie tych dwóch triaków i kropka
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Z tym że ja właśnie tak
Z tym że ja właśnie tak robię.
u mnie jeden triak działa a drugi wogule nie daje się sterować.
Udaje mi się sterować z czsu w dolnej linijce wyświetlacza
http://www.danio.jaw.pl
napisz program dla sprawdzenia
napisz program dla sprawdzenia przyciskow - ale zaraz czy ja tak nie mialem - trzeba na procku JTAG wylaczyc na portach bo cos nie dzialalo - przeczytaj posty moje na calosci
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
bardzo prosze gotowca - danioo :-)
wiec trzeba czytac - poprostu
moje posty i rozwiazanie problemu
Nie działa mi tr1 czyli linia 1 - ani automatyczne ani ręczne - nie pokazuje się stan niski na C2 pin24 - C1 pin 23 dziala ręcznie F2 i automatycznie (mało tych funkcji do zaprogramowania) temp. działa poprawnie
Nie działa mi buz. pin C5 - po zał sie alarmu nie zmienia sie stan wyjścia - jest cały czas stan wysoki hmm - jakies pomysły - bo w menu alarm dziala poprawnie zwierny i rozwierny cichy i glośny wstawia godzine
rozwiązanie problemu w następnym poście
Wystarczyło poczytać note katalogowa Atmega16 - oryginalnie w nowym procku piny C2 do C5 są nieaktywne a działają na JTAG - przełączyłem na we/wy i śmiga
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Czyli kolego mam rozumieć że
Czyli kolego mam rozumieć że podczas programowania mam we "fusach" wyjączyć JTAGA ??
http://www.danio.jaw.pl
tak
tak wył - zalezy jakim programem czasami trzeba odznaczyc a czasami zaznaczyc - odczytaj procek fusebity i zrób odwrotnosc na jtag i po zsprawie
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Na wszelki wypadek dla mniej
Na wszelki wypadek dla mniej doświadczonych zamieszczam ustawienia "fusów" z wyłączonym JTAG-iem
LOW=0x7F
HIGH=0xD9
http://www.danio.jaw.pl
Witam Mam 2 pytania. 1 - Czy
Witam
Mam 2 pytania.
1 - Czy można użyć innych warystorów niż w projekcie?
2 - Gdybym chciał zamiast BUZ1podłączyć syrenę, a te z kolei pracują od 6V, co musiałbym w projekcie zmienić?
Są ludzie i parapety, ale żeby klamką się urodzić to jest sztuka.
KAMIL
kamil - warystory pomiń - a w miejsce bepera daj przekaźnik 5 Volt - i problem rozwiązany
jesli niemasz tekiego PK to daj znać mam tego sporo
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Re: Warystor
Warystor nie jest konieczny ale możesz dać dowolny na 230VAC. Co do sterowania syreną to lepszym elementem jest tranzystor mosfet, np buz11 lub podobny. Przekaźnik i tak będzie potrzebował tranzystora i diody zabezpieczającej
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.
Czyli, że ten tranzystor
Czyli, że ten tranzystor mosfet (BUZ11) mam dać zamiast T2?
Są ludzie i parapety, ale żeby klamką się urodzić to jest sztuka.
Re: Tranzystor
W tym przypadku najprościej jest wylutować buzzer i do kolektora T2 podłaczyc bramkę BUZ11 (może być przez rezystor 10k), źródło BUZZ11 do masy, a między dren i +6V syrena. Można by było zrobić z pominięciem T2 ale trzeba modyfikować program, więc szkoda zachodu, szczególnie że BUZZ11 jest duży i tak się na płytce nie zmieści
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.
Złożyłem Pana sterownik.
Złożyłem Pana sterownik. Układ ale przede wszystkim program REWELACJA!!!
Chciałbym kiedyś pisać takie programy.
Pozdrawiam serdecznie Mariusz
czy to normalne
Złożyłem sterownik wgrałem hexa na wyświetlaczu pokazuje mi sie STEROWNIK DOMOWY WERSJA 1.05
potem AKTUALNY CZAS same zera cały czas tak stoi w miejscu bo niepodpiołem PCF8583 ponieważ jeszcze go niemam.
Niedziała mi klawiatura nic niereaguje czy to tak ma być??dopuki niewsadze układu czy coś jest nie tak..
Re: Klawiatura
Klawiatura powinna działać, popatrz czy nie masz zwarcia któregoś z przycisków do masy, lub zwarcia między przyciskami. Ewentualnie przytrzymaj dłużej którys klawisz i zobacz czy jest jakakolwiek reakcja
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.
żadnej reakcji na przyciski a
żadnej reakcji na przyciski a zwarć niema żadnych inne atmegi tak samo się działajom może coś z tym wsadem co IMEX wrzócił na stronke??
mormi
moj wsad działa na 100%
masz hex czy bin jak cos pisz na GG jestem jeszcze - wlasnie zakończylem pisać sterownik na 4xDS wł/wył i alarm na ust temp
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Czy mógłbym prosić o
Czy mógłbym prosić o dopisanie do programu funkcji budzika. Czy jest możliwa również funkcja "wygaszacza"? Chodzi mi o to, żeby układ jak nie jest używany wyświetlał w negatywie aktualną datę i godzinę, a co minutę miałaby się wyświetlać temperatura na dworze i w domu.
P.S. Jakich tranzystorów SMD można użyć zamiast BC556?
Są ludzie i parapety, ale żeby klamką się urodzić to jest sztuka.
Re: Sterownik
Budzik to jeszcze może by dało rady zrealizować ale negację wyświetlacza to nie mam pojęcia jak prosto zrobić... Tak czy innaczej narazie nic nie będę dopisywał do układu. I tak miałem zrobić juz obsługę rs232 do odbioru danych z drugiego procesora i nie mam kiedy tego wykonać.... może w przyszłości
Tranzystory BC856; BC857; BC858 lub dowolne inne PNP
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.
Sprawa klawiatury
Wiec tak doszedłem dlaczego niektórym niedziała
Powód Brak rezystorów podciągających 3,3K do 5V R15 i R16
właśnie sam mialem teraz ten problem - odpaliłem to wszystko na nowej płycie testowej mirka
i właśnie miałem problem z klawiaturą i szukałem problemu co i dlaczego
pozdrawiam
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Re: Sterownik C.O
Klawiatura nie może mieć nic do rezystorów R15 i R16 bo one wpływają na działanie RTC, bez nich nie pójdzie komunikacja I2C
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.
klawiatura dotyczyła MORMI - niedzialaja klawisze
żadnej reakcji na przyciski a zwarć niema żadnych inne atmegi tak samo się działajom może coś z tym wsadem co IMEX wrzócił na stronke??
ten problem ginie jesli zainstalujemy rezystory - nie pokazuje wtedy zer 00:00:00 tylko 165:165:165 i migają kropki i klawisze zaczynaja dzialac
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
DS3 termo histereza
Mirku - Jak przerobić część temp - tak żeby tam podana histereza dzialała jako zakres załączonego triaka
Czyli ustawiam 25oC - i histereza +-/2oC - i teraz ma działać to od 23 do 27 oC
Obecnie jest tak ża załącza sie na 23 i poniżej a wył na 27 i wyżej
pozdrawiam serdecznie
-------------------------------------------------------------------
OK po bardzo wielu próbach zastosowania matematyki udalo mi sie to rozwiązać a wygląda to tak
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Re: Termostat histereza
Warunek który napisałeś:
Nie jest poprawny, zawsze zwraca 0 na triaku gdy temperatura mniejsza od max lub gdy mniejsza od min. Przypadkiem to dobrze działa bo linijkę niżej jest drugi warunek. Triak jest na chwile właczany po czym odrazu rozwierany na czas jedego cyklu zegarowego. Warunek powinien być:
Tym sposobem triak się właczy gdy temperatura jest mniejsza od max i (a nie lub) gdy jest większa od min
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.
No dobra, może trochę
No dobra, może trochę przesadziłem z tym "wygaszaczem" :D
Czy dałoby się zamiast, podczas wyświetlania godziny, linijki "Aktualny Czas" wyświetlić aktualną datę??
Są ludzie i parapety, ale żeby klamką się urodzić to jest sztuka.
Re: Sterownik domowy
Dzień i miesiąc raczej da się wyświetlić, co do roku to trzeba napisać jakąś procedurkę bo tylko 4 lata pamięta ten układ RTC który jest zastosowany. Dodatkowo trzeba też napisać menu więc trochę pracy jest
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.
Re: Sterownik C.O.
Mam takie laickie pytanie: czym rożni się zakończenie Vcc od '+5V'? Tak samo pin Reset-jest z czymś dalej połączony?
Pozdrawiam
Re: Sterownik C.O
+5V to nazwa ścieżki na schemacie a VCC to goldpin do którego można podłączyć +5V. Reset wyprowadzony jest tylko na ten pin Rst i tyle
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.
Wyrazy uznania dla autora
Wyrazy uznania dla autora strony za KAWAŁ DOBREJ ROBOTY .
AVR-ami "bawię" się (z braku czasu) z doskoku.Uruchomiłem Uniwersalną Płytkę Testową dla AVR. Do AVRDunde jakoś zabrakło mi cierpliwości ale zobaczyłem że BASCOM AVR w wersji 1.11.9.8 obsłguje (hura!)programator USBasp. Wygląda że to działa z programatorem na płycie testowej tzn. odczytuje sygnaturę układu(tylko w trybie Slow SCK -ciekawe dlaczego ?) i zawartość AVR-a (zastanawiam się czemu programator nie ma wyprowadzonej zworki Self Programming i co ona daje,ale to chyba nie miejsce na pytania odnośnie płyty testowej).Właśnie chciałbym zobaczyć jak działa powyższy sterownik ale boję się coś pokręcić w ustawieniach fusebitów przy programowaniu bo okno dialogowe wygląda trochę inaczej niż w opisie konstrukcji.Pozdrawiam
Re: Sterownik Domowy
Zrzut w opisie z ustawieniami fusebitów pochodzi z programu Burn-o-Mat a nie z bascoma, dlatego się różni
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.
Dziękuję za odpowiedź.
Dziękuję za odpowiedź.
To że zrzut pochodzi z Burn-o-Mat a to się domyśliłem.
W niektórych projektach podawane są zrzuty również z Bascoma . Myślę że to dobra praktyka a co dobre to powinno się powielać . Takim przedszkolakom jak ja ułatwiło by to życie . Tym nie mniej mój problem dalej się nie rozwiązał bo nie wiem jak ustawić fusebity w Bascomie . Nawiasem mówiąc gdy się pisze w Bascomie to wygodnie by było również Bascomem programować ( chyba że coś z nim jest nie tak )
Pozdrawiam
Re: Sterownik
Bascomem sie programuje jeśli masz programator który go bezpośrednio obsługuje. Ja używam obecnie programatora USBASP i wersji bascoma którą posiadam nie obsługuje bezpośrednio tego programatora. Takie ładne okienko z fusebitami jest tylko jak używasz STK200 lub zwykłego kabla na LPT (dlatego w nowszych projektach nie ma zrzutów z bascoma dla fusebitów). Poza tym wygodniej ustawia się fusebity jeśli masz dostęp do każdego bitu.
Zamieść na jakim serewisie zrzut z twoich ustawień fusebitów w bascomie to zamieszczę informację jak to ustawić na podstawie twojego zrzutu z ekranu
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
Witam, zrobiłem to urządzenie i mam małe problemy: w momencie wciśnięcia przycisku podświetla się wyświetlacz lekko migoczącym światłem, nie uruchamia się dioda triaka "D3", nigdy nie słyszałem buzzerka i nie mogę wyłączyć zaznaczenia przy programowaniu "JTAGEN" - reszta chyba ok. Jak dalej to pociągnąć?
Re: Sterownik domowy
Bit JTAGEN musi byc odznaczony do poprawnej pracy układu. W burn-o-mat trzeba zmienić tryb pracy na expert (u góry w okienku fusebitów mode:normal, mode:expert czy jakoś podobnie) i wtedy wszystkie bity będą możliwe do kliknięcia
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
Witam, to zadziałało :), pozostał lekko chrypliwy głos buzzerka i migoczące podświetlanie wyświetlacza - reszta chyba ok.
Pozdrawiam.
sterownik
Witam, chrypliwy głos buzzerka i migoczące podświetlenie to przeszłość :), wymiana zasilacza była strzałem w "10", ciekawe bo stara nokia na nim chodziła a inny zasilacz daje tylko o 0,6 V więcej a jest ok.
Pozdrawiam.
A czy zastosowanie ATmegi w
A czy zastosowanie ATmegi w obudowie TQFP nic nie wniesie?
Są ludzie i parapety, ale żeby klamką się urodzić to jest sztuka.
Czujnik podczerwieni
Witam
Ciekawy pomysł. Mam pytanie, czy jest możliwość zastosowania czujników podczerwieni w tym układzie, których zadaniem było zliczanie osób w pomieszczeniu i załączenie światła, a po wyjściu ostatniej osoby wyłączenie.
Pozdrawiam
Re: Sterownik Domowy
Zastosowanie ATMEGI w dowolnej obudowie nic nie zmieni, poza zrobieniem nowej płytki.
Z czujnikami podczerwieni będzie o tyle problem że nigdy nic takiego nie stosowałem do liczenia osób w pokoju więc wymagało by to trochę pracy, głównie sprzętowej... z zaprogramowaniem nie powinno być problemu jeśli się ma na to czas
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, czy dużo zachodu będzie by termostat tego sterownika można ustawić w okolicy +2 stopni, układ miał by "pilnować" małego pomieszczenia w okresie zimy gdzie jest hydrofor?
Pozdrawiam.
Re: Sterownik
W obsłudze przycisków trzeba zmienić wartości w których można to ustawić:
I jeszcze na początku żeby nie było problemów
To powinno zadziałać, przynajmniej tak mi się 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.
Problem z zaprogramowaniem ATMEGI 16
macie jakiś ciekawy programator do atmega 16 bo ja mam z allegro pod USB i nie chce mi działać :(