Prosty Sterownik C.O.


9
Ocena: None Średnia: 9 (13 głosujących)

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.

Działanie:

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.

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. 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.

Wykaz Elementów:

Sterownik:

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

Układ Wykonawczy:

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

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 = "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:

Obsługa:

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).

Zdjęcia Projektu:

ZałącznikWielkość
Sterownik Schemat58.95 KB
Sterownik Płytka16.38 KB
Sterownik Płytka (odbicie lustrzane)16.51 KB
Sterownik Płytka (4 na stronie)57.41 KB
Sterownik Montowanie22.69 KB
Układ wykonawczy Schemat8.64 KB
Układ wykonawczy Płytka8.14 KB
Układ wykonawczy Płytka (odbicie lustrzane)8.2 KB
Układ wykonawczy Płytka (6 na stronie)36.54 KB
Układ wykonawczy Montowanie12.05 KB
Sterownik + Układ Wykonawczy Płytka47.56 KB
Kod Źródłowy13.82 KB
Panel przedni (SVG)9.6 KB
Panel przedni (SVG) (4 na stronie)30.71 KB
Panel przedni (PDF) (4 na stronie)158.99 KB
Kod Źródłowy (wersja z wentylatorem 2009.11.20) (nie testowana w praktyce)17.49 KB
Program po kompilacji (BIN)7.52 KB
Program po kompilacji (HEX)21.15 KB
Kod Źródłowy (wersja z wentylatorem 2016.01.30) (poprawione temperatury <10)17.57 KB
Program po kompilacji (BIN)7.55 KB
Program po kompilacji (HEX)21.25 KB



Portret użytkownika smanek

Dmuchawa

Cześć
Z tego co wyczytałem z kodu to dmuchawą steruje czas (długość przedmuchu, odstępy między przedmuchami). A czy da się zrobić coś takiego?
-Ustawiam żądaną temperaturę.
-Jeżeli Temp. pieca jest niższa niż żądana, to dmuchawa dmucha dopóki na piecu nie będzie żądana temperatura.
-Jeżeli Temp. Pieca jest wyższa niż żądana, wtedy dmuchawa jest sterowana czasem (długość przedmuchu, odstępy między przedmuchami).

Desie takie coś tam wcisnąć jeszcze? W moim przypadku miejsce można uzyskać wyrzucając 2 czujniki temp. , bo tylko 2 mi są potrzebne(Piec, Bojler).

-----------

Ale coś chyba doczytałem... Czy ta T_min steruje wentylatorem?? Jeśli tak to mój problem chyba jest rozwiązany.

Portret użytkownika mirley

Re; Sterownik C.O

Dmuchawa jest sterowana dokładnie tak jak chcesz, zależy od temperatury a gdy jest większa od ustawionej to cyklicznie włącz wyłącz. na inne przeróbki niestety nie mam czasu obecnie

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika smanek

Re; Sterownik C.O

No właśnie tak to jest jak się do końca nie czyta, nawet jak to jest kod;)
Dzięki wielkie..

------

Mógł by ktoś zamieścić pliki .hex obu wersji kodu? Mi Bascom nie chce tego skompilować bo mam wersje demo(wie ktoś skąd mogę ściągnąć full, próbowałem chyba wszystkiego z Google i nie znalazłem). Ewentualnie przesłać na adres:

Portret użytkownika esc

źródła

Mirley mam prośbę możesz mi pokazać w którym miejscu kodu jest sterowanie histerezą, i jeszcze jedna uwaga przy zmianach kodu fajnie by zamieścić w komentarzach co zostało zmienione w stosunku do poprzedniej wersji, bedzie to przydatne dla takich jak ja co nie bardzo jeszcze umieją programować.
Jeszcze raz dzięki za układzik super i już zmontowany i działa, za parę dni "idzie do pieca"

Portret użytkownika mirley

Re: Sterownik C.O

