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 jasiek

Temperatura

Tak tez tak mysle ze powinna pojawic sie temperatura jej wartosc . sprawdziłem dzisiaj płytke jest zgodna z rysunkiem.czujnik wkładałem w miejscu do rejestracji czujników a nawet zeby wykluczyc uszkodzenie sciezki dałem bezposrednio sygnał na nozke 4 megi i to samo . na obydwu atmegach to samo . moze byc czyjni uszkodzony - jak go sprawdzić?? tylko to mnie trzyma w dalszej modyfikacji układu wykonawczgo na silnik

Portret użytkownika mirley

Re: DS18B20

Nijak nie sprawdzisz.... włóż inny czujnik i zobacz.... ale mało prawdopodobne żebys uszkodził

-

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 jasiek

DS18B20

sprawdziłe wszystko -połączenia itd i nic dalej to samo .
zmieniałem tez rezonator na mniejszy -jak gdzies na forach wyczytałem i nic .Dałem nowa atmege i tez nic . Mysle ze cos jest przetwarzaniem danych tylko co.
kolega Grzegorz cos wspomniał o wpisaniu adresu DS18B20 bezposrednio do programu jak i w którym miejscu to zrobic . zrobiłem małyukładzik do sprawdzenia a własciwie to jest termostat bardzo prosty do PC przez RS232 tam pojawia się adres czujnika DS czy tem adres bedzie mozna umiescic w tym programie strona tego projektu www.w.cz.prv.pl apropo czujniki tam działaja

Portret użytkownika ducker

Problem

Również mam taki sam problem jak kolega wyżej, to znaczy nie pokazuje temperatury (jest cały czas 0 stopni a w zasadzie pokazuje -0), tylko że ja nie mam zrobionego jeszcze układu - korzystam z symulatora Proteus i myślałem, że to przez niego jest coś nie tak. Trochę się znam na programowaniu, przeszedłem program w trybie debugowania i z tego co zauważyłem to rejestracja ds'ów przebiega prawidłowo, program pobiera adresy, natomiast przy pobraniu wartości temperatury za każdym razem pobiera wartość 255, co po przeliczeniu daje 0 stopni. Wzorując się trochę na innym programie wykorzystującym ds'y, który działa poprawnie w Proteusie zmieniłem pobieranie wartości temperatury tak, aby była pobierana do jednej zmiennej typu integer, co spowodowało, że temperatura pokazywana na wyświetlaczu wynosiła już nie 0 stopni, lecz również źle wskazywała i nie zmieniała się wraz ze zmianą temperatury na ds'ie.

Portret użytkownika mirley

Re: Ds18B20

A używacie DS18B20 czy może DS1820 lub DS18S20?

-

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 jasiek

DS18B20

oczywiscie DS18B20 -sprawdzalem kilkakrotnie.
Nawet w tym programiku termostat czyta czujniki DS jak jest na czujniku DS18B20.
sprawdziłem wszyskie ktore instalowałem i nawet nowe które kupiłem w innym sklepie i to samo .Ten programik o którym wspomniałem swietnie nadaje sie do sprawdzania DS.
Nie jestem programistą i to co mogłem to sprawdziłem . zostaje tylko cos jak kolega wspomniał programowo cos nie przetwarza danych z czyjnika(ow)- moze innym sposobem przetworzyc te dane -ale to dla tych co sie znaja na programowaniu, ja dopiero zaczynam .
A wracajac do pytania sugesti kolegi Grzegorza a mianowicie o wpisaniu adresu bezposrednio czujnikow po odczytaniu z PC i czy to moglo by byc - jak i gdzie to wpisac.

Portret użytkownika ducker

Ja również korzystałem z

Ja również korzystałem z DS18B20 ale przy okazji próbowałem również z innymi modelami, gdyż miałem do nich dostęp z poziomu Proteusa. Na każdym było to samo czyli w moim przypadku temperatura wskazywała 0 stopni. Jeśli chodzi o wpisywanie adresu na sztywno to chyba nie ma to sensu, gdyż z moich obserwacji przy debugowaniu kodu rejestracja przebiegała poprawnie.

Portret użytkownika mirley

Re: Sterownik C.o

