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 paweł

Sterownik

Ok, czujniki już działają, dzięki.
A pomijając wentylator chciałbym wykorzystać drugi triak do regulacji pompą. To znaczy żeby działało to mniej więcej tak:
Temperatura mniejsza od zadanej(powiedzmy Tz1)->pompa wyłączona
Temperatura większa od Tz1 a mniejsza od Tz2->pompa działa na pierwszym biegu(prąd płynie przez pierwszy triak)
Temperatura większa od Tz2->pompa działa na drugim biegu, prąd płynie przez drugi triak(tylko).
Połączenie nie jest problemem, natomiast nie znam jeszcze bascoma.
Dlatego pytam jak by to wyglądało?
Wiem, że na pewno trzeba dopisać przy portach:

Sw_port Alias Pinb                                          'nazwa portu
Pompa1 Alias Portd.3
Pompa2 Alias Portd.4
Buzz Alias Portd.1
Light Alias Portd.0

W zmiennych:

Dim T_min1 As Word ,T_min2 As Word, T_alarm As Word

w przyciskach:
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_min1 < 950 Then T_min1 = T_min1 + 10
                Case 2:
                   If T_min2 < 950 Then T_min2 = T_min + 10
              End Select
              Autosave = 0
            Case 4:
              If T_alarm < 950 Then T_alarm = T_alarm + 10
              If Poz_ust = 0 Then Poz_ust = 1 Else Tryb_letni = Not Tryb_letni
              Autosave = 0
 
 
          End Select
          If Buzz = 0 Then Buzz_en = 0
          Autopowrot = 0
          Light = 0
          Autolight = 0

tak samo przy "decr"
Potem w LCD:

     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.Min1:"
         Lowerline
         Lcd "T.Min2:"
         End If
 
       If Poz_ust = 1 And Mig = 1 Then
          Locate 1 , 10
          Lcd "       "
       Else
       't minimalna
         Hword(1) = T_min1 / 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_min1 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 min 2
         Hword(1) = T_min2 / 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_min2 Mod 10
         Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C"
       End If
 
 
      Case 4:
     '**************************************************************
        If Poz_wysw <> 4 Then
         Cls
         Lcd "T.Alarm:"
         Lowerline
         Lcd "Tryb: "
       End If
 
       If Poz_ust = 1 And Mig = 1 Then
          Locate 1 , 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 1 , Hword(2)
         Hword(2) = T_alarm Mod 10
         Lcd Hword(1) ; "." ; Hword(2) ; Chr(0) ; "C "
       End If
 
       If Poz_ust = 2 And Mig = 1 Then
       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

W sterowaniu:

Sterowanie:
 
  If Tryb_letni = 1 Then
    If T(1) >= T_min1 Then
       Hword(1) = T(2) + 70
       Hword(2) = T(2) + 30
       If T(1) >= Hword(1) Then 
        If T(1) <= T_min2 Then      
         Pompa1 = 0
         Pompa2 = 1
        Else
         Pompa1 = 1
         Pompa2 = 0      
        End If
       End If
      If T(1) <= Hword(2) Then 
       Pompa1 = 1
       Pompa2 = 1
      End If
    Else
      Pompa1 = 1
      Pompa2 = 1
    End If
  Else
    If T(1) >= T_min1 Then
     If T(1) <= T_min2 Then
      Pompa1 = 0
      Pompa2 = 1
     Else
      Pompa1 = 1
      Pompa2 = 0
     End If
    Else
      Pompa1 = 1
      Pompa2 = 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
 
 
Return

Jak pisałem, nie znam bascoma, ale starałem się pisać przez analogię.
Czy poprawnie zmieniłem?
Dziękuję i pozdrawiam.
Paweł

Portret użytkownika Szymon SQ3OPC

sterownik

witam
najpierw

Pompa1 Alias Portd.3
Pompa2 Alias Portd.4

Dim T_p1 As Word , T_p2 As Word  

Readeeprom T_p1 , 2
Readeeprom T_p2 , 7

If T_p1 < 100 Or T_p1 > 500 Then T_p1 = 300
If T_p2 < 500 Or T_p2 > 950 Then T_p2 = 500

 Writeeeprom T_p1 , 2 
Writeeeprom T_p2 , 7   

If Pompa1 = 0 Then Led_p1 = Mig Else Led_p1 = 1
    If Pompa2 = 0 Then Led_p2 = Mig Else Led_p2 = 1

potem menu wiadomo