Sterowanie histerezą jest w tym fragmencie:

    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

Zmienna Hword(1) i Hword(2) przechowuje dolny i górny próg temperatury, temperatura jest pomnożona przez 10 więc 70 oznacza 7 stopni a 30, 3 stopnie. histereza jest od +3 do +7 stopni od temperatuty bojlera, w tym przypadku. W drugim programie są dwie histerezy

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika esc

Dzieki

Dzieki

Portret użytkownika esc

czujnik zbiornik

Jeszcze jedno pytanie czy czujnik "zbiornik" jest brany pod uwagę w obliczeniach, czy można go wystawić za okno co by pokazywał temp na zewnątrz.
Pozdrawiam

Portret użytkownika mirley

Re: Sterownik C.O

Można go wystawić na zewnątrz

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika smanek

Błąd w programie

W 2 programie jest błąd, Nie włącza się pompa ani wentylator po przekroczeniu temperatury minimalnej, 1 działa dobrze. Mógł bym prosić o naprawienie problemu?

Portret użytkownika mirley

Re: Sterownik C.O

W święta będę programował swój sterownik nowym programem więc jeśli będą błędy to je poprawię... narazie nie mam na czym testować programu.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika esc

Dziwne u mnie dziala

pompa działa bez problemu, z wiatrakiem nie bardzo doszedłem o co chodzi, działa w automacie dopiero jak go włączam z przycisku, chyba ze nie tak coś robię.

Portret użytkownika mirley

Re: Wentylator

Wentylator dokładnie tak ma działać. Jeśli się w piecu wypali to wentylator się wyłącza. Jak rozpalasz ponownie w piecu to klikasz przycisk i rozpoczyna się cykl sterowania wentylatora trwający aż do następnego wygaszenia w piecu

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Mark

Przekłamanie temperatury

Proszę o info dotyczące moim zdaniem przekłamania temperatury o ok 0.8oC na plus pokazywanej na wyświetlaczu.
Inny sterownik (Euroster2005) i termometr elektroniczny pokazują niższa temperaturę.
Czy ktoś z użytkowników też ma takie przekłamania?

Portret użytkownika esc

re:Przekłamanie temperatury

Przekłamanie może być uzależnione od czujnika, poszczególne czujniki mogą mieć rożne wskazania, u mnie sprawdzałem z atestowanym termometrem zgadza się do 0.1 stopnia

Portret użytkownika mirley

Re: Czujnik temp

To tylko może być wina czujnika bo DS18B20 jest cyfrowym czujnikiem temperatury. Nie ma możliwości żeby temperatura różniła się o 0.8 stopnia bo program odczytuje po prostu liczbę binarną a nie napięcie. Umieść czujniki dokładnie w jednakowych warunkach, np w wodzie i wtedy zobacz co pokazują. Ewentualnie wymień DS18B20 na inny egzemplarz

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika smanek

Rozwiazany problem

Mój problem z programem zam się rozwiązał

Quote:
Jeśli się w piecu wypali to wentylator się wyłącza. Jak rozpalasz ponownie w piecu to klikasz przycisk i rozpoczyna się cykl sterowania wentylatora trwający aż do następnego wygaszenia w piecu
To był mój problem ;) Chodzi wszystko jak należy. Chociaż czasami w dolnej linii wyświetlacza pojawiają się dziwne znaki, ale to chyba wina elektroniki...

Portret użytkownika mirley

Re: Sterownik C.O

Mogą to być zakłócenia od wentylatora pompy itp. Szczególnie jeśli sterownik jest blisko pieca lub na nim. Będę testował program za niedługo na swoim sterowniku to postaram się poprawić wszelkie braki i niedoróbki. Pisząc na płytce testowej nie da się zauważyć wszystkich problemów

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika mark

Nie działa wyjście załączające wentylator