Jeśli układ działa i na wyświetlaczu wszystko widać, da się zmieniać wskazania w menu itp.... to ni ma żadnego powodu dla którego czujniki miały by nie działać.... Szczególnie że wielu użytkowników już to zrobiło i działa.... może ktoś miał z tym problemy i już sobie poradził? Rezystor jest napewno 4.7K.... zmierz omomierzem przy wyłączonym zasilaniu.... czy na pewno przewodzi?

-

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 jasiek

Temperatura

tak sprawdzałem tez podejrzewałem ze moze cos nie tak .wszystkie podzespoły sa nowe.
probowałem zmieniac fuse bity i tez zero rezultatu . Moze ktos miał podobny problem - miech napisze
A jak nie to zmienie na atmege32 tylko płytka -moze ktos kto robił na 16 lub 32 medze podesłał by płytke na maila a moze ma projekt z silnikie krokowym -muwimy o regulacji pieca co .ztego co sie juz zorientowałem to do sterowania silnikie krokowym bedzie mało miejsca w 8 mega trzeba by było dodatkowa pamiec . jaK nie to nastepna zima . Gotowca takiego nie ma - kupiłbym i po problemie

potjan@wp.pl
Dzieki

Portret użytkownika ducker

Problem

A możesz wysłać screena z ustawionymi fusebitami spod bascoma? Ja nie mam takiej tabelki jak ty tylko taka listę z polami wyboru. Może tu coś źle ustawiam. Chodzi mi o wybór fusebitów po wybraniu opcji "Program chip" przy użyciu programatora stk200.

Portret użytkownika mirley

Re: Fusy

Wrzuć swoją tabelkę z fusebitami to powiem ci czy dobrze ustawiłeś i ewentualnie co masz przestawić..... nie używam już stk200 a bascom nie chce wyświetlać tej tabelki jak nie jest nic podłączone

-

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

Sorka przyklejam sie ale nie na temat

Mirku Czy używasz programatora STK500 USB który bez problemu współpracuje z Bascomem - bo ja mam problemy z komunikacja i dlatego uzywam STK 200 na LPT - wolny ale bezproblemowy - Czy zdradzisz rąbka tajemnicy ??

Dzięki serdecznie

Pozdrawiam wszystkich w Nowym 2011 Roku

PS.
Przesiadam się z M32 na 128 :)

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika ducker

Problem

Tutaj jest tabelka z moimi fusebitami. jeszcze mam problem tego typu, że nie wiem co mam zrobić żeby zostały one wysłane do procesora. Mam dać opcję write FS czy write PRG ?? Po kliknięciu w write FS zablokowałem sobie układ a po write PRG dopisało mi ustawienia do kodu i nie wiem czy musze jeszcze raz skompilować program z tymi ustawieniami czy są już uwzględniane przez programator.

tabelka z fusebitami

Portret użytkownika mirley

Re: Sterownik C.O

Nic dziwnego że zablokowałes procka jak wgrales takie ustawienia. Ustawiłeś zewnętrze taktowanie z generatora, nie wiem skąd takie ustawienia wziąłeś. W zielonej ramce (patrz niżej) wybierasz wartość 0, w czerwonej ma być takie ustawienie żeby CKSEL=1111 i SUT=11 (zgodnie z rysunkiem z burn-o-mata, który jest wyżej) po czym klikasz "write FSH"(write fusebits high). Sprawdzasz czy linijka z CKSEl i SUT się nie przestawiła (prawdopodobnie się przestawi), jeśli tak to ustawiasz znowu tak jak ma być (czyli opcja z CKSEL=1111 i SUT=11) i klikasz tym razem "write FS" (write fusebits)

Innych przycisków nie dotykaj, niczego bezmyslnie nie klikaj

----------

Programatora używam tylko USBASP, tego co mam na stronie

-

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 ducker

problem

Dzieki za poprawe. Do tej pory nie ustawiałem fusebitow, bo do moich projektow tego nie potrzebowałem. Jednak nie rozwięzało to mojego problemu.

