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 Łukasz

Hmm a co z Case5? Case

Hmm a co z Case5?

 Case &B00000101:                                    'ustaw next
        '***********************************************************
          If Poz_ust = 0 Then
            Wyswietlanie = Poz_wysw + 1
            If Wyswietlanie = 6 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
              Case 5:
                Incr Poz_ust
                If Poz_ust = 3 Then Poz_ust = 0

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

Portret użytkownika mirley

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.

Portret użytkownika Łukasz

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

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
              Case 5:
                Incr Poz_ust
                If Poz_ust = 3 Then 
                  Poz_ust = 0
                  Poz_wysw = 0
                  Wyswietlanie = 5
                end if
 
            End Select

Portret użytkownika mirley

Re: LCD

Jeszcze jeden pomysł...może ponowna inicjalizacja wyświetlacza pomoże, zamień cls w procedurze Wysw_LCD na INITLCD:

  If Poz_wysw <> 2 Then
         Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32  'stopien
 
         Cls               '<<<<<<<<<<<<<<<tutaj napisz zamiast CLS , INITLCD
         Lcd "Zbiornik:"
         Lowerline
         Lcd "Kuchnia:"
       End If

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.

Portret użytkownika Łukasz

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ć :)

Portret użytkownika esc

LCD

Dziwne u mnie chodzi wersja z dmuchawa i nic takiego się nie dzieje.

Portret użytkownika Łukasz

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

Portret użytkownika gosc

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

Portret użytkownika gosc

A kontrast ustawiony masz

A kontrast ustawiony masz dobrze?

Portret użytkownika gosc

kontrast dałem do masy

kontrast dałem do masy

Portret użytkownika mirley

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.

Portret użytkownika Łukasz

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.

Portret użytkownika gosc

czyli mam rozumieć że

czyli mam rozumieć że fusebity są dobrze ustawione ?jak zabawa z diodami daje sie wgrać i działa

Portret użytkownika mirley

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.

Portret użytkownika Łukasz

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

Portret użytkownika Łukasz

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.

Portret użytkownika mirley

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.

Portret użytkownika Łukasz

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

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:"
         Thirdline
         Lcd "Dwor:"
         Fourthline
         Lcd "Dom:"
       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
 
 
 
       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 - 3
         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 3:

Portret użytkownika gosc

witam. czy mozna prosic o

witam.
czy mozna prosic o program kompilacji (BIN) tak jak zawsze bylo w poprzednich projektach tego nie umiem wykorzystac.

Portret użytkownika gosc

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

Portret użytkownika IMEX2

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

Portret użytkownika mirley

Re: Sterownik C.O

Patrzę na ten fragment kodu co za to odpowiada i dalej wydaje mi się że wszystko OK:

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

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

    Hword(1) = T_alarm - 50
    If T(1) <= Hword(1) And T(2) <= Hword(1) Then Buzz_en = 1

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.

Portret użytkownika gosc

'


' ------------------------------ 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?

Portret użytkownika Szymon SQ3OPC

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.

Portret użytkownika mirley

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.

Portret użytkownika Łukasz

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ć?

Portret użytkownika mirley

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)

Rs_wyslij:
 Incr Licz_help
 If Licz_help = 3 Then Licz_help = 0
 Select Case Licz_help
 Case 0:
   Help_word = T(1)
   Help_word.15 = 0
   Help_word.14 = 1
   Printbin Help_word
 Case 1:
   Help_word = T(2)
   Help_word.15 = 1
   Help_word.14 = 0
   Printbin Help_word
 Case 2:
   Help_word = T(3)
   Help_word.15 = 1
   Help_word.14 = 1
   Printbin Help_word
 End Select
Return

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.

Portret użytkownika gosc

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ł:)

Portret użytkownika Łukasz

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.

Portret użytkownika Grzegorz

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

Portret użytkownika mirley

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.

Portret użytkownika grek1209

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

Portret użytkownika gosc

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

Portret użytkownika grek1209

Regulacja wentylatora

Dziękuje zaraz wypróbuje kod i dam znać

Portret użytkownika Szymon SQ3OPC

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.

Portret użytkownika Szymon SQ3OPC

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

Portret użytkownika grek1209

Regulacja wentylatora

Niestety przy compiler wyskakuje błąd ERROR 999 line597

Portret użytkownika Szymon SQ3OPC

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

Portret użytkownika Szymon SQ3OPC

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

Portret użytkownika gosc

' elekytrozawór bojlera

' elekytrozawór bojlera działa następująco: ja napięcie załączone to bojler odcięty jak brak napięciea zawór otwarty
 
'Wersja Programu Ustawianie temperatury w pokoju  oraz przedmuchów Z Klawiatury
' do wyjąscia uniwersalnego podłączony buzzer do sygnalizacji alarmu
 
 
 
 
 $regfile = "m8def.dat"                                     'informuje kompilator o pliku
      'dyrektyw mikrokontrolera
............

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.

Portret użytkownika gosc

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.

Portret użytkownika grek1209

Sterowanie wentylatorem

gerina1209@poczta.onet.pl Szymon dzięki

Portret użytkownika grek1209

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

Portret użytkownika Szymon SQ3OPC

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ć

Portret użytkownika grek1209

Sterowanie wentylatorem

Szymon zaraz będę testować i dam znać.

Portret użytkownika mirley

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.

Portret użytkownika grek1209

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.

Portret użytkownika Szymon SQ3OPC

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

Portret użytkownika Szymon SQ3OPC

regulacja

To na razie koniec ze zmianami kodu. Muszę do pracy. Wrzucam fragment który trzeba zmodyfikować

    If T(1) >= T_went Then
      Went = 0
       End If
 
    Hword(1) = T_went - 20
    If T(1) >= Hword(1) Then
       Went = 1
       End If

Portret użytkownika IMEX2

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

Ds1r Alias Pind.7
Ds2r Alias Pind.6
Ds3r Alias Pind.5

na

Ds1r Alias Pinb.0
Ds2r Alias Pinb.1
Ds3r Alias Pinb.2

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