W jakimś momencie przestało działać wyjście powodujące załączenie wentylatora i przestała także migać żółta dioda LED.
Pomiar napięcia na wyjściu i na diodzie LED (na procku także ) pokazuje non stop stan wysoki.
Oczywiście przy ustawionej temp. min. powyżej temp. pieca.
Czyżby padło wyjście w procku ( mało prawdopodobne).
Tylko nie piszcie "zaprogramuj ponownie !) bo sterownik jest w mieszkaniu na 1-szym piętrze, a czujniki wraz z kotłem w kotłowni na poziomie -1. Samo przeprogramowanie kości z laptopa nie stanowi problemu, ale zakodowanie DS-ów to już trochę bieganiny jest.
Pozdrawiam.

-

Marek

Portret użytkownika mirley

Re: Sterownik C.O

Próbowałeś wyłaczyć mu zasilanie na chwilę... może go coś zawiesiło? Musisz zaprogramować ponownie aby sprawdzić czego to jest wina... nie musisz przy tym programować ds'ów od nowa. Wystarczy że przed wgrywaniem programu odczytasz zawartość pamięci eeprom i zapiszesz na dysku. Potem wgrasz program na nowo(dsy się skasują) i na końcu wgrasz pamięć eeprom którą odczytałeś(wrócą informacje o dsach i wszystkie ustawienia)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika mark

Dzięki za szybką

Dzięki za szybką odpowiedź
Jutro to przetestuję i mam nadzieję że będzie OK.
Pozdrawiam i życzę miłego weekendu.

20.12.2009 14.54
Niestety przeprogramowanie nie pomogło. Dioda przy programowaniu miga, ale nie działa załączenie wentylatora i oczywiście jego sygnalizacja.
Coś się popsuło.

15.16:
Wymieniłem kość i na nowo zaprogramowałem.
Bez pozytywnego efektu. Nadal wyjście dmuchawy nie jest aktywne.
Teraz to już nie mam koncepcji.

-

Marek

Portret użytkownika mirley

Re: Dmuchawa

A czy uruchomiłeś dmuchawę przyciskiem "-" (podczas wyświetlania temp pieca i bojlera)?. Rozpoczyna się wtedy cykl pracy dmuchawy aż do zakończenia poprzez zgaszenie w piecu. nie pamiętam już komu mówiłem jak to działa

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika mark

Dmuchawa

Nie ma opisu jak to ma działać i być może taka jest procedura startowa dmuchawy. Nie wpadłem na taki pomysł.
Sądziłem, że dmuchawa startuje automatycznie po spadku temp. pieca poniżej minimum (tak jest w sterowniku, który obecnie użytkuję). Tyle kombinacji na darmo. całe życie się człowiek uczy i .....
Po powrocie do domu sprawdzę.

-

Marek

Portret użytkownika mirley

Re: Dmuchawa

Oczywiście dmuchawa startuje jak temperatura spadnie poniżej minimalnej a ponad minimalna działa z przerwami, ale gdy w piecu się wypaliło i nie da rady podnieść temperatury to po co ma dmuchawa chodzić.. wyłacza się wtedy po określonym czasie

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika mark

Dmuchawa

I wszystko działa. Dzięki. Maszyna śmiga, a brak informacji powoduje szukanie przyczyny, a to z kolei poszerza naszą wiedzę.
Nauka nie idzie w las. Dzięki Mirey
Pozdrawiam, życząc Wesołych Świąt Bożego Narodzenia.

-

Marek

Portret użytkownika smanek

Wygaszenie

A dokładnie po jakim czasie się dmuchawa wyłączy jeśli nie będzie mogła podnieś temperatury??
I który fragment kodu za to odpowiada??

_____________________________________
Zdrowych i Wesołych

Portret użytkownika mirley

Re: C.O.

Wszystko siedzi tutaj:

Incr Wygasz_licz
      If Wygasz_licz = 250 Then                             '250
        Wygasz_licz = 0                                     'co okolo 4min
        If Oldt1 >= T(1) Then
          Incr Off_licz
          If Off_licz = 8 Then Wygaszenie = 1
        Else
          If Off_licz > 0 Then Decr Off_licz
        End If
        Oldt1 = T(1)
      End If

Nie jest to takie proste powiedziec kiedy się wyłaczy ponieważ nastąpi to gdy 8 razy z rzędu temperatura aktualna nie bedzie większa od poprzedniej, a sprawdzanie tego warunku następuje co 4min

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika rafliczek22

Witam Jaką obudowę do tego

Witam

Jaką obudowę do tego zastosowałeś ponieważ ja zawsze mam problem z obudową a chcę wszystko tam upchać jak tylko mocno się da.

Portret użytkownika mirley

Re: C.O.

Płyta sterownika mieści sie w obudowie KM35 prawie na styk, co do płytki wykonawczej to już jest kwestia tego jakie będzie trafo zasilające i gdzie będziesz chciał to sobie zamontować

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika rafliczek22

No wlasnie chciałem to

No wlasnie chciałem to wcisnac do jednej obudowy

Portret użytkownika mirley

Re: Obudowa

To zajdź do sklepu i pooglądaj co maja dostępne.. nie znam na pamięć wszystkich obudów

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika lok65

kod

Witam!
prosze o wyjasnienie tego fragmentu kodu
For N = 1 To 2 '''' to wiem
Hword(1) = T(n) / 10 '''to tez
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
jestem poczatkujący w Basc.
pozdrawiam

-

lok56

Portret użytkownika mirley

Re: Program

Dopisałem w komentarzach... cały ten fragment odpowiada za wyświetlenie w dwóch linijkach wyświetlacza temperatury z wyrównaniem do prawej strony wyświetlacza, Hword(x) to zmienne pomocnicze uniwersalne

For N = 1 To 2 '''' to wiem
Hword(1) = T(n) / 10 '''to tez
Hword(2) = 12  'pozycja w której ma byc wyświetlona liczba ustawiona domyślnie na 12 i tak będzie jak temp <10 stopni i >0
If Hword(1) >= 10 Then Decr Hword(2) 'jeśli wartośc >10 to zmniejsz pozycje bo są dwa znaki potrzebne a nie jeden
If Hword(1) >= 100 Then Decr Hword(2) 'jeśli wartośc >100 to jeszcze zmniejsz pozycje bo są trzy znaki potrzebne a nie dwa
If Minusy.n = 1 Then Decr Hword(2) 'podobnie jak poprzednio, minus też zajmuje dodatkowy znak 
Locate N , Hword(2) ' ustawia kursor w linjce N (1 lub 2) i w kolumnie 12, 11 lub 10 w zależności od tego jaka jest wartośc temperatury  
Hword(2) = T(n) Mod 10 ' zmienna pomocnicza nie jest juz potrzebna teraz będzie trzymała część dziesiętna temperatury
If Minusy.n = 1 Then Lcd "-" 
Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C" ' to juz jasne wyświetla temperaturę, kropkę, jej część dziesiętną i znak stopnia itp
Next N

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika lok65

Re: Program

Dzieki za szybką odpowiedz .wyjasniło mi ten fragment programu sterownikaCO
na podstawie Pana projektów i programów duzo sie nauczyłem oraz lepiej zrozumiałem.
szkielet "sterownika CO"dostosowuje do pomiaru temperatury bufora CO o poj. 2x700l.
będzie zastosowanych 4xds do pomiaru na różnych wysokosciach bufora(2100mmx 500mm srednicy.)
juz mam wykonany prototyp oraz kilka wstepnych wersji programu.mam jeszcz kilka pytań odnosnie konstrukcji panskiego programu ale to może pózniej.porzedni projekt bufora był wykonany na podstawie projektu Ducha z elektrody 4xDS18b20 .
pozdrawiam.