Zmieniłem trochę funkcję odpowiadającą za odczytanie temperatury, lecz nie działa ona w pełni poprawnie. Nie pokazuje już 0 stopni, reaguje na zmianę temperatury w dsie, ale temperatura pokazywana jest zła. Jeśli procesor jest zaprogramowany na 8 - 16 mhz to temperatura wskazuje ponad 6000 stopni i wraz ze wzrostem temperatury maleje. A gdy jest zaprogramowany na 1 - 4 mhz to pokazuje za małą temperaturę (przy 10 stopniach na dsie 1,2 stopnia w programie), lecz rośnie wraz z zwiększeniem temperatury na dsie. Poza tym wyświetla daną temperaturę we wszystkich miejscach z 1 dsa.

Oczywiście testowałem to w Proteusie i dlatego mogłem zmienić taktowanie.
Płytkę również wykonałem i na taktowaniu 16mhz wskazuje dokładnie to co Proteus, dlatego wykluczyłem błąd programu.

Nie wiem czy jest to poprawnie napisane. Wzorowałem sie na innym programie ktory działa poprawnie, jednak pracuje on z zegarem 1mhz. Jeśli zmienie wartość na 16mhz to rownież wskazuje niepoprawnie temperature. Może czas oczekiwania na temperaturę jest za mały? Jest to moje pierwsze zetknięcie się z dsem i nie mam wogóle doświadczenia z tym sprzętem.

oto kod:

LSB - zmiana typu na integer
T() - zmiana typu na integer

Temperatura:
  Disable Interrupts
  1wreset
  Select Case Ktory_ds
    Case 0:
      1wwrite &HCC
      1wwrite &H44
      wait 1 
    Case 1:
      1wwrite &H55
      '1wwrite Ds1(1) , 8
      1wverify Ds1(1)
      1wwrite &HBE
      'Lsb = 1wread():
      'Msb = 1wread():
       Lsb = 1wread(2)
    Case 2:
      1wwrite &H55
      '1wwrite Ds2(1) , 8
      1wverify Ds2(1)
      1wwrite &HBE
      'Lsb = 1wread():
      'Msb = 1wread():
       Lsb = 1wread(2)
    Case 3:
      1wwrite &H55
      '1wwrite Ds3(1) , 8
      1wverify Ds3(1)
      1wwrite &HBE
      'Lsb = 1wread():
      'Msb = 1wread():
       Lsb = 1wread(2)
    Case 4:
     1wwrite &H55
      '1wwrite Ds4(1) , 8
      1wverify Ds4(1)
      1wwrite &HBE
      'Lsb = 1wread():
      'Msb = 1wread():
       Lsb = 1wread(2)
  End Select
 
  Enable Interrupts
 
  If Ktory_ds > 0 Then
    T(ktory_ds) = Lsb
    '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

Portret użytkownika IMEX2

złe wskazania temperatury

Ustawienie częstotliwości nie mają nic wspólnego z odczytem temperatury o ile ustawiłeś poprawnie w programie i na fuse

Czasami zdaża sie jeśli zmieniasz kod w programie że nie odczyta wogóle temp i sa wskazania 85

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika ducker

Tylko że własnie wskazania

Tylko że własnie wskazania temperatury są różne dla różnych czestotliwosci. Nie wiem właśnie dlaczego tak jest ale tak się poprostu dzieje.

Portret użytkownika ducker

Rozwiązany

Problem został rozwiązany. Problem jest chyba z zewnętrznym kwarcem, bo po zaprogramowaniu komtrolera z zewnętrznym kwarcem nie wystartował, a na ustawieniach standardowych (1mhz wewnetrzny) pracowal, tylko bardzo wolno i bez wskazań temperatury. Zmieniłem kod na 8mhz, ustawiłem wewnętrzny kwarc i ruszyło.

Wielkie dzieki za pomoc

Portret użytkownika tomak

mam dwa dość głupie pytania;)

mam dwa dość głupie pytania;) czy wszystkie czujniki podłączmy pod jedno wyjście i jakie to wyjście bo trochę z opisu słabo kapuj, a i jak ołączyć sterownik z układem wykonawczym . proszę o cierpliwośc dla mnie i jasne wytłumaczenie;pę

Portret użytkownika mirley

Re: Sterownik C.O

Złącze TRI w układzie wykonawczym podłączasz do pinów procka PD3 i PD4 (złącze 1W_TR), do tego samego złącza w sterowniku do trzeciego pinu podłączasz magistralę 1-wire od czujników, 3 czujniki na jednym kablu. Najpierw musisz oczywiści podłączyć każdy z osobna i dokonac rejestracji w systemie do czego ma słuzyc który czujnik (opis wyżej a także w innych odpowiedziach pod artykułem). Do sterownika nalezy także podłączyć napięcie 5V oraz mase z zasilacza na układzie wykonawczym

