Mirley - Elektronika i Programowanie
projekty, programy... wszystko o elektronice
M
RSS FB TW G+
Sterownik trawiarki
Sierpień 19, 2015 Sterowniki
M002A
15.00
PLN
szczegóły...
Main thumb Trawiarka do płytek drukowanych jest najpotrzebniejszym narzędziem w warsztacie każdego elektronika. Projekt jest nowszą wersją prostego sterownika trawiarki. Poprzednia wersja układu, przedstawiona przedstawionego tutaj, cechuję się daleko idącą prostotą jednak posiada kilka wad. W celu bardziej precyzyjnego kontrolowania procesu trawienia płytki, a w szczególności temperatury roztworu trawiącego, koniecznym stało się wykonanie bardziej zaawansowanego sterownika. Opisywany układ jest właśnie takim sterownikiem temperatury, który tym razem działa na podstawie algorytmu PID. Sterownik działa w oparciu o mikrokontroler ATmega8 i jest wyposażony w wyświetlacz LCD 2x16 znaków, czujnik temperatury DS18B20 i kilka wyjść do sterowania m.in. grzałką i napowietrzaniem.

Sterowanie grzałki odbywa się, podobnie jak w poprzednim projekcie, poprzez cykliczne włączanie i wyłączanie grzałki z małą częstotliwością. Stosunek czasu działania do przerwy przekłada się w sposób bezpośredni na moc grzania, a duża bezwładność obiektu, jakim jest pojemnik z roztworem sprawia że nie ma skoków temperatury.

Działanie:

Schemat ideowy sterownika przedstawiony jest na rysunku 1. Sercem układu jest mikrokontroler U2 (ATMEGA8-PU) działający na rezonatorze kwarcowym X1 (16MHz), wspieranym kondensatorami C1 (22pF) i C2 (22pF). Rezystor R4 (10k) zapewnia poprawną polaryzację nóżki resetu procesora. Diody D1-D3 (LED R) wraz z rezystorami R1-R3 (470R) pozwalają na wyświetlanie statusu działania układu. Dioda D1 (LED G) miga w takt ustawionego czasu próbkowania, D2 (LED Y) pokazuje status mieszania wytrawiacza a dioda D3 jest związana z grzałką.
Kup Teraz! - Płytki, Elementy, uC …Pokaż Cennik Pokaż na Allegro
Do wizualizacji działania układu wykorzystywany jest wyświetlacz W1 (LCD16X2). Potencjometr PR1 (10k) reguluje jego kontrast, a rezystor R11 (510R) ogranicza prąd struktur LED podświetlających wyświetlacz. Podświetlanie może być kontrolowane programowo dzięki T1 (BC556), którego prąd bazy ograniczany jest za pomocą rezystora R12 (3,3k).
Rysunek 1: Schemat Ideowy Sterownika
Buzzer alarmowy BZ1 (BUZZER) jest włączany za pomocą tranzystora T2 (BC556). Rezystor R13 (3,3k) ogranicza prąd jego bazy. Przyciski SW1-SW3 (uSW 12mm) stanowią prosty interfejs kontrolujący pracę sterownika. W układzie mogą pracować dwa czujniki temperatury U3 (DS18B20) oraz U4 (DS18B20), podłączone na oddzielnych magistralach 1-Wire, co pozwala na prostszą obsługę programową i ułatwia ewentualną wymianę czujnika. Rezystory R5 (4,7k) i R6 (4,7k) są konieczne do poprawnej pracy obu magistral 1-Wire
Obwody wykonawcze zrealizowane są na triakach TR1-TR2 (BTA12-600B) oraz optotriakach OPT1-OPT2 (MOC3041) zapewniających izolację optyczną od napięcia sieci. Rezystory R9-R10 (220R) ograniczają prądy bramek triaków, natomiast R7-R8 (330R) ograniczają prądy diod optotriaków. Obwód zasilania zbudowany jest klasycznie za pomocą stabilizatora U1 (7805) i kondensatorów C3 (100uF/25V), C4 (100uF/25V) i C5 (100nF). Złączem zasilania jest GP1 (NS25-W2), natomiast GP2 (NS25-W2) stanowi dodatkowe wyjście uniwersalne, które w projekcie modelowym jest wykorzystywane do sterowania przetwornicy do układu mieszającego. Stan na GP2 jest zawsze przeciwny do stanu triaka TR2. Procesor można zaprogramować dzięki złączu PROG1 (AVRPROG).

