(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: Programator
To nie jest miejsce żeby rozwodzić się na temat jakiegoś programatora z allego. Napisz odpowiednie pytanie na forum w dziale "Programatory", opisz dokładnie jaki to programator, na jakiej aukcji go kupiłeś? w jakim programie próbujesz to uruchomić? czym zasilasz procesor? Wszystko co wpadnie Ci na myśl odnośnie tego jak to próbowałeś podłączać i sprawdzać. tutaj zgodnie z regulaminem pytania na temat sterownika domowego
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.
kompilacja
Witam, przy próbie kompilacji kodu wystawia mi taki komunikat:Error:999 Line: 894 DEMO/BETA only suports4096Bytes of code, in File: a dalej jest adres zapisanego kodu do kompilacji :(
Re: Sterownk
Plk HEX masz tutaj, demo pozwala skompilowac tylko 4kB co zresztą masz napisane w treści błędu
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 od +2st C
Witam, udało mi się wprowadzić zmiany w kodzie aby można było zejść z termostatem do +1 st.C ale tego ustawienia temperatury już nie można zmienić, czyli od ustawienia początkowego można było po jednym stopniu obniżać dowolnym przyciskiem (up-down)
ale tylko w dół, reszta wydaje się być ok.
--------------
Witam, jakieś nowe pomysły w sprawie sterownika? :)
Re: Sterownik
Nie zastanawiałem się nad tym... nie mam kiedy. Zamieść kod w załącznikach i podaj link do niego to popatrzę co pozmieniał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.
sterownik od +2st C
załączniku BAS po wprowadzonych zmianach :), i jeszcze wartość histerezy też daje się tylko zmniejszać
po zmianach
Re; termostat
nic dziwnego że się tak dzieje skoro tak sobie napisałeś:
Dla przycisku + masz:
a dla -:
W obu przypadkach odejmujesz temperaturę, natomiast w moim kodzie jest dla +:
a dla -:
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.
termostat
Witam i wielkie dzięki jest jak oczekiwałem :), mściłem się nie na tym przycisku.
kasowanie DS bez nowego programu
Cześć Mirku
Prośba o sposób skasowania z pamięci eeprom komórek gdzie został zapisany DS
to jest odczyt - wiadomo
a to jest zapis DS-ów
Jak kasować poszczególne DS-y pojedyńczo lub wszystkie razem - dziękuje serdecznie
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Re: Ds'y
nie wiem po co maiło by byc takie cos potrzebne ale wystarczy zapisać coś do pamięci gdzie przechowywane są numery seryjne ds:
Takie cos powinno zadziałać dając 255 w komórkach gdzie były ds18b20
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.
Jak wykorzystac kod źródłowy
Witam.
Jestem początkującym elektronikiem może mi kolega podpowiedzieć jak wykorzystać kod źródłowy nie mam pojęcie.Nauczyłem się programować wykorzystując (BIN ,HEX) ale co z tym zrobić nie mam pojęcia.Z góry dziękuje
Re: Program
Musisz zrobić sobie bin z kodu źródłowego za pomocą BASCOM AVR, klikając przycisk "kompiluj"
Popatrz na odpowiedzi wcześniej, już ktoś to napewno kompilował
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.
avrdude i kasowanie eepromu
witam
mam taki problem: do programowania procesora używam wersji tekstowej (terminala)
Avrdude. Nie mogę znaleźć opcji, aby po wgraniu nowego programu nie kasował mi zawartości wewnetrznej pamięci procesora - eepromu.
Zależy mi na tym, bo za każdym razem muszę rejestrować DS'y, a mam je wszystkie przykręcone do kostki.
Max
Re: Program
Trzeba to w fusebitach przestawić to będzie najprościej bit EESAVE lub poprostu odczytywać sobie eeprom, wgrywać program i wgrywać eeprom na nowo
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.
zmiany w fusach sobie
zmiany w fusach sobie darowałem, ale faktycznie ta 2 metoda jest bardzo dobra.
dzięki wielkie za podpowiedz,
Max
Re: avrdude i kasowanie eepromu
jest taka dyrektywa w bascom, ale nie wiem czy działa. cytat zaczerpnięty z polskiego helpa.
Przeznaczenie:
Informuje kompilator by nie zmieniał lub usuwał pliku .EEP.
Składnia:
$EEPLEAVE
Opis:
Jeśli istnieje potrzeba umieszczenia danych w pamięci EEPROM procesora, a dane te zostały utworzone przez inne narzędzie, można w programie umieścić dyrektywę $EEPLEAVE.
Normalnie plik .EEP (gdzie znajdują się te dane) jest tworzony przez BASCOM. Podanie właśnie tej dyrektywy jest sygnałem dla kompilatora by pozostawił istniejący plik .EEP. W innym wypadku plik ten mógłby być usunięty lub zmieniony.
Moja strona w powijakach
może coś z zasilaniem
Wykonałem w.w. prosty sterownik domowy wczesną wiosną. Chodził znakomicie.
Jakiś czas temu z nieznanych przyczyn spalił mi się stabilizator. Wymieniłem go i podkręciłem do niego radiator, układ znowu chodził. Dzisiaj niestety znowu coś się stało "chyba z tym zasilaniem", bo na wyświetlaczu mam ### - coś takiego, natomiast jak układ jest zasilany z usb wszystko pięknie działa.
Może mi ktoś podpowiedzieć co mam teraz wymienić, albo czemu tak się dzieje?
Max
Sterownik
A jakim napięciem i z czego zasilacz układ? Standardowo stabilizatory wytrzymują spokojnie ten 1A a przypuszczam że układ pobiera znikomy prąd więc wykluczał bym zbyt duży pobór prądu. Mogło go uszkodzić zbyt wysokie napięcie na wejściu więc napisz co tam podłączasz ewentualnie jakieś zwarcie w układzie które spowodowało że prąd nagle wzrósł ale skoro układ nadal działa to pewnie do jakiegoś większego zwarcia nie doszło.
Co cie nie zabije to cie wzmocni.
(Nie dotyczy kondensatora 230V)
zasilam układ zwykłym
zasilam układ zwykłym zasilaczem od telefonu nokia.
Max
Oryginalna czy za 0.99zł z
Oryginalna czy za 0.99zł z alledrogo.pl w sumie ta za 99gr. powinna sama się spalić a nie palić 7805 aha a co się dzieje gdy dasz jakiś zasilacz na najzwyklejszy zasilacz niestabilizowany ale przed 7805 na trafku co się dzieje z układem?
Zastosowałem oryginalny
Zastosowałem oryginalny zasilacz od starego telefonu Nokia.
Ale sytuacja się nieco zmieniła, bo po podłączeniu tego samego zasilacza wieczorem układ zadziałał bez problemu. Próby powtarzałem kilkukrotnie i teraz wszystko chodzi. Zastanawiam się co będzie jutro.
Max
Problem z zegarem i nie tylko
Witam,
wykonałem ten sterownik w nieco zmienionej wersji (dołożone dwa dodatkowe triaki z wolnych wyjść Uc). Podstawowy problem dotyczy wyświetlania czasu ponieważ od 40 do 59 sekundy zamiast pierwszej cyfry w godzinie wyświetlana jest cyfra 4 lub 5. tak to zegar chodzi bardzo ładnie. Druga sprawa jaką zauważyłem to na złączach po triakach występuje napięci ok 30V AC i nie wiem skąd ono się bierze. Dodam że jestem początkującym elektronikiem. Proszę o pomoc.
Pozdrawiam
Re: Sterownik
Uruchom na początek oryginalny program bez zmian na dodatkowe triaki, może poprawi się sprawa z wyświetlaniem. Przekompiluj go ponownie w bascomie i wtedy wgraj do procka. Na triakach może być niewielkie napięcie, wkońcu to elementy elektroniczne a nie mechaniczne tak jak przekaźnik. Podczas włączenia poprostu zmienia się rezystancja (najprościej mówiąc)
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.
niestety wgranie programu nie
niestety wgranie programu nie pomogło, dalej od 40 do 59 sekundy zmienia godzinę. ale wygląda to tak jak by do godziny dodawał 40. Wyczytał gdzieś na forum elektrody że trzeba maskować wole bity. Spróbuję jeszcze tego.
Napięcia na wyjściach lamp i termostatu
Witam,
Zrobiłem sterownik i wszystko od razu zadziałało !!! Zastosowałem tylko inne warystory (Warystor metalowo-tlenk. RMS 275VAC/350VDC 1200A 0,25W) bo nie miałem takich jakie podałeś.
Mam tylko jedno pytanie. Na wyjściach lamp i termostatu (kiedy nie są włączone) mam ciągle napięcie 178 V. Po włączeniu (czy to ręcznie czy timerem) napięcie jest 230 V - czyli OK. A pytanie to: czy na wyjściach lamp i termostatu, kiedy nie są aktywne, ma być 178 V ? Jeśli nie to poradźcie co powinienem sprawdzić.
Dziękuję za pomoc.
Kamil
Re: Sterownik
Nie rób pomiarów na wyjściach bez obciążenia, masz triaki na wyjściu więc jak jest triak wyłączony to przez swoją dużą rezystancję może wskazywać napięcie. Podłącz lampy do gniazd ark i wtedy dopiero rób pomiary na złączu
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 (ds-y)
Dzięki za odpowiedź/wyjaśnienie. DS-y też się zarejestrowały i już wszystko gra. Pozdrawiam
Kamil
Zakup komponentów
Witam,
Zamierzam wykonać ten projekt i wykorzystać go jako sterownik do akwarium.
Jako że nie jestem elektronikiem to przy kompletowaniu elementów spotkałem się z dwoma małymi problemami: 1- jakie mają być użyte rezystory(0,25W; 1W; 2W czy może jakieś inne)
2- jakie mają być użyte kondensatory (25V,50V,100V,160V czy może jakieś inne)
Z góry dzięki za pomoc.
Re: Sterownik domowy
Rezystory 1/4W, widać ze zdjęć. Co do kondensatorów to nie ma się nad czym zastanawiać, przecież układ jest na 5V to jakie kondensatory będą dobre? Na napięcie powyżej 5V, prawda?
Tylko elektrolit wejściowy który jest przed stabilizatorem zależy od napięcia jakie będzie na jego nóżkach ale jak będzie na 25V to napewno starczy bo układ nie powinien mieć aż tak dużego napięcia podanego na stabilizator. Kondensatory stałe i MKT i tak sa robione na napięcia minimum kilkadziesiąt V więc nie ma sie co nad nimi zastanawiać
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ęki mirley pozdro
Dzięki mirley
pozdro
Napięcia na wyjściach lamp i termostatu cz. 2
Witam ponownie,
Kilka postów do góry pisałem, że na wyjściach lamp i termostatu (kiedy nie są włączone) mam ciągle napięcie 178 V. Po włączeniu jest OK - 230V. Wspominałeś wcześniej, żebym najpierw podłączył lampy i wtedy sprawdzał napięcia ale niestety nawet jak lampy są podłączone to i tak świecą ale słabiej (kiedy sterownik powinien nie podawać napięcia). W chwili włączenia przez sterownik lampy rozjaśniają się do normalnego poziomu.
Bardzo proszę o wskazówkę, jakąś poradę. Nie mam pojęcia od czego zacząć sprawdzanie. Generalnie wszystko chodzi jak trzeba tylko z wyjściami lamp mam kłopot.
Pozdrawiam
Kamil
Re: Sterownik
To w takim razie jest problem z triakim, optotriakim lub innym elementem na drodze od uC do triaka. Sprawdź po pierwsze czy mikrokontroler podaje poprawne napięcie na optotriak, czy w chwili włączenia jest 0V na pinie mikrokontrolera a w chwili wyłączenia jest 5V? Czy diody D3-D5 zaswiecają się i gaszą poprawnie? jakie masz triaki?
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.
Diody zapalają się i gasną
Diody zapalają się i gasną poprawnie. Triaki mam takie: BT138-600E
Triak 600V 12A 25mA TO220AB. Napięcia sprawdzę jutro jak wrócę do domu.
Dzięki za podpowiedź.
Kamil
Re: Sterownik
Sprawdziłem i jest tak: kiedy światła są wyłączone to na końcówkach uC jest 139mV. Kiedy światła są wyłączone na końcówkach uC jest 5,05V. Dziwi mnie, że tak dzieje się ze wszystkimi wyjściami światła, czyżby wszystkie triaki i optotriaki się zepsuły? Diody LED jak pisałem działają poprawnie czyli zapalają się w chwili włączenia (ręcznie czy automatycznie) świateł i gasną po wyłączeniu.
Bardzo proszę poradę jak z tego wybrnąć.
Dzięki i pozdrawiam
Kamil
Re: triak
Ciekawa sprawa.... mam te same triaki i nie było problemów. Rezystory w układzie wykonawczym są takie same? triaki zamontowane są tak jak na zdjęciu, a nie np odwrócone o 180 stopni? Możesz jeszcze zobaczyć czy sam optotriak działa: odłącz 230V od triaków i zmierz rezystancję wyjściową optotriaka, to miedzy tymi dwoma nóżkami co idą do rezystorów 180R.
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: RE: triak
Triaki zainstalowane jak trzeba. Rezystory też takie jak powinny (180R). Rezystancja na nóżkach optotriaka wynosiła 3k. Jedyne czego się dopatrzyłem to to, że użyłem optotriaków MOC3041 (takie jak w twoim opisie) a na zdjęciach twojego układu widzę MOC3021. Nie wiem czy to ma znaczenie bo nie miałem czasu zerknąć w datasheety. Masz może jeszcze jakiś pomysł co to moę być?
Dzięki za zainteresowanie :)
Kamil
Re: Optotriak
nie zależnie czy było włączone czy wyłączone to wyjście? w jednym stanie powinna być inna rezystancja niż w drugim
Z tego co pamiętam to MOC3041 jest dodatkowo wyposażony w obwody włączania w zerze sieci, żeby zakłóceń nie robiło. Nie powinno to mieć znaczenia ale możesz jednego podmienić na MOC3021 aby wyeliminować wszystkie podejrzenia
A masz wlutowane warystory za triakami? może one stanowią problem, ja nie dałem mimo umieszczenia na schemacie
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.
Witam czy jest możliwość
Witam czy jest możliwość dodania daty zamiast linijki "Aktualny czas" najlepiej z rokiem.
Re: Data
Jest taka możliwość tylko nie mam czasu tego dopisać. Samo wyświetlanie raczej nie powinno sprawić problemów, natomiast jeszcze trzeba to do menu dopisac a to zajmie trochę czasu na przypomnienie sobie co i gdzie jest w programie napisane
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: Re: optotriak
Tak mam warystory. Już je wylutowałem i wszystko gra: 0V na wyłączonym i 230V na włączonym.
Dla odmiany, żebym nie miał za lekko ;) , teraz na wyświetlaczu nic nie widać. Świeci się ale nie widać żadnych literek. Sterownik działa tylko nic nie widać (o zadanych godz. włącza i wyłącza lampy itd).
Kamil
Re: LCD
Spróbuj przeprogramowac procka... poruszaj potencjometrem kontrastu lub popraw luty złącza wyświetlacza. Może coś poruszałeś i przestał LCD 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.
Mam pytanie związane z
Mam pytanie związane z dodaniem jeszcze jednego triaka który ma być sterowany czasowo podobnie jak pozostałe dwa. Jak do tej pory udało mi się zrobić : menu, wybór pracy automat - ręcznie, ustawianie czasu i tu zaczyna się problem ponieważ po ustawieniu godziny triak się nie załącza, mogę jedynie sterować ręcznie. Nie znam jeszcze tak bardzo BASCOMA ale zdaje mi się że odpowiedzialny za to jest ta część kodu:
Bardzo proszę o pomoc.
Re: Sterownik
Jeśli już dorobiłeś sobie menu to musiałeś powięszyć tablicę godzin G i tablicę minut m o dwa dodatkowe elementy. Teraz modyfikujesz fragment kodu:
jeszcze trzeba zmienną Ar_tr3 zadeklarować i odpowiednia ją ustawiać w menu oraz nazwac port jako Tr3
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.
Zmodyfikowałem ten kawałek
Zmodyfikowałem ten kawałek kodu ale przy compilowaniu wywala taki błąd: Error:46 Line: 1052 Assignment error [ELSE IF N:0 3THEN:0] linia 1052 w kodzie to:
Re: ELse
No bo jest to źle napisane.... wstaw
powinno zadziałać, a jak nie to wstaw case'a zamiast tych dwóch ifów z else'ami
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ęki teraz jest wszystko
Dzięki teraz jest wszystko dobrze do momentu odpięcia zasilania, nie zapamiętuje mi ustawień dla tego dodanego triaka, nie za bardzo wiem gdzie to dopisać.
Układ RTC PCF8583
Mam małe pytanie czy Układ RTC PCF8583 mogę zastąpić układem PCF8563?
Re; PCF RTC
Teoretycznie adresy bazowe się zgadają ale w praktyce masz inny układ rejestrów więc musiał byś sobie przerobić procedury Zapis_RTC i Odczyt_RTC. Nie mam kiedy tego zrobić ani jak tego wytestować bez budowania układu na płytce testowej więc albo zastosuj układ który jest w projekcie albo na podstawie karty katalogowej musisz zmodyfikowac te procedury
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.
+ 1 TERMOMETR
CHCIAŁBYM DODAĆ JESZCZE 1 TERMOMETR, Z PROGRAMEM CHYBA SOBIE PORADZĘ, ALE CO Z OPORNOŚCIĄ??
PROSZĘ MI DORADZIĆ, CO MAM ZROBIĆ Z TYMI REZYSTENCJAMI I JEŚLI MOŻNA TO JAK DALEKO MOŻNA ODSUNĄĆ DS'A (SKRĘTKĄ KOMPUTEROWĄ) JA MAM OK 70METRÓW.
Max
Re: DS
Dodaj kolejny Ds, schematu nie zmieniaj, wszystkie elementy bedą dobre. Podłacz czujnik 3 przewodami, żeby miał tez pewne zasilanie i powinno zadziałać na te 70m. Ja testowałem na około 20-30m z bele jakim kablem, na skrętce powinno być lepiej
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.