-

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 Szymon SQ3OPC

pwm

Witam. Na bazie programu sterownika co powstał sterownik wentylacji chlewni. Układ pracuje już 4 tygodnie i na razie spełnia zadanie czyli regulację temperatury oraz przewietrzanie co pewien odcinek czasu. Sterownik steruje dwoma wentylatorami. Chodzi mi teraz żeby zrobić sterowanie szybkością obrotów wentylatorów. Chciał bym wprowadzić część w programie żeby sterował w następujący sposób wentylatorami
- Jeżeli różnica miedzy obecną temperatura a zadana jest większa o np 1 stopień wentylatory 100%
- jeżeli ta różnica zmniejszy się do 0,5 stopnia 50% mocy
- jeżeli różnica jest 0,2 to 25%
równa zatrzymanie.
Jeżeli mógł by ktoś podpowiedzieć był bym wdzięczny.
w razie potrzeby zamieszczę kod

Portret użytkownika IMEX2

Sterowanie Obrotami

@Szymon - o ile pamiętam to już chyba prędzej się rozpisywałeś

Zapewne chodzi o kurnik jeżeli jest taka niewielka różnica temperatur tak domniemam

Wentylatory są na 220V zapewne bez siły - bo jeśli siła to jest problem
Sterowanie Obrotami silników już kminię od jakiegoś czasu

Najrozsądniejszym wydaje mi się rozwiązaniem jest zastosowanie drugiej atmegi a w niej sterowanie tylko obrotami za pośrednictwem RS lub kodu BCD

A może zastosowanie przekaźników załączających rezystory do projektu niżej U2008

np 3 PK a zarazem mamy 3 prędkości

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika rafliczek22

KOlega szymonie, a może by

KOlega szymonie, a może by kolega tak napisał jakie te wentylatory, nikt sam się raczej nie domyśli.

Głównie chodzi mi o to jaki silnik mają w środku, zwykły szczotkowy, czy asynchroniczny (zapewne z kondensatorem)?

Jeśli 1 to pestka, jeśli 2 to gorzej bo albo trzeba zrobić jakiś a'la falownik albo poprzez regulacje kąta otwarcia ale z pewnym opóźnieniem-dobranym "na wyczucie", i wtedy oczywiście przydałby się dodatkowy uC który by tym sterował bo ten 1 mógł by czasami nie wydalać (głownie chodzi o 1wire) albo złapać zwiechę.

Portret użytkownika marin

Witam Jestem z Bułgarii i nie

Witam
Jestem z Bułgarii i nie rozumiem, Polska
do tego użyć google translate
pytanie
można dołączyć
działających w ostatniej wersji programu i symulacyjne w Proteus
Dzięki

Portret użytkownika Szymon SQ3OPC

Regulacja obrotów

Więc silnik asynchroniczny jednofazowy. Wcześniej wentylatorami sterował sterownik firmy Jotafan http://jotafan.pl/pl/sterowniki_mikroklimatu/Seria_TERMISTAT/TERMISTAT-6-.../TERMISTAT-6-AL-010
Doczytałem tam że sterowanie trijaka odbywało się za pomocą zmiany napięcia w przedziale od 0 do 10V.
W sterowniku zastosowany jest 89S52

Portret użytkownika rafliczek22

Eee, tam pisze że sterownik

Eee, tam pisze że sterownik ma wyjście analogowe 0-10V do sterowania innymi urządzeniami, ale regulacja pisze że fazowa więc najprostsza, chociaż za bardzo nie wyobrażam sobie takiego sterowania silników asynchronicznych, ale jeśli to działa to ok.

P.s. Czy masz może możliwość zrobienia fotki płyty wewnątrz urządzenia, bo opis to jedno a rzeczywistość drugie wtedy miałbym większą pewność że to reg. fazowa.
Może być tu na forum a może być na maila

Portret użytkownika mirley

Re: Sterownik C.O

do marin:
Nie wykonywałem żadnych symulacji programu w Proteus'ie, jeśli o to chodzi.

Pytania odnośnie wentylatorów piszcie na forum... niech autor dyskusji założy temat na forum i tam niech wylądują pytania odnośnie tego.... to co piszecie ma mało wspólnego z sterownikiem 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 Szymon SQ3OPC

Przeniesienie

Przepraszam administratora strony już założyłem wątek na forum. Zapraszam do dyskusji.
http://mirley.firlej.org/node/585

Portret użytkownika jasiek

działa!!!!!!!

Po długich zabawach uruchmiłem -odczytuje temperatury .
Dzieki za rady - problemem był zewnetrzny rezonator po ustawieniu działa prawidłowo
mam pytanie - jak juz wczesniej wspomniałem chce sterowac silniczkiem krokowym .

1. jak i wktórym miejscu wpisac sterowanie silniczka -oczywiscie w tym momencie rezygnuje ze sterowania pompka -bo niemam oraz z pinów rejestracji DS (pind5,6,7 mam juz wolneskorzystałem z pomysłu ) mozna tez usunac wpisy wentylatora czyli mam juz wolne miejsca.
2.silniczek lewo /prawo było by dobrze z iloscia obrotów 20 do 30 zamkniecie /otwarcie
dlaczego silnik krokowy? - własnie na giełdzie kupiłem gotowy mechanizm (siłownik )z tym silniczkiem za 10zł nowy(czyli podnoszenie /opuszczanie ) .

3.jesli nie da rady to jak dopisac tu -Wykorzystac - dwa przewody z (pind5,7) jeden do zamknij, drugi otwórz dla silniczka DC (Czyli zmiana biegunowosci )
proszę o pomoc

Portret użytkownika mirley

Re; Silnik krokowy

Sterowanie silnikiem krokowym nie jest takie proste jak włączenie triaka... trochę więcej linijek wymaga.... ja bym zastosował oddzielny mały kontroler np tiny2313 do tego silnika i sterował dwoma pinami jeden idź w lewo a drugi idź w prawo.

Do silnika DC trzeba by było zrobić mostek H czyli 4 tranzystory i układ bramek logicznych żeby to pewnie i dobrze działało

Twój wpis jest nie na temat.... napisz pytanie następnym razem na forum

-

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 matrix

Na czym polega komunikacja DS'ów z prockiem?

Szukałem info jak obsłużyć 4 czujniki DS18B20 na jednej linii i znalazłem ten projekt u Ciebie. Nie rozumiem jak odbywa się cała komunikacja DS'ów z prockiem więc próbowałem przeanalizować kod, ale i tak nie kminię. N marginesie Mireczku, przydało by się Twoje kody okomentarzować trochę, nie uważasz?

Możesz mi wyjaśnić co robi ten kawałek softu? Wiem że rejestruje kolejne DS'y, ale o co w tym wszystkim chodzi?

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

Portret użytkownika mirley

Re: Sterownik CO

Komentarze mogły by być pomocne..... ale teraz w nowych projektach będę raczej opisywał działanie programu.

Ten kod nie rejestruje dsów a jedynie odczytuje numer seryjny jednego czujnika i zapisuje go do eeprom. Na pocztku programu masz instrukcje sprawdzające stan zworek. Po wykraniu odpowiedniej kombinacji zworek odpowiadajączej np czujnikowi 1, wkładamy na magistralę 1-wire tylko ten jeden czujnik i włączamy zasilanie sterownika. Program wchodzi w specjalnego ifa na początku, ustawia Ds_adr czyli od którego bajtu w pamięci zacząć wpisywanie numerów seryjnych przy tym ds, następnie uruchamiana jest ta procedura powyzej, wykorzystuje ona rozkaz odczytu numeru seryjnego dla jednego ds-a.

Potem wkładasz drugi czujnik (wyciągając pierwszy) i zwierasz zworki w pozycji na drugi czujnik. Resetujesz program lub włączasz zasilanie i do pamięci zapisuje sie drugi czujnik pod innym adresem....

tak z wszystkimi czujnikami. Na samym końcu zwierasz zworki w pozycji takiej jak mają byc podczas normalnej pracy (patrz opis) i wkładasz wszystkie czujniki na magistralę 1-wire. Teraz program przy starcie odczyta numery seryjne które zapisal w eeprom i bedzie adresował czujniki na magistrali...

