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).
Hmm a co z Case5? Case
Hmm a co z Case5?
Jak go usunę nie mogę przejść z ustawień Nadmuchu na Przerwę (Mogę tylko zmienić wartości nadmuchu) Ale dziwnych znaków już nie ma i dlatego u Ciebie było wszystko OK (Nie masz wsadu z dmuchawą)
No i właśnie chyba w Case 5 jest problem
Re: Kod CO
No dobra ale sprawdzałem działanie na płytce testowej i nic takiego się nie pojawiało. Prześlij jakieś zdjęcie tych dziwnych znaków... Będę musiał jeszcze raz uruchomic to na płytce testowej ale na to będziesz musiał poczekać. Case 5 nie możesz usunąć bo jak sam zauważyłeś nie pójdzie ustawianie. Dopisz podobny kod do jak dałem wcześniej do case 3 4 i 5.
Ps. fragmenty kodów z bascoma umieszczaj w znaczniku bas, wklejanie byle jak jest naruszeniem regulaminu
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.
Kod CO
To normalka że dopisałem Case 5, ale efekt jet ten sam.Foto wyślę jutro
(Są to wszystkie możliwe znaki ''latające po całym ekranie''
Re: LCD
Jeszcze jeden pomysł...może ponowna inicjalizacja wyświetlacza pomoże, zamień cls w procedurze Wysw_LCD na INITLCD:
zmianę sprawdź w każdym z casów procedury wyświetlającej, wszędzie tam gdzie jest cls. Sam tego nie testowałem więc popróbuj, może jednocześnie z wyjściem z menu włącza się dmuchawa lub pompka i zakłócenia elektromagnetyczne powodują taki efekt na wyświetlaczu. Sam kiedys miałem taki problem w innym układzie, gdzie włączający się stycznik robił "krzaczki" przesuwające sie po wyświetlaczu
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.
LCD
Widzę, że nie tylko ja nie śpie po nocach :P Puki co to jestem w pracy do 6. Ale napenwo to sprawdze.
Dziwi mnie tylko, dlaczego to się dzieje akurat przy Case 5. Gdy go wywale działa prawidłowo poza ustawieniem ''Przerwa''.
I tak muszę sie pobawić ze sterowaniem dmuchawy. Chce by to działało jako termostat zadanej temperatury a gdy wyczuje ze temperatura spadła, załącza się ta opcja pomiaru i licznika aż do wygaszania (Przed temp min i alarm opcja - Zadana temp i histereza) Przeglądam kod ze Sterownika Domowego tam są takie pomiary:)A na koniec LCD 16x4:) Czas się czegoś nauczyć :)
LCD
Dziwne u mnie chodzi wersja z dmuchawa i nic takiego się nie dzieje.
LCD
Wstawiłem wszędzie INITLCD i jest jeszcze gorzej. Już całkiem pomieszały sie wszystkie wyświetlane opcje a dziwne znaki zamiast Nadmuch i Przerwa dalej są.
problem z odpaleniem
Jestem początkującym z procesorami złożyłem ten sterownik wgrałem do procka i nic na wyświetlaczu niepokazuje wszystko podpięte dobrze zrobiłem testa z diodami wgrałem i działa steruje diody jak chce czyli programuje procka.Chce wyświetlić jakiś text i nic poprostu weśw. nie reaguje co może być nie tak może te fusebity. Proszę o pomoc jak odpalić wyświetlacz żeby cokolwiek mi wyświetlało.
programuje w BASCOM-AVR
A kontrast ustawiony masz
A kontrast ustawiony masz dobrze?
kontrast dałem do masy
kontrast dałem do masy
Re: Kontrast
No to masz poprawne działanie przy kontraście zwartym do masy... ten potencjometr 10k na schemacie nie wstawiłem dlatego bo było miejsce ale pozwala on zobaczyć jakiekolwiek znaki na wyświetlaczu
Łukasz:
Jak masz dostęp do innego LCD to sprawdź czy działa.... naprawdę testowałem wszystkie opcje w menu na płytce testowej i napewno bym tego tak nie zostawił.
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.
LCD
Co za pierdoła... Już wszystko się wyjaśniło. Za dużo zajmował wsad. Wgrywał sie, ale było widocznie jakieś przepełnienie. Wywaliłem Logo powitalne i śmiga aż miło:). Dopisałem Case 5 i jest OK. Ustawienia są wszystkie.
Teraz jestem na etapie połączenia 4 mierzonych temperatur na 4x16 :)i wywalenia całkiem Case 2 z wyświetlania.
czyli mam rozumieć że
czyli mam rozumieć że fusebity są dobrze ustawione ?jak zabawa z diodami daje sie wgrać i działa
Re: fusebity
Najwyraźniej fusebity są dobre.... po prostu jeśli ustawiłeś to co napisałem wyżej w opisie to jest dobrze. Sprawdź ten potencjometr do kontrastu. Jak kręcisz w jedną stronę to powinieneś zobaczyć kwadraciki czarne wypełniające cały wyświetlacz. Potem kręcąc w drugą stroną do pierwszej chwili gdy znikną to poprawny kontrast LCD
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Fusebity
No najważniejszy jest zewnętrzny oscylator (CKOPT). Sprawdzałem płytę testową, wgrałem prosty wsad i zablokowałem Atmegę16 - nie przestawiłem CKOPT :P. Musiałem zadać sygnał z generatora i dopiero odblokować procka:D ATMEGA 16 odzyskana:D
wyswietlacz
Sprawdź jeszcze wyprowadzenia z wyświetlacza. Posiadam jeden taki 2x16 co zamiast piny 1,2,3,...14,15,16 ma 15,16,1,2,3,...13,14.
Re: Sterownik C.O
CKOPT dotyczy wzmacniacza w oscylatorze procesora. Ustawienie CKOPT na 0 pozwala uzyskać pełną amplitudę i umożliwia pracę z najwyższymi częstotliwościami jakie procesor obsługuje
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świetlanie temperatur na
Wyświetlanie temperatur na wyświetlaczu 4x16.
Thirdline - trzecia linia na LCD
Lcd "NAZWA:"
Fourthline - czwarta linia na LCD
Lcd "NAZWA:"
Ktoś wcześniej też chciał to na 4x16
witam. czy mozna prosic o
witam.
czy mozna prosic o program kompilacji (BIN) tak jak zawsze bylo w poprzednich projektach tego nie umiem wykorzystac.
Gratuluję pomysłu z tym
Gratuluję pomysłu z tym sterownikiem.Sam zrobiłem podobny z tym że zamiast wentylatora u mnie działa miarownik ciągu powietrza(niestety nie mój projekt bo z programowania jestem noga).Pasuje tylko dodać funkcje termostatu z układem czasowym i mamy sterownik full wypas do podajnika.;)
Czy błąd alarmu
Przetestowałem Mirku tym razem sterownik CO - może sprawa nie istotna ale działanie alarmu jest wadliwe
Po uruchomieniu sterownika po wł zasilania lub po resecie działa poprawnie alarm - czyli przekracza temp ustalona to załącza się alarmi i jak maleje to działa ustalona w programie histereza i itd. ale problem powstaje jeżeli
Załączy się alarm i przejdziemy 1 raz przez menu - nawet nie trzeba nic zmieniać to po tym manewrze alarm przestaje działać - teoretycznie może OK - (z napisanego programu NIE) i po tym manewrze alarm nie działa już w ogóle
sprawdziłem to wiele razy
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
Re: Sterownik C.O
Patrzę na ten fragment kodu co za to odpowiada i dalej wydaje mi się że wszystko OK:
Natomiast dwie linijki poniżej włączają zezwolenie na alarm (wciśnięcie przycisku gdy alarm wyje wyłacza zezwolenie) gdy temperatura na piecu i na zbiorniku spadnie 5 stopni poniżej ustawionego alarmu
Wydaje mi się że jak w domu to testowałem to alarm działał wielokrotnie i nie było takiego problemu. Może temperatura na zbiorniku dalej była za wysoka, to wtedy alarm się nie włączył. może np spadła tylko 3 stopnie poniżej alarmu?
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.
'
' ------------------------------ PIEC PRZEGRZANY -------------------------------
Elseif T_piec > 90 Then
Set Alarm
Set Pompa
Reset Miarkownik
Reset Rozruch
If Wyswietlacz = 1 Then
Lcd "Piec przegrzany!"
Lowerline
Lcd "Wl. pompa obieg."
End If
To wycinek z (mojego) programu może pomoże?
Witam wszystkich. Uruchomiłem
Witam wszystkich. Uruchomiłem dzisiaj sterownik. Zmieniłem nieco program pod moje wymagania. Cały dzień testowałem praktycznie nie rozstawałem się ze sterownikiem działa ok alarm działa u mnie ok. wciśnięcie jakiegokolwiek przycisku podczas działania alarmu powoduje jego wyłączenie ale po ponownym przekroczeniu temp. działa ponownie. Do programu dodałem sterowanie zaworem zamykającym bojler. Na razie wszystko ok. Kod z poprzedniego postu raczej się nie przyda jest całkiem inaczej napisany.
Re: Sterownik C.O
U mnie tez kod alarmu działa wporządku więc może problemy są spowodowane tym że się procesor źle zaprogramował lub coś podobnego, lub temperatura w zbiorniku była za wysoka żeby ponownie uaktywnić obsługę alarmu po jego wyłączeniu.
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.
C.O
Mam pytanie. Układ przerobiłem na ATMEGA32 więc pamięci trochę mam :). Kod uruchomiony. Dodałem opcję termostatu( Temp. Zadana ). Wszystko śmiga na 4x20. Ale chciałem temp. pieca i domu wyświetlić dodatkowo na LED, by w domu z daleka widzieć temperaturę. Jak to zrobić?
Re: Sterownik C.O
W przypadku tego sterownika ja akurat nie mam problemu bo sterownik mam w domu :) Możesz zrobić wyświetlacz LED na rs232. jest taki projekt. Wymaga coprawda drugiego mikrokontrolera ale za to temperatura jest ransmitowana w postaci liczby binarnej po rs232. W tym programie do C.O będą Ci potrzebne piny wolne od rx i tx czyli Pd.0 i pd.1. Potem podłączysz tam układ max232 i drugi max232 w domu przy wyświetlaczu.
W programie C.O trzeba wysłać dane o temperaturze: (fragment przeklejony z obrotnicy kolektora słonecznego)
Procedurę należy wywołać 3 razy aby wysłać temperatury T(1), T(2) i T(3). Wyświetlacz je odbierze i pokaże na ledach
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.
C.O
Ja to też będę miał w domu. Z tym ze chce z daleka widzieć temperatury nie podchodząc do sterownika:) Sprawdze to na RS232. Dzięki za pomysł:)
Regulacja prędkością wentylatora.
Sterowanie wentylatorem (Temp zadana). Dołożyłem tą opcje do mojego sterownika. Ale jak zrobić płynną lub np 3 stopniową regulację prędkości? Im Temp. T1 mniejsza od Temp. zadanej to obroty wentylatora większe.
Regulacja wentylatora
Witam wszystkich.Mam pytanie jak zmienić kod aby wentylator miał swoją (temp.zadaną).W przypadku braku pamięci Atmega8 rezygnacja z przedmuchu czasowego
Re: Sterowanie C.O
Jak zrobić płynną regulację wentylatora to na obecną chwilę nie wiem, zależy to od budowy wentylatora i nie wiem czy stosuje się zwykle regulatory fazowe czy inne rozwiązania.... Dorobienie temperatury zadanej rozumiem przez dołożenie ustawień w menu i wentylator ma tylko chodzić gdy temp mniejsza niż zadanej
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.
Regulacja wentylatora
Witam.Tak aby wentylator miał niezależną od pompy(temp zadaną).Z wykonaniem sterownika nie miałem problemów,choć jestem początkującym amatorem .Jednak programy to dla mnie trudny temat.Dziękuje za udostępnienie projektu.(Grzegorz to ja zapomniałem o logowaniu).
regulacja wentylatora
Witam . oto kod Dopisałem sterowanie wentylatorem.Nie testowałem w praktyce. Proszę o info czy kod działa http://sq3opc.pl.tl/Prosty-sterownik-co-.-projekt.htm
Regulacja wentylatora
Dziękuje zaraz wypróbuje kod i dam znać
regulacja
Przepraszam że dodałem poprzedni link bez zalogowania ale mam problemy właśnie z loginem na stronie. w razie pytań co do poprzedniego postu moje gg 9306606.
sterowanie obrotami
mirley co do sterowania wentylatorem też czegoś takiego szukałem wszyscy proponują sterowanie przez pwm gdzieś znalazłem projekt gdzie wentylator był właśnie sterowany w ten sposób jak znajdę podeśle linka
Regulacja wentylatora
Niestety przy compiler wyskakuje błąd ERROR 999 line597
regulacja wentylatora
Nie możliwe u mnie wszystko ok a jaką masz wersje bascomu??? jak demo to na pewno nie da rady bo tam masz ograniczenie do 4 kilo wsadu zaraz prześle Ci hexa
problem
Nie mogę umieścić żadnego pliku na serwerze na którym umieściłem kod mogę przesłać Ci na pocztę. Podaj adres pozdrawiam
' elekytrozawór bojlera
Mirley: Całe kody źródłowe należy zamieszczać na forum: Własne Opracowanie->Kody źródłowe, potem można podlinkowac odpowiednią stronę w wątku.
Może komuś się przyda ,bądź
Może komuś się przyda ,bądź naprowadzi na dobra drogę.Nie pytać czy działa bo nie jestem w stanie odpowiedzieć.Znalazłem gdzieś na dysku.Obsługuje 3X LM35.
Sterowanie wentylatorem
gerina1209@poczta.onet.pl Szymon dzięki
Sterowanie wentylatorem
Niestety po testach okazało się,że wentylator pracuje od temperatury zadanej.Chodziło oto aby pracował do zadanej temperatury i po osiągnięciu temperatury zadanej wyłączył się.Przykład (wentylator włącza się przy 30stopniach i po osiągnięciu np.60stopni temperatura zadana wyłącza się.
sterowanie wentylatorem
Na pocztę przesłałem poprawiony kod spróbuje jeszcze dzisiaj dorobić małą histereze
ale ten który przesłałem już powinien działać
Sterowanie wentylatorem
Szymon zaraz będę testować i dam znać.
Re: sterownik CO
Jeżeli uda wam się uruchomić program to proszę o przesłanie do mnie na maila lub umieszczenie na forum: Własne Opracowanie->Kody źródłowe
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.
Regulacja wentylatora
Testowałem wczoraj trzy kody od Szymona jednak żaden nie działa poprawnie.Szymon niema jak testować kodów a ja jedynie mogę wgrać do sterownika .Wydaje mi się że w menu wentylatora powinny być ustawienie :1 załącz wentylator od np.30stopni i 2 wyłącz wentylator np.60stopni lub tylko temperatura zadana przy której wentylator wyłączy się. Wentylator powinien działać niezależnie od pompy.
Reglacja wentylatorem
Tak mnie to wkurzyło że zdemontowałem swój sterownik i już sam kombinuje z programem. Są już postępy wentylator załącza się przy temperaturze nastawionej minus 2 stopnie jednak wyłącza się 1 stopień przed zadaną temperatura. Grek sterownie wentylatorem powinno się odbywać właśnie w taki sposób jak opisuje w żadnych fabrycznych sterownikach nie ma nastawu załączenia i wyłączenia wentylatora. Temperatura którą ustawiasz ma być utrzymywana a niewielka histereza jest po to żeby wentylator nie załączał się jak temperatura spadnie o jedną dziesiątą stopnia.Teraz tak myślę że jeżeli nasz sterownik nie ma regulacji obrotów i wentylator chodzi zawsze na 100% to może to co próbuje naprawić w kodzie nie ma sensu. Chodzi mi oto że jeżeli wentylator wyłączy się 1 stopień przed zadaną temp. to i tak temperatura jeszcze podskoczy tylko ile??
regulacja
To na razie koniec ze zmianami kodu. Muszę do pracy. Wrzucam fragment który trzeba zmodyfikować
proste przerobienie na 3 biegi
Proponuje wstawić prosta drabinkę rezystorową podączona do OPTO i do 3 wyjść procesora zamiast programowania DS-ów - dlaczego - DS-y można programować z klawiatury w prosty sposób należy zmienić kod początkowy z
na
Teraz aktywacja DS-ów bedzie nastepująca - wciskasz i trzymasz B.0 i reset - i zaprogramowany - jakie to proste
i po tym mamy wolne 3 porty na 3 biegi -poprzedni port TR pozostaje do załączenia diody LED wiatraka
zmiana kodu jest również prosta
Zadana temp na piecu np 55oC - do tej temperatury wiatrak pracuje na 3 kolejnych biegach - histereza 1,5oC - dlaczego " + , - " czyli na każdy bieg 3oC x 3 = 9oC czyli 55oC - 9oC i rozpoczyna się automatyczna zmiana portów , natomiast od rozpalenia do 46oC wiatrak działa na szybkim biegu , 46-49 3 bieg . 49-52 2 bieg , 52-55 1 bieg i wył wentylator - potem zaczynaja działać przedmuchy dla bezpieczeństwa od samo zapłonu gazów "węgiel"
Co o tym myślicie
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS