
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ą. 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). 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-WireBudowa:
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. 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.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
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
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
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
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
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
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
Lipiec 19, 2018
Zasilacz do wzmacniaczy już opisany ...
Więcej …
Czerwiec 20, 2018
Moduł wykonawczy już opisany...
Więcej …
Więcej nowinek …
Zasilacz do wzmacniaczy już opisany ...
Więcej …
Czerwiec 20, 2018
Moduł wykonawczy już opisany...
Więcej …
Więcej nowinek …
Polecane Strony