-

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

Resetuje się

Witam
Zrobiłem ten sterownik i mam następujący problem:
Czasami przy włączaniu dmuchawy cały układ się resetuje ( wyłącza się i włącza, tzn ekran gaśnie i na nowo ekran powitalny itd...). Przy pracy pompy tak się nie dzieje.

Cały okład jest zbudowany na jednej płytce( sterownik i układ wykonawczy), dodatkowo zrobiłem płynną regulację prędkości dmuchawy (na tyrystorze). Sterownik znajduje się nad piecem.
Czym może być to spowodowane?
Pozdrawiam.

Portret użytkownika IMEX2

re Resetuje sie

Czy załączanie dmuchawy masz dodatkowo zrobione na przekaźniku czy tylko na tyrystorach

PS
Jak rozwiązałeś płynną regulacje obrotów - czy z poziomu menu czy potencjometr ?

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika smanek

re Resetuje sie

Na tyrystorach samych.. A regulacja na potencjometrze...

Portret użytkownika mirley

Re: Sterownik CO

Reset sterownika może być spowodowany zakłóceniami od dmuchawy... temu układ wykonawczy jest na osobnej płytce i zasilany jest z innego źródła niż pompka itp. Efekt zwieszania często występuje ja układ działa też w pobliżu dużych przekaźników/stycznikó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 IMEX2

reset

Sprawe resetu częściowo rozwiazuje zastosowanie wew generatora 8MHz a nie zew 16 - skutkuje to przerobieniem programu ale u mnie pomoglo

-

Grzesiek - miasto Ostróda

GG 12372371 dom
tel 502812675 SMS

Portret użytkownika zibo25

Mam problem ... nie moge

Mam problem ... nie moge skomplikowac pliku .bas do hex ... Jakim programem to robicie ? ewentualnie mógł by ktos wrzucic gotowy plik ???

-

zibo

Portret użytkownika mirley

Re: Kompilacja

DO kompilacji kodu będzie potrzebna pełna wersja bascoma. Poszukaj w odpowiedziach, gdzieś był link do skompilowanego 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 JONY

CO

Witaj Mirley!
Mam pytanko odnosnie tego prostego sterownika do CO.
Zrobiłem wersje z wentylatorem i tu pytanie : co zmienić w poniższym listingu żeby po zaniku

napięcia sieci wentylator nadmuch sam sie załączał tak jakbym nacisnął przycisk start wentylatora

- żeby nie trzeba było kupować up-sa do tego sterownika bo jak mi mrugnie światło w domu to leci

Reset i sterownik startuje od zera bez nadmuchu i wygasza mi piec.
może dołożyć jedną linijke jakies polecenie start wentylatora?

-----------Listing wentylator:
 
'wentylator
  If T(1) >= T_min Then
    If Tryb_pracy = 0 Then                                  'jeśli był ciagly to zmien tryb na 
 
przerywany i resetuj zmienne
      Tryb_pracy = 1
      Licznik_went = 0
      Praca_przerwa = 0
    End If
  Else
    Hword(1) = T_min - 30
    If T(1) < Hword(1) Then
      If Tryb_pracy = 1 Then
        Tryb_pracy = 0
        Off_licz = 0
      End If
    End If
  End If
 
  If Wygaszenie = 0 Then
 
    If Tryb_pracy = 0 Then
      Went = 0
 
      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
 
    Else
      If Praca_przerwa = 0 Then                             'przerwa
        Went = 1
        Incr Licznik_went
        If Licznik_went >= Przerwa Then
          Licznik_went = 0
          Praca_przerwa = 1
        End If
      Else
        Went = 0
        Incr Licznik_went
        If Licznik_went >= Dmuch Then
          Licznik_went = 0
          Praca_przerwa = 0
        End If
      End If
    End If
 
  Else
    Went = 1
  End If
Return

Mirley: Kod z bascoma umieszcza się w znaczniku bas

Portret użytkownika mirley

Re: CO

W najprostszym wypadku wystarczy zmienić: Wygaszenie = 1 na Wygaszenie = 0 na początku kodu i po włączeniu zasilania zawsze wentylator będzie pracował

-

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 JONY

Mirley -chyba coś robię źle