sterownie

 If T(1) >= T_p1 Then
       Pompa1 = 0
       Pompa2 = 1
       Else
       Pompa1 = 1
       Pompa2 = 1
       End If
      If T(1) >= T_p2 Then
       Pompa1 = 1
       Pompa2 = 0
        End If

u mnie działa dokładnie tak jak chciałeś:)
wrzuciłem kod do procka
A jeszcze zrezygnowałem z trybu letniego i zimowego

Portret użytkownika paweł

sterownik

Dziękuję Szymon.
Program wgram około środy. Nigdzie nie dostałem warystorów, i miałem jakiś skok w sieci. Oprócz spalonego bezpiecznika, przebiło mi jeszcze triaka, ale już naprawione.
Cały czas uczę się języka C, i jak będę już umiał,to napiszę ten sam program i wrzucę.
A jak znajdę czas to przerobie jeszcze schemat tak aby obsługiwał 2 pompy trzybiegowe.
Jeszcze raz dziękuję i Pozdrawiam
Paweł

Portret użytkownika IMEX2

Alarm i Miganie podświetlania LCD

dodatkowa linijka kodu umożliwia podczas działania alarmu dodatkowo miganie podświetlanie LCD

Tak wyglada kod przed zmianami a znajduje sie w dolnej cześci całego kodu

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

a tu po zmianie a raczej dodaniu kody

  'alarm
  If T(1) >= T_alarm Or T(2) >= T_alarm Then
    If Buzz_en = 1 Then Buzz = Not Buzz Else Buzz = 1
    If Buzz_en = 1 Then light = Not light Else light = 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

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika IMEX2

Alarm i Miganie podświetlania LC - Poprawka

proponuje inaczej - żeby nie zapomnieć o aktywnym w tle alarmie

If Buzz_en = 1 Then light = Not light Else light = 1

ta niewielka zmiana nie doprowadzi nas- być może do obłedu

If Buzz = 1 Then light = Not light Else light = 1

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika Piotr59mb

układ wykonawczy

Witam.
Chciałem przetestować sam układ wykonawczy, więc zwarłem TRI z GND, podałem 230V i 15V na ZAS.
Do wyjścia TRO1 podłączyłem żarówkę. Po włączeniu zasilania wolfram na ułamek sekundy się rozżarzył po czym zgasł, a stabilizator bardzo się nagrzewa. Gdy nie jest podlaczona żarówka, wszystko jest w porzadku... o ile można tak powiedzieć.
Czy tak to powinno być? Jeśli nie to co może być uszkodzone? Triak? Troche dziwne, bo diody powinny się świecić po podłączeniu masy do TRI (lecz się nie świecą) Triak przepuszcza 230V pomiędzy MT1 i MT2 czyli dostaje sygnał na GATE a z tego by wynikało, że i optotriak jest sprawny...

Proszę o pomoc i pozdrawiam
Piotr59mb

----------------------

Ok, już sobie poradziłem. Przez nieuwagę diody były odwrotnie wstawione... Ale już działa ;)

------------------

Jeszcze trzy pytania...
Złącze T1 i T2 należy połączyć z TRI ?
Złącze W1 jest do czego?
Gdzie podpiąć termometry DS18B20?

Portret użytkownika mirley

Re: Sterownik C.O

Po pierwsze poczytaj regulamin na temat pisania pod artykułami. przed chwilą scaliłem dwa twoje posty w jeden i nawet nie zdążyłem odświeżyć strony i znowu muszę to scalać.

T1 i T2 zgodnie z opisem na płytce są do podłączenia układu wykonawczego i nalezy podłaczyć je ze złaczem TRI w ukłądzie wykonawczym.

Linia sygnałowa z DS18B20 idzie do złącza 1W podpisanego na płytce (obok T1 i T2).

oprócz tego musi być podłączona masa i zasilanie do czujników temperatury oraz między płytką wykonawczą a sterownikiem

-

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 Piotr59mb

O ile dobrze zrozumiałem,

O ile dobrze zrozumiałem, wszystkie termometry powinne mieć zwarte wyjścia DQ podpięte do złącza 1W, tak?

Co do tych trzech postów, to przepraszam, pisałem na szybko.

Portret użytkownika mirley

Re: Sterownik C.O

tak, czujniki podłącza się równolegle. Zanim podepniesz wszystkie czujniki naraz musisz każdego z osobna zarejestrować w systemie sterownika. Patrz opis w podpunkcie obsługa

-

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 paweł

pytanie

Mam takie pytanie. Jakie powinno być napięcie na wejściu optotriaka? w internecie znalazłem że ok.6V, a tutaj mamy 5V i dodatkowy spadek na R1(330)lub R3(330). Może to głupie pytanie, jednak odpowiedź na pewno rozjaśni mi w głowie:)
Dziękuję i Pozdrawiam

Portret użytkownika IMEX2

sterowanie triaka

wlasnie sledze temat sterowania triaka - robie sterownik co ale chce zastosowac sterowane elektronicznie obroty w jaki kolwiek sposób - te rezystory 330 R to wartosc optymalna aż do wieku Kohm napiecie na wyjsciu 230v sie nic nie zmienia - mozesz dać i 180 bo to wartosc minimalna

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika paweł

triaki

Dzieki.
A właściwie gdzie należy stosować triaki, a gdzie przekaźniki?
Pozdrawiam

Portret użytkownika mirley

Re: Triak/Przekaźnik

Praktycznie można stosować wymienne ale triak jest przeważnie tańszy, wytrzymuje wiekszy prąd w stosunku do wymiarów, praktycznie nie potrzebuje prądu do podtrzymywania działania z zasilania niskonapięciowego i nie generuje zakłóceń które potem zwieszają procesor. Przekaźnik może za to być wielokanałowy, sterowany jedną cewką i może bardziej odporny na przepięcia które mogą uszkodzić triaka. Nie wiem czy jest jakaś reguła co należy gdzie stosować, zawsze należy się kierować mocą i charakterem tego czym sterujesz

-

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 Piotr59mb

Wgrałem program z

Wgrałem program z wentylatorem, jednak za chiny nie mogę ogarnąć tego programu. W trybie zimowym, kiedy temperatura w temperatura w piecu jest większa od minimalnej, owszem, pompa pracuje, jednak gdy temperatura zejdzie z powrotem poniżej tej minimalnej, pompa się nie wyłącza. W trybie letnim, gdy temperatura w piecu jest większa niż w zbiorniku wyrównawczym, pompa włącza się, gdy temperatura zejdzie, pompa wyłącza się i dalej już odmawia posłuszeństwa - nie ma sygnału '0' na TR.
Skoro to jest wersja z wentylatorem, to dlaczego żaden sygnał nie idzie na drugi optotriak?

Pozdrawiam
Piotr59mb

Portret użytkownika grek1209

Wgrałem program

Witam .Program od Mirka jak i przerobiony przez Szymona jest na pewno dobry testowałem i nie było problemów.Spróbuj wgrać jeszcze raz program i sprawdź płytkę luty.

Portret użytkownika sorontar

Re: Wgrałem program

A tu nie chodzi o histerezę? Wydaje mi się, że temperatura musi spaść jeszcze o kilka stopni, zanim pompa przestanie pracować.
Pozdrawiam

Portret użytkownika grek1209

Wgrałem program

Tak oczywiście ale myślałem że kolega wie o tym.Odnośnie wentylatora to trzeba go uruchomić przyciskiem

Portret użytkownika Piotr59mb

Ok, przycisk od wentylatora

Ok, przycisk od wentylatora nie wiadomo czemu, nie zwierał przez co całość tak dziwnie się zachowywała.
Wymieniłem go i już wszystko jest dobrze. Swoją drogą świetny projekt ;)

Portret użytkownika IMEX2

histereza na pompe i prośba

Zgadza się histereza na pompę musi być większa - nie wiem dlaczego ktoś to tak ustawił ze jak wył się pompa to załącza się wentylator - to jest błędne założenie i mało ekonomiczne dla spalania
Tę histerezę trzeba po prostu dodać do menu z jakimś zakresem od - do - na piec i na pompę - ja jeszcze dodałem sterowanie drugą pompą do instalacji podłogowej (lub jako druga przy zastosowaniu wymiennika - instalacje z kominkiem najczęściej) - aktywacja drugiej pompy podłączona do " tryb zimowy " na letnim jest wyłączona 2 pompa

Jeszcze jedna sprawa do wszystkich - czy ktoś ma gdzieś projekt czego kolwiek z czujnikami DS tak żeby z poziomu menu można było przełączać / wybierać konkretne DS-y pod dane wyswietlane temperatury - jak coś proszę na maila lub GG - dziękuję serdecznie - Na elce jest projekt ale w C a ja potrzebuje na bascom-a

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika Szymon SQ3OPC

sterowanie pompą

Witam wszystkich nie wiem o co właściwie chodzi przecież w moim przerobionym programie jest osobno nastawiana temperatura którą ma utrzymywać wentylator i osobno nastawiana jest temperatura załączenia pompy. A histereza pompy ????? przecież jak w trybie zimowym ma sie załączyć przy temp. np 35 stopni to po co histereza???????

Portret użytkownika sorontar

Warystory

Mam problem z dostaniem warystorów. Może mi ktoś napisać jak powinno dobierać te elementy? Np. dla podanego JVR-7N431(k) w sklepie internetowym podają :Warystor JVR-7N431K 430V, 350Vdc, 275Vrms. Ostatnie trzy cyfry to chyba 43*10^1, czyli dla 430 V, ale co oznacza JVR-7N? I jeżeli w sieci mamy 230V to maksymalne napięcie jest ok 325V, czyli patrzymy na woltaż dla prądu stałego? Jeżeli dobrze to rozumiem, to dobrze, jeżeli nie, to proszę o korektę.
Pozdrawiam

Portret użytkownika IMEX2

sorontar - ?

nie wstawiaj tych warystorów - i taj niema rezystora w triakach żeby w razie czego je odetkać - i bez warystorów będzie działało tak jak powinno i tak dasz bezpiecznik jakiś tam na zasilanie wiec się nie obawiaj

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika gosc

Jak zmienić czujnik na LM35?

Jak zmienić czujnik na LM35? tzn sprzętowo i w programie????

Portret użytkownika mirley

Re: LM35

Po pierwsze trzeba zrobić całkiem nowy schemat i płytkę bo do przetworników ADC w procesorze podłaczony jest aktualnie wyświetlacz. Poza tym przydadzą się do LM35 pewnie jakieś wzmacniacze operacyjne. Poza tym będzie problem z pinami bo potrzebujesz jednego pinu dla jednego czujnika a nie wszystkie razem jak to jest dla Ds'a. Program do obsługi temperatury też będzie całkowicie inny ale to trzeba napisać mając podłaczone takie czujniki a nie na sucho.

Ogólnie nie polecam montowania LM35 bo dużo więcej trzeba się z nimi narobić a zysku nie ma z tego żadnego

-

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

Quote:Poza tym przydadzą się

Quote:
Poza tym przydadzą się do LM35 pewnie jakieś wzmacniacze operacyjne

Po co, przecież trzeba by stosować wzmacniacze np.:tl074 bo taki lm358 prawie napewno wprowadzi male ale zawsze przesunięcie fazowe.

Może lm35 nie bo cena taka sama ale poleciłbym lm75, odzcyt prościutki jak w lm35 i adresowanie sprzetowe nie trzeba rejestrować programowo, tanie u sprzedawcy na allegro markg_2006 1,70 ja ostatnio kupiłem 20 szt. za 35zł, nie trzeba wyłączać przerwań na czas odczytu, jedyna wada to rozdz. 9bit ale większości taka rozdzielczość wystarczy.
Jeśli ktoś chce kawałek kodu do odczytu to napisać na emaila.

Portret użytkownika mirley

Re: Czujnik temperatury

raczej myślałem o zastosowaniu wzmacniacza operacyjnego z rodziny OPA dla wzmocnienia sygnału, ale to tak na marginesie bo nie polecam tych czujników i wolę ds18B20. Za to czujnik m75 wydaje się bardzo interesujący tylko trochę obudowa SO8 mi nie pasuje ale to jest do przeskoczenia. jakiekolwiek informacje na temat tego czujnika, kody do odczytu wraz z opisem proszę umieszczać na forum bo tu nie jest na to odpowiednie miejsce

-

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 IMEX2

Brak zapisania Statusu sterownika

Jak w temacie. Pisze inny sterownik i co jakiś czas ustalam właściwości-opcje jakie powinien mieć taki sterownik i doszedłem do wniosku że jedną z ważniejszych rzeczy jakie powinien mieć jeszcze to zapisany status w pamięci swojej pracy - Czy piec przed zanikiem zasilania był w trybie pracy czy nie.

Co o tym myślicie?

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika matrix

Re: sterownik C.O

pewnie się przyda natomiast jest jedna ciekawa rzecz o której myślę i na pewno sie przyda, a zaobserwowałem w profesjonalnym sterowniku pieca. zwykle każdy z nas chodzi do pieca sterować całością. a nie lepiej dorzucić małą przystawkę na przewodzie kilku żyłowym i w tej przystawce ze 4 przyciski do zmiany pracy kotła? na przykład:
- temperatura +
- temperatura -
- noc
- dzień

wiadomo że w nocy nie potrzeba tak wysokiej temp. jak w dzień.

Portret użytkownika mirley

Re: Sterownik C.O

Sterowanie z domu to jak najbardziej słuszna idea, dlatego mój sterownik jest w domu a piec w piwnicy :)

-

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

Mirku, ale po co wzmacniać

Mirku, ale po co wzmacniać sygnał przy Vref=2,56V masz skok co 2,5mV czyli 0,25.C czy to dla ciebie mało, co innego gdyby stosować lm335 w którym dla 0.C masz 2,73V czyli Vref trzeba dać ok.4V albo lepiej odrazu 5V wtedy skok co 4,8mV więc dokładność 0,5.C wtedy można ponarzekać choć myśle że i taka różnica do zniesienia, ale polecam LM75, sorry że nie na temat ale przeglądnij http://www.mcselec.com/index.php?option=com_docman&task=doc_download&gid=21&Itemid=54

Portret użytkownika tekken

problem z odczytem temperatury

Mam problem z odczytem temperatury z bojlera podaje 3.6 C sprawdzałem na ds18B20 i ds 1820 za każdym razem był ten sam problem natomiast odczyt pieca jest poprawny. Jako że nie jestem jak narazie obcykany z programowaniem proszę o radę. Poza tym bardzo ciekawy układ słowa uznania dla autora :)

Portret użytkownika mirley

Re: Sterowanik

Spróbuj na nowo zarejestrować wszystkie czujniki DS18B20, z DS1820 nie będzie działało. Ewentualnie wcześniej zaprogramuj procesor ponownie a potem na nowo zarejestruj czujniki

-

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 tekken

Jestem w kropce

Jestem w kropce przeprogramowałem już raz procka wcześniej miałem wsad 2.0 było to samo potem wrzuciłem 1.04 i też lipa zastanawiam się czy oby nie kupiłem uszkodzonego ds-a albo jakaś lewa partia się trafiła, spróbuje zamienić je miejscami zobaczymy ...

------

mój błąd tzn niedopatrzenie okazało się że w sklepie wcisneli mi ds 1820 a ja myślałem że to wersja z B, koniec tematu :)

Portret użytkownika sorontar

tranzystory

może mi ktoś napisać w jaki sposób obliczone zostały rezystancje oporników przy tranzystorach? Przy bazie to wnioskuję, że prąd otwierający tranzystor musi być właśnie I=U/R czyli I=5/3300 czyli ok. 1,5 mA, ale np R1, lub R3(między bazą a kolektorem)?
Pozdrawiam

Portret użytkownika mirley

Re: tranzystory

Rezystory nie zostały policzone w żaden sposób bo po co jak to układ cyfrowy (tranzystor przewodzi lub nie, pośrednich stanów nie ma), dałem 3,3k tak z przypadku, dla 1K też będzie dobrze. R3 jest taki sam żeby się było trudniej pomylić przy lutowaniu ale jest potrzebny tylko na wypadek jak się programuje procesor żeby buzzer nie piszczał. R3 sprawia że tranzystor jest zatkany w takim przypadku. R1 ogranicza prąd wyświetlacza do jakiejś tam wartości i jest policzony tak jakby zamiast do tranzystora był podłączony do +5V.

-

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 sorontar

Czujniki ds

A jest jakiś inny sposób rejestracji czujników, niż zworkami?
Pozdrawiam

Portret użytkownika mirley

Re: DS18B20

Możesz zapisać do pamięci eeprom w chwili programowania adresy wszystkich czujników i wtedy będzie działać. Wcześniej jednak musisz sobie je czymś odczytać, albo raz zaprogramować zworkami a potem odczytać pamięć eeprom, zobaczyć czy odpowiednie komórki się na pewno poprawnie odczytały i potem możesz już wgrywać gotowy plik do pamięci eeprom

-

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

Poprawię kolegę: Quote:I=U/R

Poprawię kolegę:

Quote:
I=U/R czyli I=5/3300 czyli ok. 1,5 mA,

Nie 5?3300 tylko 5-0,6(nap.otw.tranzystora) czyli 4,4/3300=0.0013A

Portret użytkownika IMEX2