-

lok56

Portret użytkownika djpest

KOD

Kto mi wyśle oba wsady? Jakoś nie mogę skompilować u siebie :(

-----------

Kontakt:
G: 9464986

Portret użytkownika esc

Ja mogę Ci wysłać, ale

Ja mogę Ci wysłać, ale dopiero wieczorem.

Portret użytkownika esc

Temperatura wariuje

Witaj, w nowym roku. Mam pytanie co może być przyczyną, że po osiągnięciu temperatury alarmowej na wyświetlaczu wyskakuje temperatura rzędu 200 parę stopni, po resecie wszystko wraca do normy.
Pozdrawiam

Portret użytkownika mirley

Re: Sterownik C.O

Przeprogramuj mikrokontroler jeszcze raz... musi być to błąd programowania bo u mnie taki efekt nie występuje a już kilkakrotnie w praktyce osiągnąłem temperaturę alarmową na piecu :) A jak na wyświetlaczu masz to 200 stopni to sterownik dalej działa czy jest zawieszony? Pytam czy można na nim wtedy wejść do menu itp.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika esc

A tego nie wiem bo sterownik

A tego nie wiem bo sterownik jest u kolegi na piecu, spróbuje przeprogramować sterownik i dam znać co i jak.

Portret użytkownika rafliczek22

Mam takie pytanie: Jak jest

Mam takie pytanie:

Jak jest zrealizowane sterowanie temp. co 1 stopień, w którym miejscu w kodzie???

Portret użytkownika mirley

Re: Sterownik C.O

Co dla Ciebie znaczy:

Quote:
sterowanie temp. co 1 stopień,

sterowanie triakiem w zależności od temperatury, pomiar temperatury czy może jeszcze coś innego. BO program nigdzie nie "steruje temperaturą"

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika rafliczek22

chodzi o to jak ustawic

chodzi o to jak ustawic zmienna T_min zeby pokazywala 1 st. ja robie swoj program do tej plytki tylko bez niektorych elementow i kiedy uruchomie go to wartosc jest podana od 0-255
a ja chce co 1 st dodam ze nie moge ustawic zmiennej word bo wywala blad i musze byte dlatego chce wiedziec jak jest to tu zrealizowane

Portret użytkownika mirley

Ja normalnie deklaruję

Ja normalnie deklaruję zmienną typu word

Dim T_min As Word 

potem zwiększam wartość co 10 po naciśnięciu przycisku. Nawet jeśli zrobisz byte to żeby to potem porównać z temperaturą mierzoną tak będziesz musiał pomnożyć t_min przez 10 i word będzie potrzebny

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Łukasz

Parametry sterownika

Ja widziałem piec gdzie ustawia sie temperature min-wygaszenie i wyłączenie pompy oraz temp zadaną na piecu np.60 stopni(Piec reguluje tą temp i steruje dmuchawą). Resztę ustawień robi sie w dodatkowych opcjach:

-Min obr dmuchawy - min50 max99
-max obr dmuchawy- min100 max230
-Czas trwania przedmuchu - min1 sek max50 sek
-Czas pomiedzy przedmuchami - min1 min max15 min
-Czas po którym uznaje sie ze piec wygasł - min1 min max240 min (tu moze byc ten licznik temp do 8 co 4 min) :)
-O ile stopni wczesniej w stosunku do ustawionej temp. zostanie zakonczone rozpalanie - min5 max 15 stopni C
-Dynamika kotła wraz z instalacją CO - min0 max 80
-Temperatura załączenia pompy CO - min25 max50 stopni C(ponizej zadanej pompa sie wyłączy-histereza)
-Histereza ON OFF pompy
-Histereza ON OFF dmuchamy - Obroty dmuchawy - proporcjonalne do temp zadanej

_ jeszcze jest tam jakies ustawienie co do kominka:)

Z tymi ustawieniami to juz można trochę zrobić. Widziałem jak to działa. Piec pali wszystko:) Do miału
trzeba zwiekszyć obroty dmuchawy.
Z tymi ustawieniami to juz mozna zrobic wszystko

Portret użytkownika mirley

Re: Sterownik C.O

niestety mój sterownik jest zbyt prosty aby takie rzeczy zaimplementować... wymagało by to zrobienia "zaawansowanego sterownika do pieca"

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Sterownik C.O

Przeprojektować na ATMEGA32 by wsad się zmieścił i nie wyszedł bokami procka... i po sprawie :P:)Ale był by wypasiak wszystko-mający :D

--------

Aha jest jakis błąd. Gdy temperatura spadnie poniżej 10 stopni zamiast wyświetlić 9 wyświetla 19. Dopiero po przejściu na MINUS zmienia się na poprawną wartość. I dlaczego wartość ustawianych temp. nie ma "0" po przecinku tylko przy TMin - xx.9 a przy Alarmie - xx.5

Portret użytkownika mirley

Re: Sterownik C.O

No to przecież pisałem że trzeba zrobić całkiem nowy sterownik.. teraz jednak napewno nie da rady.

Co do tego drugiego błędu to pierwszy jest wynikiem braku wpisywania pustego znaku na poprzednim miejscu i to jest błąd czysto graficzny, nie zauważyłem wcześniej. Co do błędu z temperaturami to zauważyłem u siebie ale za późno aby się temu przyjrzeć dokładniej, coś z wartością zmiennej musi być nie tak i nie wiem gdzie mam ten error, jak odrobię się z pracą to popatrze do kodu.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Łukasz

Sterownik C.O

Zauważyłem jeszcze, że przy zmianie trybu i wciśnięcie przyciski MENU (jako zatwierdzenie) wyświetlają się dziwne wartości na ekranie, lecz gdy przy zmianie trybu odczekamy aż program sam wyjdzie do wyświetlania temperatur jest wszystko OK. (Może wystarczy wstawić tam instrukcję kasowania LCD)

PS-wgrałem od nowa wsad i uzyskałem po przecinku "0" przy temp. min i alarmie.

Jak scalić wszystkie temperatury na LCD 4x16

Wysw_lcd:
 If Wyswietlanie <> 0 Then
   Wyswietlono = 0
   Select Case Wyswietlanie
     Case 1:                                                'temp piec bojler
     '**************************************************************
       If Poz_wysw <> 1 Then
         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
         Cls
         Lcd "Temp Dwor:"
         Lowerline
         Lcd "Temp Dom:"
       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

Portret użytkownika mirley

Re: Sterownik CO

Ponowne zaprogramowanie powinno usunąć ten błąd z dziwnymi znakami przy wychodzeniu z ustawień bo u mnie nic takiego się nie pojawia i nie ma prawa się pojawić. Wychodzenie z menu daje dokładnie takie same efekty a autopowrót.

Co do wyświetlania wszystkiego na jednym ekranie to lepiej by było dać 16x4 LCD, na tym 16x2 będzie dużo kombinowania... zresztą i tak teraz nie dam rady nic zrobić

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Łukasz

Sterownik CO

Wgrałem na dwie kości ten sam wsad. Na jednej z nich próbowałem 3 razy i na obu są te dziwne znaki. Programuje przez PonyProg-a.

Portret użytkownika mirley

Re: Sterownik C.O

Spróbuj ten fragment w kodzie:

            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

Zamienić na:

            Select Case Poz_wysw
              Case 3:
                Incr Poz_ust
                If Poz_ust = 3 Then 
                  Poz_ust = 0
                  Poz_wysw = 0
                  Wyswietlanie = 3
                end if
              Case 4:
                Incr Poz_ust
                If Poz_ust = 2 Then 
                  Poz_ust = 0
                  Poz_wysw = 0
                  Wyswietlanie = 4
                end if
            End Select

-

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.