Mirley -chyba coś robię źle nie załącza mi się ten nadmuch po resecie może przerobiłbyś mi ten listing sterownik co z wentylatorem i posłał na maila to sobie sprawdze czy będzie ok - bardzo mi zależy bo już mi się nie chce przerabiać sterownika na akumulatorki podtrzymujące ucc. W ogóle to gratuluje - jesteś wielki. Mój mail Z góry dziękuje !
Ten Twój sterowniczek super chodzi - gdyby ten nadmuch się sam załączał to by było extra.
Gdybyś kiedyś wybierał się do Zakopca to daj znać .

Portret użytkownika JONY

W końcu udało się z tym

W końcu udało się z tym Nadmuchem tak jak mówiłes Mirley - DZIĘKI JEST SUPER POZDRAWIAM

Portret użytkownika damian_zet

Witam, Chciałbym się

Witam,

Chciałbym się dowiedzieć czy można by było dorzucić wyjście TRO3 i dopisać do programu sterowanie podajnika do pieca? Sterowanie byłoby bardzo proste, potrzeba tylko ustawienia przez jaki czas ma być załączany silnik od podajnika i co ile minut :) Mirlej czy dałoby się coś takiego dopisać do programu i dodać to sterowanie? Bardzo chciałbym zrobić taki sterownik :) niestety z programowaniem w Bascomie dopiero zaczynam ;/ Chciałbym się jeszcze dowiedzieć czy układ posiada podtrzymania tego co bedzie ustawione recznie?

-

Damian

Portret użytkownika strulkhas

Rejestracja

Po zrobieni wszystkiego przyszedł czas na rejestracje czujników i znowu coś nie tak mam;/.Gdy włoze Ds-a i włączę zasilanie sterownik w ogóle nie startuje a ds robi sie ciepły.Sprawdzałem na twojej stronie na pewno go dobrze wkładam w rejestracje.Również miałem źle ustawione fusebity i teraz gdy włączę sterownik mam jak wyżej koledzy -0 stopni to moje ustawienie fusebitow.Jakieś pomysły ?

Portret użytkownika mirley

Re: Sterownik CO

Pogram raczej będzie trudno rozbudować bo się już nic nie zmieści, chyba żeby trochę jakoś kod zoptymalizować.... w najbliższym czasie na pewno tego nie zrobię bo jestem zajęty.

Co do ds'ów to zapoznaj się z wskazówkami we wcześniejszych postach. Podczas rejestracji do układu może być podłączony tylko jeden czujnik. Na wyświetlaczu pojawi się odpowiedni napis zgodnie z opisem, potem wkłada się kolejny czujnik wyjmując pierwszy. Po zarejestrowaniu wkłada się wszystkie naraz

-

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 damian_zet

Mirley, jak tylko mógłbyś mi

Mirley, jak tylko mógłbyś mi jakoś pomóc jak będziesz miał czas. To są moje początki z bascomem i niestety trudno mi coś więcej z tym zrobić ;/ Będę wdzięczny za wszelaką pomoc :)

-

Damian

Portret użytkownika lok65

jak dołozyć wiecej czujników

Witam ! Twój sterownik zrobiłem w ubiegłym roku i sprawuje się bardzo dobrze ( na bieząco uaktualniany).
W tej chwili chciałbym na podstawie tego sterownika zrobic ,a raczej rozbudować o dodatkowe czujniki.
Dysponujac trzema zworkami DSR mozna zarejestrować 7 czujników moja prosba o podpowiedz conalezy zrobic, adokładnie jak zaadresowac eeprom

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

pozdrawiam

-

lok56

Portret użytkownika mirley

Re: Sterownik CO

To co napisałeś wygląda całkiem dobrze i powinno działać bez problemu.... Potem jeszcze musisz zmienić procdurę odczytu aby czytała więcej czujników i wyświetlanie aby mozna było to zobaczyć. Prawdopodobnie nie zmieści się to w procku ale możesz sprawdzić... nie pamiętam już ile to do końca zajmowało ale napewno był problem z miejscem

-

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 damian_zet

Podajnik

Mirley, pomógłbyś mi z dołożeniem sterowania do podajnika? Może dałoby się usunąć jakąś część kodu lub zastosować większy procek? Co Ty na to?

Pozdrawiam,
Damian

-

Damian