Budowa:

Do budowy układu z powodzeniem nadaje się płytka, której warstwa od strony druku dostępna jest tutaj. Jej odbicie lustrzane można znaleźć tutaj. Podczas lutowania płytki od strony elementów (od góry) z pewnością przyda się schemat montażowy dostępny tutaj. Montaż dobrze jest zacząć od wlutowania zworek, oznaczonych "zw" na schemacie montażowym. Niestety na płytce jest aż siedem zworek, co jest bezpośrednią konsekwencją jednostronnej płytki drukowanej i dość skomplikowanego schematu. W drugiej kolejności należy przylutować rezystory i podstawki pod procesor i pod optotriaka. Stabilizator oraz triak powinny być zamontowane na leżąco. Wyświetlacz W1 powinien być zamontowany z wykorzystaniem gniazd szufladkowych na goldpiny aby można było go łatwo wyjąć. Kolejność pozostałych elementów jest dowolna. W podstawowej wersji programu działa tylko czujnik U4, więc nie jest wymagane montowanie złącza pod układ U3 oraz rezystora R5.
Kup Teraz! - Płytki, Elementy, uC …Pokaż Cennik Pokaż na Allegro
Sterownik może być zasilany napięciem stałym z przedziału 7-12V. W układzie modelowym został zastosowany zasilacz 12V/1.2A w postaci przetwornicy impulsowej. W układzie przewidziano dwa obwody wykonawcze, z których jeden ma służyć do sterowania grzałką (TR1) a drugi do sterowania napowietrzaniem (TR2). Przy montażu diod LED należy zadbać o odpowiednią długość wyprowadzeń, tak aby były one zamontowane na równi z górną płaszczyzną wyświetlacza. Podobna kwestia dotyczy przycisków, które w układzie modelowym przylutowano na przedłużkach z goldpinów (patrz foto). Nic nie stoi na przeszkodzie aby zastosować przyciski wyższe, jednak będą z pewnością trudniej dostępne. Więcej czasu należy poświęcić czujnikowi temperatury. Należy pamiętać, że będzie on umieszczony w wytrawiaczu więc bardzo ważne jest zabezpieczenie jego nóżek przed strawieniem. Oprócz nałożenia cienkich koszulek termokurczliwych na każdą jego nóżkę, cały czujnik dobrze jest zalać poxipolem lub innym klejem tego typu.

Przy wycinaniu obudowy warto skorzystać z pliku dostępnego tutaj, który zawiera maskę do wycinania frontu obudowy. Wydrukowany rysunek (w skali 1:1) można przykleić do frontu obudowy taśmą klejącą, po czym zaznaczyć za pomocą ostrego noża miejsca wiercenia i wycinania otworów. Dzięki temu wszystko idealnie pasuje do obudowy i oszczędzamy mnóstwo czasu.
W układzie modelowym zrezygnowano z napowietrzania za pomocą pompki akwariowej, stosując mechaniczne poruszanie wytrawianymi płytkami w górę i w dół. Ma to chronić przed rozchlapywaniem wytrawiacza na zewnątrz pojemnika co jest szczególnie ważne jak używamy trawiarki w mieszkaniu a nie w warsztacie. Poruszanie płytkami jest zrealizowane za pomocą wolnoobrotowego silnika od rożna.

Programowanie:

Program do sterownika trawiarki został napisany w BASCOM AVR i zajmuje prawie całą dostępną pamięć mikrokontrolera ATmega8. Główna pętla programu przedstawiona jest poniżej:
Do
'****************************
  If F4ms = 1 Then
    F4ms = 0
    
    Gosub Przyciski
    If Wyswietl = 1 Then
      Wyswietl = 0
      Gosub Wysw_lcd
    End If

  End If
'********************************
  If F200ms = 1 Then
    F200ms = 0
    If Poz_menu <> 0 Then If Change = 0 Then Gosub Menu_shift
  End If
'********************************
  If F500ms = 1 Then
    F500ms = 0
    Reset Watchdog
    If Halarm = 1 Then Toggle Buz Else Buz = 1
    If Poz_menu = 0 Then
      Wyswietl = 1
    End If
  End If
'********************************
  If F1s = 1 Then
    F1s = 0
    Gosub Temperatura
    Gosub MixingControl
  End If
'********************************
  If STflag = 1 Then
    STflag=0
    Gosub HeaterControl
  End If
'********************************
Loop
End
Przez większość czasu procesor kręci się w nieskończonej pętli, w której jedynym zadaniem jest sprawdzanie czy jedna z flag nie została ustawiona. Obsługa klawiatury i wyświetlanie wywoływane są co 4ms, co 500ms resetowany jest watchdog i sterowany jest brzęczyk alarmowy, natomiast co 1s program przechodzi do procedury odpowiedzialnej za mieszanie wytrawiacza i wywoływana jest procedura pomiaru temperatury. Najważniejsza jest tutaj flaga STflag, która zależy od częstotliwości próbkowania sterownika, ustawianej w menu.

Procedura sterowania grzałką przedstawiona jest poniżej:
HeaterControl:
 'alarm conditions
  Reset Halarm
  If TErr <> 0 Then Set Halarm
  If T(1) >= 600 Then Set Halarm
 'If T(2) >= 600 Then Set Halarm    'alarms for second sensor
 'heater control
  If Halarm = 1 Then
    Set Tr1
  Else
     Incr Hcnt
     If Hcnt = 50 Then
       Hcnt = 0
       Gosub PIDcalculate
     End If
     If Hcnt < HPower Then Reset Tr1 Else Set Tr1
  End If
  Led3 = not Tr1
Return
Warto zauważyć że procedura sterowania grzałką wywoływana jest 50 razy częściej niż ustawiany czas próbkowania sterownika. Na początku sprawdzane są stany alarmowe i przekroczenie maksymalnej temperatury wytrawiacza (60 stopni). Jeżeli wystąpił jakiś problem z pomiarem temperatury, lub jest ona za wysoka, włączany jest buzzer a grzałka pozostaje wyłączona, niezależnie od ustawień sterownika. Jeżeli wszystko jest w porządku cyklicznie zwiększana jest wartość licznika Hcnt, który liczy do 50. Po każdym przepełnieniu wywoływana jest procedura PIDcalculate, odpowiedzialna za wyliczenie mocy grzałki (zmienna HPower) w zależności od nastaw, temperatury i czasu. Sterowanie grzałką odbywa się za pomocą PWM o małej częstotliwości, równej próbkowaniu. W każdym wywołaniu procedury obsługi grzałki zmienna HPower porównywana jest z licznikiem i na tej podstawie włączany jest triak. Czym większa wartość HPower tym przez dłuższy czas Hcnt < Hpower i triak działa.
Procedura obliczania mocy grzałki na podstawie parametrów ustawianych, temperatury i czasu przedstawiona została poniżej:
PIDcalculate:
 'liczenie PID i dopasowywanie to zakresu 0-20 czyli 0-100% co 5% lub 0-50 co 2%
  Toggle Led1
 
  Tdif = ERT - T(1)
 'calculate sum of errors
  Hi=abs(Tdif)
  If Hi <= IMD Then
    Hi = Tdif * SMT
    TdifSum = TdifSum + Hi
    If TdifSum > 200000  Then  TdifSum = 200000
    If TdifSum < -200000  Then  TdifSum = -200000
  Else
    TdifSum = 0
  End If
  
 'P
  PidOut = PGN * Tdif
  
 'D
  Hs = Tdif - PrevTdif
  Hs = Hs / SMT
  Hs = Hs * DGN
 'Hs = Hs * 10
  PidOut = PidOut + Hs
  
 'I
  Hs = IGN * TdifSum
  Hs = Hs / 100
  PidOut = PidOut + Hs
  
 'Calculate Power
  PidOut = PidOut/50
  if PidOut < 0 Then PidOut = 0
  if PidOut > 50 Then PidOut = 50
  HPower = PidOut
  
  PrevTdif = Tdif
Return
Procedura realizuje prostą wersję dyskretnego algorytmu PID. Na samym początku liczony jest uchyb Tdif, czyli różnica między temperaturą aktualną a ustawianą, oraz całka (suma) uchybu w czasie. W dalszej części obliczane są składowe PID sterowania. Część proporcjonalna (P) to prosty iloczyn wzmocnienia PGN i uchybu Tdif.
Kup Teraz! - Płytki, Elementy, uC …Pokaż Cennik Pokaż na Allegro
W części różniczkującej (D) wykorzystano różnicę miedzy aktualną wartością uchybu i tą z poprzedniej próbki (PrevTdif) oraz wzmocnienie DGN. Sterowanie jest tym razem proporcjonalne do zmian uchybu miedzy kolejnymi próbkami. W części całkującej (I) sterowanie jest proporcjonalne do iloczynu całki uchybu w czasie i wzmocnienia IGN. Suma sterowań z poszczególnych członów została znormalizowana do wartości 0 - 50 odpowiedniej dla procedury sterującej grzałką.

Procedura pomiaru temperatury przedstawiona została poniżej:
Temperatura:
  Incr Licz_ds
 'If Licz_ds = 3 Then Licz_ds = 1     'two sensors
  If Licz_ds = 2 Then Licz_ds = 1     'one sensor
  
  Hb = Licz_ds - 1
  Disable Interrupts
  1wreset Pind , Hb
  1wwrite &HCC , 1 , Pind , Hb
  1wwrite &HBE , 1 , Pind , Hb
  Hi = 1wread(2 , Pind , Hb)

  1wreset Pind , Hb
  1wwrite &HCC , 1 , Pind , Hb
  1wwrite &H44 , 1 , Pind , Hb
  Enable Interrupts

  TMinus.licz_ds = Hi.15
  TErr.licz_ds = Err
  Hi = Abs(hi)
  Hi = Hi * 10                                             'dokladnosc do 0,1
  Hi = Hi / 16
                                              
  T(licz_ds) = Hi
Return
Procedura jest uniwersalna i pozawala na odczyt temperatury z kilku czujników podłączonych na kolejnych pinach. W układzie modelowym wykorzystywany jest tylko jeden czujnik. Na początku zwiększana jest wartość zmiennej Licz_ds, która w przypadku jednego czujnika ma zawsze wartość 1. W dalszej kolejności odczytywana jest wartość temperatury do zmiennej Hi, po czym wysyłany jest rozkaz rozpoczęcia konwersji nowej wartości temperatury. Na końcu do tablicy T(n) zapisywana jest temperatura, a do dwóch zmiennych TMinus i TErr zapisywane są flagi znaku temperatury i błędów odczytu. Procedura sterowania mieszaniem wytrawiacza przedstawiona jest poniżej:
MixingControl:
  If MixingStatus = 0 Then    'if mixing is on
    Hw = 60 * MXT
  Else                        'if mixing is off
    Hw = 60 * MXD
  End If

  Incr MixingCnt
  If MixingCnt >= Hw Then
    MixingCnt = 0
    Toggle MixingStatus
  End If
  If MXD = 0 Then MixingStatus = 0
  
  Tr2 = MixingStatus
  Aux = Not MixingStatus
  Led2 = Aux
Return
Procedura ta steruje sekwencyjnie pracą mieszania. Uruchamia mieszanie na czas MXT po czym czeka przez czas MXD do rozpoczęcia kolejnego cyklu. Czas przerwy można ustawić na 0 co spowoduje ciągłe mieszanie roztworu. Procedura steruje triakiem oraz wyjściem Aux, które w układzie modelowym wykorzystywane jest do włączania przetwornicy 12V/1.5V zasilającej silnik od rożna.

