Urządzenie to jak sama nazwa wskazuje jest sterownikiem do instalacji centralnego ogrzewania. Układ sprawdza się w bardzo prostych instalacjach posiadających jedną wspólną pompkę do grzejników i do wymiennika C.W.U. W wersji podstawowej nie jest oprogramowany wentylator nadmuchowy, gdyż nie było go w instalacji w której opisywany sterownik miał działać. Dodatkowe wyjście z triakiem pozwoli łatwo zmodyfikować program i dodać obsługę wentylatora. Sterownik posiada dwa tryby pracy, letni w którym głównie nastawia się na grzanie wody i pompa pracuje gdy temperatura na piecu jest większa niż w wymienniku, oraz tryb zimowy gdzie pompa pracuje zawsze gdy temperatura na piecu jest większa od minimalnej. Dodatkową funkcją sterownika jest pomiar temperatury na piecu, w bojlerze, w domu i na zbiorniku wyrównawczym. Konfiguracja w menu pozwala ustawić temperaturę minimalną i alarmową oraz zmieniać tryb pracy.
Schemat ideowy układu znajduje się na rysunku poniżej:
Sercem układu jest mikrokontroler U1 (ATMega8) wraz z rezonatorem kwarcowym X1(16MHz) i kondensatorami C1 (22pF) i C2 (22pF). Kondensatory C3 (220uF) i C4 (100nF) filtrują napięcie zasilania, które powinno zostać podane na złącze Zas (ARK2) z drugiej płytki sterownika. Potencjometr P1 (10k) umożliwia regulację kontrastu wyświetlacza W1 (LCD 2x16). Za pomocą tranzystora T1 (BC556) i rezystora R2 (3,3k) możliwe jest włączenie podświetlania wyświetlacza w sposób programowy. Rezystor R1 (47R) ogranicza prąd struktur LED podświetlających wyświetlacz. Buzzer z generatorem BUZ1 (5V) pełni funkcję sygnalizatora alarmu. Alarm uruchamiany jest za pośrednictwem tranzystora T2 (BC556) oraz rezystorów R3 (3,3k) i R4 (3,3k) gdy temperatura przekroczy ustawiony próg. Złącze 1W_TR (ARK3) służy do podłączenia magistrali 1-Wire z czujnikami DS18B20 (4 sztuki) oraz zapewnia połączenie sterownika z płytka wykonawczą. Układ U2 jest w praktyce podstawką pod czujnik DS18B20, która przydaje się w momencie rejestracji czujników. Zworka 1W_ENA (goldpin) umożliwia odłączenie całej magistrali od płytki na czas rejestracji czujników. Rezystor R8 (4,7k) jest konieczny do poprawnej pracy układów DS18B20. Zworki DSR1...DSR3 (goldpin) poprzez różne kombinacje pozwalają na wybranie który czujnik ma być w danej chwili zarejestrowany. Przyciski S1..S3 (uSwitch) stanowią klawiaturę urządzenia, natomiast diody D1..D3 (LED) wraz z rezystorami ograniczającymi prąd R5...R7 (470R) stanowią kontrolki pracy pompy, wentylatora oraz alarmu. Złącze Prog (goldpin) służy do zaprogramowania procesora, podobnie jak pin Res, który dodatkowo umożliwia reset procesora podczas rejestracji czujników.
Schemat ideowy układu wykonawczego znajduje się na rysunku poniżej:
W skład modułu wykonawczego wchodzi stabilizator napięcia U1 (7805) wraz z kondensatorami C1 (220uF) i C2 (47uF). Do złącza Zas (ARK) należy podłączyc napięcie o wartości w granicach 7-15V, w pierwowzorze miała to być ładowarka od telefonu. Złącze VCC (ARK) umożliwia zasilanie sterownika. W roli elementów wykonawczych pracują triaki TR1 (BT138-600E) oraz TR2 (BT138-600E), rezystory R2 (180R), R3 (180R), R5 (180R) i R6 (180R) ograniczają prąd bramek triaków. W rolli zabezpieczenia przeciwprzepięciowego zastosowano warystory WR1 (JVR-7N431) i WR2 (JVR-7N431), chociaż nie są one wymagane. Przed zwarciem zabezpiecza bezpiecznik F1 (2A). Złącze 230V umożliwia podłączenie zasilania sieciowego do płytki. Wyjściami napięciowymi dla pompy i wentylatora są złącza TRO1 (ARK) i TRO2 (ARK). Oddzielenie wysokonapięciowych obwodów sieciowych od niskonapięciowego sterownika zapewniają optotriaki OPT1 (MOC3041) i OPT2 (MOC3041). Prąd ich struktur LED ograniczają rezystory R1 (330R) i R2 (330R), a szeregowo włączone diody LED sygnalizują stan triaków. Do złącza TRI (ARK) podłączamy wyjścia sterownika.
Układ z powodzeniem można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj.
Układ wykonawczy można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj
Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj.
1x Złącze śrubowe ARK2(podwójne)
1x Złącze śrubowe ARK3(potrójne)
4x Listwa Goldpin 1x2 (1W_ENA)
1x Listwa Goldpin 1x3 (DS18B20)
1x Listwa Goldpin 1x4 (Prog)
3x uSwitch
3x 3,3k
1x 47R
3x 470R
1x 4,7k
1x Potencjometr Montażowy 10k
2x 22pF
1x 100nF
1x 220uF Elektrolit
1x Rezonator Kwarcowy 16MHz
3x Dioda LED
2x BC556
1x Mikrokontroler ATMEGA8 + Podstawka
1x Buzzer z Generatorem 5V
1x 16x2
1x Bezpiecznik 2A
6x Złącze śrubowe ARK2(podwójne)
4x 180R
2x 330R
2x Warystor JVR-7N431
1x 47uF Elektrolit
1x 220uF Elektrolit
2x Dioda LED
1x Stabilizator 7805
2x BT138-600E
2x MOC3041
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 = "m8def.dat"
$crystal = 16000000
'Config Porta = &B00111111 : Porta = &B11111111
Config Portb = &B11111000 : Portb = &B11111111
Config Portc = &B11111111 : Portc = &B11111111
Config Portd = &B00011111 : Portd = &B11111111
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 'mirley UPT M16
Config Lcd = 16 * 2
Cls
Cursor Off Noblink
Config 1wire = Pind.2
Sw_port Alias Pinb 'nazwa portu
Pompa Alias Portd.3
Went Alias Portd.4
Buzz Alias Portd.1
Light Alias Portd.0
Ds1r Alias Pind.7
Ds2r Alias Pind.6
Ds3r Alias Pind.5
Led_a Alias Portb.5
Led_p Alias Portb.3
Led_w Alias Portb.4
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 , Autopowrot As Byte , Autolight As Byte
Dim Ds1(8) As Byte , Ds2(8) As Byte , Ds3(8) As Byte , Ds4(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(4) As Word
Dim T_min As Word , T_alarm As Word
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 , M As Byte
Dim Buzz_en As Bit
Dim Tryb_letni As Bit '0- tryb zimowy, 1- tryb letni
'************* Zmienne Koniec ****************
'************ Warunki Poczatkowe ***************
'***********************************************
Light = 0
Lcd " Sterownik C.O."
Lowerline
Lcd " Wersja 0.96"
Wait 1
If Ds1r = 1 And Ds2r = 0 And Ds3r = 0 Then
Ds_adr = 30
Gosub Ds_reg
Cls
Lcd "Ds Piec"
End If
If Ds1r = 0 And Ds2r = 1 And Ds3r = 0 Then
Ds_adr = 40
Gosub Ds_reg
Cls
Lcd "Ds Bojler"
End If
If Ds1r = 1 And Ds2r = 1 And Ds3r = 0 Then
Ds_adr = 50
Gosub Ds_reg
Cls
Lcd "Ds Zbiornik"
End If
If Ds1r = 0 And Ds2r = 0 And Ds3r = 1 Then
Ds_adr = 60
Gosub Ds_reg
Cls
Lcd "Ds Kuchnia"
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)
Hbyte(1) = 60 + N
Readeeprom Ds4(n) , Hbyte(1)
Next N
Readeeprom T_min , 2
Readeeprom T_alarm , 4
Readeeprom Hbyte(1) , 6
Tryb_letni = Hbyte(1).0
If T_min < 100 Or T_min > 950 Then T_min = 400
If T_alarm < 100 Or T_alarm > 950 Then T_alarm = 850
Wait 1
Wyswietlono = 1
Wyswietlanie = 1
Autosave = 5
Autolight = 0
'******* Warunki Poczatkowe Koniec ***********
'************** Petla glowna ******************
'***********************************************
Do
'*********************************************** co 4ms
If Flaga_4ms = 1 Then
Flaga_4ms = 0
Gosub Przyciski
If Wyswietlono = 1 Then Gosub Wysw_lcd
End If
'***********************************************
'*********************************************** co 500ms
If Flaga_500ms = 1 Then
Flaga_500ms = 0
Mig = Not Mig
'Portd.6 = Buzz_en
If Pompa = 0 Then Led_p = Mig Else Led_p = 1
If Went = 0 Then Led_w = Mig Else Led_w = 1
Led_a = Buzz
Wyswietlanie = Poz_wysw
End If
'***********************************************
'*********************************************** co 1s
If Flaga_1s = 1 Then
Flaga_1s = 0
If Light = 0 Then
Incr Autolight
If Autolight >= 20 Then Light = 1
Else
Autolight = 0
End If
If Poz_wysw <> 1 Then
Incr Autopowrot
If Autopowrot = 6 Then
'Poz_wysw = 1
Wyswietlanie = 1
Poz_ust = 0
End If
Else
Autopowrot = 0
End If
If Autosave < 5 Then
Incr Autosave
If Autosave = 5 Then
'tu zapis do eeprom
Writeeeprom T_min , 2
Writeeeprom T_alarm , 4
Hbyte(1) = 0
Hbyte(1).0 = Tryb_letni
Writeeeprom Hbyte(1) , 6
Poz_ust = 0
End If
End If
Gosub Temperatura
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 &B00000111 'maska na piny nieu?ywane jako sw
If Sw <> &B00000111 And Stan_sw = Sw Then
Incr Licznik_sw
If Licznik_sw = 68 Then
Licznik_sw = 0
Select Case Stan_sw
Case &B00000011: 'incr
'***********************************************************
Select Case Poz_wysw
Case 3:
Select Case Poz_ust
Case 0:
Poz_ust = 1
Case 1:
If T_min < 950 Then T_min = T_min + 10
Case 2:
If T_alarm < 950 Then T_alarm = T_alarm + 10
End Select
Autosave = 0
Case 4:
If Poz_ust = 0 Then Poz_ust = 1 Else Tryb_letni = Not Tryb_letni
Autosave = 0
'Case 5:
End Select
If Buzz = 0 Then Buzz_en = 0
Autopowrot = 0
Light = 0
Autolight = 0
Case &B00000101: 'ustaw next
'***********************************************************
If Poz_ust = 0 Then
Wyswietlanie = Poz_wysw + 1
If Wyswietlanie = 5 Then Wyswietlanie = 1
Else
Select Case Poz_wysw
Case 3:
Incr Poz_ust
If Poz_ust = 3 Then Poz_ust = 0
Case 4:
Incr Poz_ust
If Poz_ust = 2 Then Poz_ust = 0
End Select
End If
If Buzz = 0 Then Buzz_en = 0
Autopowrot = 0
Light = 0
Autolight = 0
Case &B00000110: 'decr
'***********************************************************
Select Case Poz_wysw
Case 3:
Select Case Poz_ust
Case 0:
Poz_ust = 1
Case 1:
If T_min > 100 Then T_min = T_min - 10
Case 2:
If T_alarm > 100 Then T_alarm = T_alarm - 10
End Select
Autosave = 0
Case 4:
If Poz_ust = 0 Then Poz_ust = 1 Else Tryb_letni = Not Tryb_letni
Autosave = 0
'Case 5:
End Select
If Buzz = 0 Then Buzz_en = 0
Autopowrot = 0
Light = 0
Autolight = 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: 'temp piec bojler
'**************************************************************
If Poz_wysw <> 1 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 "Piec:"
Lowerline
Lcd "Bojler:"
End If
For N = 1 To 2
Hword(1) = T(n) / 10
Hword(2) = 12
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
If Minusy.n = 1 Then Lcd "-"
Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C"
Next N
Case 2: 'temb banka,dom
'**************************************************************
If Poz_wysw <> 2 Then
Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 'stopien
Cls
Lcd "Zbiornik:"
Lowerline
Lcd "Kuchnia:"
End If
For N = 3 To 4
Hword(1) = T(n) / 10
Hword(2) = 12
If Hword(1) >= 10 Then Decr Hword(2)
If Hword(1) >= 100 Then Decr Hword(2)
If Minusy.n = 1 Then Decr Hword(2)
M = N - 2
Locate M , Hword(2)
Hword(2) = T(n) Mod 10
If Minusy.n = 1 Then Lcd "-"
Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C"
Next N
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 "T.Min:"
Lowerline
Lcd "T.Alarm"
End If
If Poz_ust = 1 And Mig = 1 Then
Locate 1 , 10
Lcd " "
Else
't minimalna
Hword(1) = T_min / 10
Hword(2) = 12
If Hword(1) >= 10 Then Decr Hword(2)
If Hword(1) >= 100 Then Decr Hword(2)
Locate 1 , Hword(2)
Hword(2) = T_min Mod 10
Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C "
End If
If Poz_ust = 2 And Mig = 1 Then
Locate 2 , 10
Lcd " "
Else
't alarmowa
Hword(1) = T_alarm / 10
Hword(2) = 12
If Hword(1) >= 10 Then Decr Hword(2)
If Hword(1) >= 100 Then Decr Hword(2)
Locate 2 , Hword(2)
Hword(2) = T_alarm Mod 10
Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C"
End If
Case 4:
'**************************************************************
If Poz_wysw <> 4 Then
Cls
Lcd "Tryb: "
End If
Locate 1 , 7
If Poz_ust = 1 And Mig = 1 Then
Lcd " "
Else
If Tryb_letni = 1 Then Lcd "Letni" Else Lcd "Zimowy"
End If
Case 5:
'**************************************************************
If Poz_wysw <> 5 Then
Cls
Lcd "Przedmuch:"
Lowerline
Lcd "Przerwa:"
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():
Case 4:
1wwrite &H55
1wwrite Ds4(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 = 5 Then Ktory_ds = 0
Return
'********** Temperatura Koniec *********
'************ Sterowanie ***************
'***********************************************
Sterowanie:
If Tryb_letni = 1 Then
If T(1) >= T_min Then
Hword(1) = T(2) + 70
Hword(2) = T(2) + 30
If T(1) >= Hword(1) Then Pompa = 0
If T(1) <= Hword(2) Then Pompa = 1
Else
Pompa = 1
End If
Else
If T(1) >= T_min Then
Pompa = 0
Else
Pompa = 1
End If
End If
If T(1) >= T_alarm Or T(2) >= T_alarm Then
If Buzz_en = 1 Then Buzz = Not Buzz Else Buzz = 1
Else
Buzz = 1
Hword(1) = T_alarm - 50
If T(1) <= Hword(1) And T(2) <= Hword(1) Then Buzz_en = 1
End If
'tutaj sterowanie wentylatorem
Return
'******** Sterowanie Koniec ************
Ustawienia fusebitów dla mikrokontrolera ATMEGA8 przedstawione są poniżej:
Wstępne uruchomienie sterownika sprowadza się do zaprogramowania czujników z którymi będzie współpracował. Przy wyłączonym zasilaniu rozwieramy zworkę 1W_ENA wkładamy pierwszy czujnik (od pieca) do złącza na płytce (układ U2), rozwieramy zworkę DSR1 i zwieramy DSR2 i DSR3. Włączamy zasilanie a na wyświetlaczu pojawia się napis "Ds Piec" co świadczy o poprawnym odczycie czujnika. W tej chwili temperatura powinna być już odczytywana. Wyłączamy ponownie zasilanie i kontynuujemy rejestrację pozostałych czujników w taki sam sposób, z tym że ustawienia zworek DSR1...DSR3 są inne. Podczas rejestracji do układu może być jednorazowo podłączony tylko jeden czujnik.
Ustawienia zworek:
Piec: DSR1 = 1, DSR2 = 0, DSR3 = 0
Bojler: DSR1 = 0, DSR2 = 1, DSR3 = 0
Zbiornik wyrównawczy: DSR1 = 1, DSR2 = 1, DSR3 = 0
Dom: DSR1 = 0, DSR2 = 0, DSR3 = 1
*"0" oznacza zworkę zwartą, a "1" rozwartą
Po zakończeniu procedury rejestracyjnej czujników podłączamy je wszystkie naraz do układu i umieszczamy w przeznaczonych miejscach. W przypadku zmiany jednego z czujników trzeba go zarejestrować w taki sam sposób pamiętając że wszystkie pozostałe muszą być odłączone (Zworka 1W_ENA).
Zaawansowany sterownik C.O.
To super aby powstał do wiosny :)
Damian
RE.Re: Sterownik C.O
Jesli uwzglednilbys tez funkcje o ktorych pisalem wczesniej to cale grono piwowarow domowych byloby Ci wdzieczne!
Witam zmieniłem fragment kodu
Witam zmieniłem fragment kodu aby w drugiej linii pokazywała się temperatura zadana,niby działa ale temperatura wyświetlana jest ujemna (wyczytałem ,że trzeba pomnożyć przez -1 ) tylko gdzie kombinuję i coraz inne cyfry się wyświetlają tylko nie bez minusa.
If Poz_wysw <> 1 Then
Cls
Lcd "Piec :"
Lowerline
Lcd "T.zad :"
End If
Tt(1) = T(1)
Tt(2) = T_zadana
For N = 1 To 2
Hword(1) = Tt(n) / 10
Hword(2) = 12
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) = Tt(n) Mod 10
If Minusy.n = 1 Then Lcd "-"
Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C"
Re: CO
Powinno zadziałać:
dobrze kombinowałeś, tylko temperatura minimalna nazywa się T_min, chyba że jeszcze coś modyfikowałeś w programie
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.
Tak mam jak piszesz,chodzi mi
Tak mam jak piszesz,chodzi mi otu tylko,że Temp_zad(min) wyświetla się ze znakiem ujemnym np: Temp_zad : -45 stopni.
RE: CO
Jeszcze zmienną minusy, trzeba podmienić:
spróbuj tak, trzeba dodać zmienną minusy2 as byte. Program odczytuje ujemną temperaturę na drugim czujniku a co za tym idzie wstawia minus tam gdzie wtedy miał temperaturę bojlera. Teraz powinno być ok
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ę teraz wyświetla
Dziękuję teraz wyświetla poprawnie.Jeszcze mam jedną prośbę (nie wiem czy możliwą do realizacji ale spytać mogę).Chciałbym aby jeżeli po resecie (zanik prądu dość częsty u mnie) T.piec większa niż np.40 to wentylator automatycznie kontynuuje pracę z zachowaniem automatycznego wyłączenia po czasie itp (wtedy będzie to ideał sterownika).
Re: Sterownik c.o
Nie mam czasu żeby ci to w kodzie napisać dokładnie ale zrób zmienna start_went as bit oraz licz_start_went as byte. na starcie przed do loop do start_went przypisz 1 a do licznika 0.
W obsłudze flagi 1s wstaw na samym końcu po "gosub sterowanie" cos takiego:
powinno zadziałać, po starcie odczeka 6 sekund i sprawdzi czy temperatura jest większa niż minimalna. Jesli tak to uruchomi wentylator tak jakbyś kliknął przycisk
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.
Poczekam aż będziesz miał
Poczekam aż będziesz miał chwilę rozpisać, zmienne i fragment dopisałem ale nie chce działać (na starcie przed do loop do start_went przypisz 1 a do licznika 0 -nie wiem gdzie to przypisać).Dziękuję.
Re: CO
Na starcie to np tutaj:
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.
Działa z tym, ze jeżeli
Działa z tym, ze jeżeli temperatura po restarcie jest większa od T_min,chciałbym aby to była wartość stała np.40 stopni.Czy jeśli wpiszę tam (If T(1) >= 40 Then)
to zadziała ?
Re: C.O
Tak zadziała tylko napisz 400 a nie 40 bo temperatura jest wartością pomnożoną przez 10 dla zachowania w zmiennej całkowitej "przecinka"
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ę.
Dziękuję.
A słuchajcie czy jest
A słuchajcie czy jest możliwość, że występuje problem z programowaniem atmegi z oznaczeniem Atmega8A w układzie sterownika? Bo z moich ostatnich obserwacji na to wynika.
Re: M8
Nie ma prawa być problemu.... sam używam już teraz w większości przypadków M8A M16A 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.
Mam tak, że jak włożę atmega8
Mam tak, że jak włożę atmega8 bez żadnego oznaczenia to zczytuje ją bascomAVR bez problemu, a gdy włożę atmega8A to przy próbie identyfikacji chipu wyrzuca błąd: Could not identify chip with: ID:FFFFFF
Sprawdziłem napięcia - są w porządku, podpięcie do mikroprocka również (atmega8 czyt)
Miałbyś na to jakąś radę?
Problem rozwiązany,
Problem rozwiązany, sprawdziłem na 3 programatorach i na trzecim w końcu ruszyła atmega8L:)
Pytanie jeszcze mam odnośnie zasilenia magistrali 1-wire - czy układ wytrzyma zasilanie pasożytnicze? Tzn zwarte Vdd do Gnd na czujnikach?
Re: DS
Chodzi o podłączenie dwuprzewodowe czujników? możesz sprawdzić jakby nie działały to można spróbować wydłużyć odstępy między odczytami temperatury
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.
Wyświetlacz LCD symbol
Witam chciałbym zrobić ten projekt ale nie wiem jaki może być symbol tego wyświetlacza.Proszę o odpowiedź.
mati
Sterownik z podajnikiem
Witam,
Chciałbym się dowiedzieć czy będzie sterownik taki jak ten ale dodaktowo aby miał sterowanie podajnikiem.
Re; Sterownik C.O.
Wyświetlacz 16x2 znaki zgodny ze sterownikiem HD44780.... dowolny model o tych parametrach powinien działać.
----------
Cały czas mam zamiar pisać taki sterownik ale nie mam kiedy
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 można by było dodać
witam czy można by było dodać do programu kad żeby alarm temperatury włączył się ponowmnie po skasowaniu jeżeli temperatura nadal rośnie (o 2stopnie)
Problem z załączeniem pompy i dmuchawy.
Panowie mam problem. otóż zmontowałem sobie ten sterownik i wgrałem wsad w wersji z wentylatorem i z przedmuchami ustawianymi z pozycji menu.
Po włączeniu sterownika pokazuje jaka jest temperatura na piecu i bojlerze. mam ustawiony tryb letni.
Jak nacisnę przycisk "-" to na chwilę mruga dioda od wentylatora ale wentylator nie uruchamia sie (napięcie zmierzone miernikiem 160v) i po chwili wyłącza się (na płytce wykonawczej odpowiednio zapala sie dioda na chwilę i gaśnie) po uzyskaniu odpowiedniej temperatury na piecu (ustawione 45st) pompka wogóle się nie załącza a jeżeli juz się włączy to świeci dioda na obydwu płytkach ale napięcie na wentylatorze jest 0v.
wstawione optotriaki takie jak na zdjęciu moc3041, warystory są założone, rezystory prawidłowe. pod kątem poprawności lutów sprawdzałem kilka razy.
Gdzie szukać przyczyny usterki?
Problem został rozwiązany- problemem okazało się zasilanie- włożyłem stabilizator 3,3v i miałem za niskie napięcie. PO wymianie na stabilizator 5v wszystko jest ok. Idę założyć i testować sterowniczek.
Pozdrawiam
Witam Złożyłem już wszystkie
Witam
Złożyłem już wszystkie elementy w tym sterowniku, zaprogramowałem procesor(nie wyskoczyły żadne błędy podczs programowania) włożyłem czujnik temperatury oraz wszystkie zworki tak jak należy ,a gdy podłączę zasilanie to świeci tylko wyświetlacz bez żadnej treści.
Bardzo proszę o podpowiedź co robie źle.
Pozdr
Witam Złożyłem wszystkie
Witam
Złożyłem wszystkie elementy w tym sterowniku, zaprogramowałem procesor(nie wyskoczyły żadne błędy podczas programowania),podłączyłem czujnik temperatury oraz zworki tak jak należy ,a gdy włączę zasilanie to świeci tylko wyświetlacz bez żadnej treści.
Bardzo proszę o podpowiedź co robię źle.
Pozdr
Najprawdopodobniej masz źle
Najprawdopodobniej masz źle podłączony wyświetlacz posprawdzaj jeszcze wszystkie połączenia od IC oraz od wyświetlacza czy wszystkie przewodzą jak w schemacie :)
dobra sprawdzę i dam
dobra sprawdzę i dam odpowiedź
mati
sprawdziłem połączenia są jak
sprawdziłem połączenia są jak na schemacie
mati
sprawdź potencjometr od
sprawdź potencjometr od kontrastu moze jest skrecony za dużo lub jest uszkodzony- mialem taki przypadek kiedys i dlugo szukalem problemu.
Pozdrawiam
już działa potencjometr od
już działa potencjometr od wyświetlacza był źle ustawiony.
mati
Witam Uruchomiłem sterownik
Witam
Uruchomiłem sterownik ,ale mam problem ponieważ jedno z wyjść w momencie włączenia załączy się na chwilę i zgaśnie a drugie wogóle się nie załącza.
Sprawdź napięcie zasilania,
Sprawdź napięcie zasilania, ja miałem podobny problem i okazało sie że na stabilizator wchodzilo 5v i za stabilizatorem mialem ledwo 3,5 -caly uklad niby dzialal ale byl problem z zalaczaniem tyrystorow.
Dwie pompki
Witam
mam pytanie czy jes mozliwosć rozbudowy sterownika o dwie pompki do grzejników i osobno do wymiennika C.W.U. zamiast wentylatora lub dołożyć dodatkową.
Re: Sterownik co
Jak już pisałem wcześniej jest dużo możliwości zrobienia dodatkowych funkcji do sterownika jednak nie idzie tego dopisać w bieżącej wersji sprzętu. Poza tym mam w planach ad dłuższego czasu zrobienie zaawansowanego sterownika co z tymi wszystki bajerami ale ciągle coś mi wypada i spycham to na dalszy plan
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.
Impulsator
Czy ktoś posiada prosta procedurę do wpięcia w kod żeby działał poprawnie impulsator
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Re: Impulsator
A to co mam w kodach źródłowych się nie nadaje? Ewentualnie zrób to na przerwaniach, jedna z nóżek impulsatora wywołuje przerwanie na zboczu narastającym, zaraz po jego wystąpieniu sprawdzasz drugą nóżkę..... jeśli jest na niej stan wysoki to obrót był w jedną stronę a jesli stan niski to w drugą stronę.
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.
Impulsator
Cześć Mirku
Właśnie nie działa jak powinno w obecnym układzie kodu. Pozmieniałem czasy eksperymentalnie zeby przy wolnych obrotach impulsatora uzyskać zmianę danych.
Niestety zmiana kodu pod impulsator nie ogranicza się tylko do skoku na przyciski. Potrzeba pozmieniać kod w kilku miejscach. Liczyłem na coś gotowego ale jak widać brak odzewu - a impulsator to świetna sprawa jesli pakuje się układ w obudowę.
pozdrawiam
Grzesek
PS
A może masz jakiś kod niepublikowany na łamach www i podeślesz na PRW lub maila - dziękuję z góry.
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Mam takie pytanie bo nie wiem
Mam takie pytanie bo nie wiem czy mam coś źle czy ten sterownik tak pracuje. Na wyświetlaczu po padaniu napięcia pojawia się rząd kratek jeżeli przytrzymam dowolny swith to sterownik pracuje jednak gdy puszczę to sterownik tak jakby zatrzymywał się wyłącza się podświetlenie wyświetlacza i temperatura przestaje wzrastać na wyświetlaczu pomimo mechanicznego wzrostu temperatury. Gdy przytrzymam "-" to załącza się triak i dioda żółta miga dopóki nie puszczę. Proszę o odpowiedź czy ja coś źle zrobiłem czy tak po prostu jest. Z góry dzięki
PCB
sprawdzaj płytke masz cos nie tak z pcb na to stawiam chyba ze cos pozmieniales w programie
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
W program nie ingerowałem a
W program nie ingerowałem a płytkę sprawdzałem pod względem zwarć i czy nie pomyliłem elementów ale mam pytanie takie czy na miejscu switch wraz z nimi mają być zworki bo zauważyłem owe na schemacie montarzowym ?
Dziękuje za pomoc już
Dziękuje za pomoc już znalazłem co źle zrobiłem. Miałem wlutowane zamiast switch zwykłe przyciski zwierające i nie zauważyłem że jak niema switch to w jesnym miejscu niema połączenia teraz śmiga wielkie dzięki :D
Re: Impulsator C.O
Ja bym bezpośrednio w D loop dał kod:
Procedura obsługi przycisków musi być za to uproszczona i powinna zawierać tylko przycisk menu, który podłączysz do przycisku impulsatora. Ewentualnie można by to zostawić żeby był zarówno impulsator jak i przyciski.
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.
ds18s20
Witam czy do tego układu moge zastosować czujnik ds18s20, czy trzeba zmienic procedure odczytu?
Re: Sterownik
Tak na szybko to wydaje mi się że wystarczy zmienić linijkę:
na
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.
ATMega8A
Witaj, super projekt, zrobiłem, ale gdy doszło do zaprogramowania Atmegi dostałem kopa. Bascom wykrywa mi ATmega8A i jest ok, ale program nie chce |"siąść" na tym sterowniku. Dlaczego ? Wywala: The target chip: does not match the detected chip ATmega8A
Re: Atmega8A
Jaki masz programator że wykrywa ci M8A, ja używam usbaspa i avrdude. Zawsze programuje dokładnie tak samo jak zwykły M8, nie ma takiego problemu. Czytałem gdzieś że bascom nie radzi sobie z Mega8A
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: ATmega8A
Witaj,
to fakt, bo avrdude zaprogramował od strzała, dzięki za info
edit: programator usbasp
chcialem zaaplikowac Twoj
chcialem zaaplikowac Twoj programik do płytki AVT1665 i niestety nie daje rady wywalczyc ze zmiana ustawien portow, bo wejscia i wyjscia sa inaczej rozplanowane a ich konfiguracja nie jest dla mnie przejrzysta, moglbym prosic o pomoc...mozliwe, ze nie da sie tego ogarnac, bo switche sa na roznych portach i sa podciagniete do +
klawiatura
w jaki sposób robisz te klawiatury ?
Jakich switchy uzywasz ?
czy dodajesz jakieś gumki pod laminat ?
Nie chce ruszyć po złożeniu
jak w temacie, wyświetlacz nic nie wyświetla, przeprogramowana ATmega i nic, cisza...
edit: już nieaktualne, nie chodził oscylator, jeden z kondensatorów był 10pF