sorontar - Czujniki DS programowanie

Zmień to - początek kodu

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

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

i programowanie masz z klawiatury bez zworek zupełnie - na reset brak miejsca w programie
Wciskasz jeden przycisk menu to masz jeden DS Up drugi DS i Dn masz 3 DS - wciskasz i trzymasz i wlanczasz zasilanie lub wciskasz reset jakie to proste się stało

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika tekken

pompa

problem mój polega na tym że pompa włącza się jedynie wraz z wentylatorem po czym wyłącza się również razem z nim i nie włącza się sama gdy piec osiągnie odpowiednią temperaturę. Może jakieś sugestie, jeśli chodzi o połączenia są raczej poprawne

-----

przed chwilą sprawdzałem działanie i pompa tym razem nie włączyła się gdy zadziałała dmuchwa

Portret użytkownika mirley

Re: Sterownik

A nie masz przypadkiem zwarcia między pinami procesora lub na kablu, takie działanie raczej jest nie możliwe z punktu widzenia programu. Ewentualnie spróbuj ponownie zaprogramować procka. Trochę to testowałem i w sumie działa mi to przy piecu więc jakby się coś psuło to już bym poprawiał

-

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 tekken

zdemontowałem sterownik z

zdemontowałem sterownik z pieca i po testach na stole okazało się że jest ok po podgrzaniu lutownicą czujki od pieca włączyła się pompa jak należy, wszytko zaczęło działać było coś z prockiem nie tak ale zaskoczył :)

Portret użytkownika Forrest

Zakłócenia

Mamy pytanie odnośnie zakłóceń. Czy miałeś jakiś problem takiej natury? Chodzi mi głównie o zakłócenia z sieci energetycznej i / lub od pompy czy wentylatora. Stosowałeś jakieś celowe zabiegi czy zabezpieczenia żeby im zapobiec jeśli ew. się pojawią?

Jestem w trakcie projektowania urządzenia, którego jedną z funkcji będzie właśnie sterowanie piecem C.O. tylko, że w oparciu o MSP430 (różnica taka, że aktywowane będzie stanem wysokim). Widzę, że masz układ w "dwóch częściach". Gdzie znajduje się druga płytka z optotriakami itd.? Czy nie lepiej zostawić izolację galwaniczną w postaci układu MOC po stronie mikrokontrolera, a triak połączony z siecią dać bliżej urządzenia pracującego w wyższym napięciu?

Żeby nie było, to nie są słowa krytyki :) Uważam, że projekt jest świetny, a pytania zadawane są na zasadzie prośby o radę od myślę, że bardziej doświadczonej osoby w tej dziedzinie ;).

Z góry dzięki za odpowiedź.

Pozdrawiam!

Portret użytkownika mirley

Re; Sterownik C.O

Nie miałem problemów z zakłóceniami.... gdyby były przekaźniki zamiast triaków to mogły by być problemy. Układ wykonawczy mam blisko pompy a sterownik w domu. Optotriaki są dlatego przy triakach, żeby po kablu połączeniowym nie goniło 230V. Poza tym kilka kabli z 230v może się nawzajem zakłócać, a gdzie jest optotriak z punktu widzenia oddzielenia galwanicznego to nie ma to znaczenia.

-

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 zenek501

Czy dałoby się dopisać

Czy dałoby się dopisać kawałek kodu który zapamiętywałby temperatury max. i min.?

Portret użytkownika mirley

Re; Sterownik

Pewni by się dało ale to kwestia późniejsza....teraz brak czasu na cokolwiek. Nie wiem czy zmieści się w procesorze bo nie pamiętam ile program zajmował

-

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 strulkhas

Skoro miała być pierwotnie

Skoro miała być pierwotnie ładowarka od telefonu to jaka ma być wydajność zasilania dla sterownika i układu wykonawczego razem ? 500mA wystarczy tak ?Pewnie pytanie banalne ale kto pyta nie błądzi ;]

Portret użytkownika mirley

Re: Pobór prądu

500mA wystarczy spokojnie, dokładnego poboru prądu nie mierzyłem

-

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

Właśnie zauważyłem że u

Właśnie zauważyłem że u ciebie jest ładowarka, skoro tak to po co dawałeś 7805 jak one mają ok. 5 - 5.5V???

Portret użytkownika strulkhas

Przeczytaj opis w układzie

Przeczytaj opis w układzie wykonawczym jest przedział napięcia 7-15V więc zbija napięcie Pozdr