Ustawienia fusebitów:

Obsługa:

Sterownik obsługuje się za pomocą trzech przycisków (+, -, M), które służą do ustawiania parametrów układu. Naciśnięcie przycisku M pozwala wejść w tryb ustawień. Lista pozycji w menu wraz z krótkimi objaśnieniami przedstawiona jest poniżej:
  • (ERT) Temperatura wytrawiacza [C] - temperatura zadana, zwykle 40 stopni, ustawiana w zakresie 20 - 60 stopni
  • (SMT) Czas próbkowania [s] - odstęp czasu miedzy kolejnymi próbkami temperatury branymi do obliczeń mocy grzałki, ustawiany w zakresie 5 - 30 sekund
  • (MXT) Czas pracy mieszania [min] - czas działania np. pompki akwariowej, ustawiany w zakresie 1 - 60 minut
  • (MXD) Czas przerwy mieszania [min] - czas przerwy w działaniu mieszania, ustawiany w zakresie 0 - 10 minut
  • (PGN) Wzmocnienie członu proporcjonalnego - nastawa członu P, ustawiana w zakresie 0.00 - 2.50
  • (DGN) Wzmocnienie członu różniczkującego - nastawa członu D, ustawiana w zakresie 0.00 - 2.50
  • (IGN) Wzmocnienie członu całkującego - nastawa członu I, ustawiana w zakresie 0.00 - 2.50
  • (IMD) Maksymalny uchyb dla całkowania - ograniczenie wartości uchybu temperatury, powyżej tej wartości regulator nie całkuje, ustawiany w zakresie 2 - 20 stopni
  • Zapisz i Wyjdź - wyjście z menu i zapis ustawień w EEPROM
Kup Teraz! - Płytki, Elementy, uC …Pokaż Cennik Pokaż na Allegro
W menu poruszanie góra/dół zapewniają klawisze + i -, natomiast wejście do ustawień danego parametru następuje przez ponowne naciśnięcie klawisza M. Klawisze + i - staną się teraz odpowiedzialne za zmianę wartości wybranego parametru. Ponowne naciśnięcie M zaakceptuje zmiany wartości i powróci do wyboru parametru do ustawień. Wyjście z menu następuje poprzez wciśnięcie klawisza M w pozycji "Zapisz i Wyjdź".

Zdjęcia Projektu:

Wykaz Elementów:

Elementy Sterownika:

Załączniki:

Projekt Płytki:
AB AB AB Płytka (strona druku,termotransfer) 32.2 kB
AB AB AB Płytka (strona druku,odbicie lustrzane) 32.3 kB
AB AB AB Płytka (strona druku, kilka płytek na stronie, termotransfer) 143.3 kB
AB AB AB Montowanie (strona elementów) 66.2 kB
AB AB AB Warstwa Opisowa (strona elementów) 102.9 kB
AB AB AB Soldermaska (strona druku) 61.3 kB
Dokumentacja:
AB AB AB Schemat Ideowy Sterownika 173.7 kB
AB AB AB Lista Elementów 1.5 kB
AB AB AB Lista Montażowa 1.6 kB
Programowanie:
AB AB AB Kod Źródłowy (BASCOM-AVR) 15.8 kB
AB AB AB Program wynikowy (BIN BASCOM-AVR) 7.6 kB
AB AB AB Program wynikowy (HEX) 21.3 kB
AB AB AB Ustawienia Fusebitów (burn-o-mat) 12.1 kB
Pozostałe:
AB AB AB Nadruk na Obudowę 22.0 kB
AB AB AB Maska wycinania obudowy 13.7 kB

Pytania i Komentarze:

comments powered by Disqus


Marzec 23, 2017
Zegar Nixie z termoemtrem został ukończony
Więcej …
Marzec 23, 2017
Zegar Nixie z termoemtrem, prace trwają

Więcej nowinek …

LISPOL
Polecane Strony