
Działanie:
Schemat ideowy sterownika przedstawiony jest na rysunku 1. Sercem układu jest mikrokontroler U3 (ATMEGA8-PU), pracujący na wewnętrznym oscylatorze 8MHz. Rezystor R5 (10k) zapewnia poprawną polaryzację wejścia resetu a złącze PROG1 (AVRPROG) umożliwia zaprogramowanie mikrokontrolera. Kondensator C4 (100nF) filtruje wewnętrzne napięcie referencyjne dla przetwornika analogowo-cyfrowego (ADC) wewnątrz mikrokontrolera U3. Komunikaty i zmierzone temperatury prezentowane są na trój-cyfrowym wyświetlaczu siedmio-segmentowym W1 (TOT-5362BMR-B), przystosowanym do multipleksowania. Rezystory R7 (330R), R8 (330R) oraz R10-R15 (330R) ograniczają prąd struktur LED wyświetlacza. Anody W1 sterowane są za pomocą tranzystorów T2-T4 (BC556), których prądy baz ograniczane są za pomocą rezystorów R2-R4 (3,3k). W układzie pracują dwa czujniki temperatury U2 (DS18B20) oraz U4 (DS18B20) pracujące na dwóch oddzielnych magistralach 1-Wire. Rezystory R6 (4,7k) oraz R9 (4,7k) zapewniaja prawidłowe podciąganie szyn danych obu magistral do +5V. Tranzystor T1 (BC556), którego prąd bazy ograniczany jest za pomocą R1 (3,3k), pracuje jako element wykonawczy dla brzęczyka piezo BZ1 (BUZZER), umożliwiając generację sygnałów dźwiękowych.Budowa:
Płytka drukowana dostępna tutaj (warstwa od strony druku) może z powodzeniem zostać wykorzystana do zbudowania sterownika. Do ręcznego rysowania płytki markerem można wykorzystać rysunek dostępny tutaj. Montowanie płytki od strony druku (od spodu) warto oprzeć o rysunek dostępny tutaj, natomiast pomocą w montażu płytki od strony elementów (od góry) będzie rysunek dostępny tutaj. Montaż płytki jest dość specyficzny, niektóre elementy muszą zostać zamontowane od strony druku, co ułatwi potem montaż całości w obudowie. Montaż rozpoczynamy klasycznie od strony elementów, lutując na początku wszystkie zworki. Proszę zwrócić uwagę, że dwie z nich załatwia potem montaż przycisku SW2 od strony druku. W dalszej kolejności montujemy rezystory i wszystkie małe elementy. Warto zadbać aby pola lutownicze elementów pod wyświetlaczem były możliwie płaskie. Należy obciąć krótko wyprowadzenia przed lutowaniem aby nie było kłopotów z montażem wyświetlacza. Pod mikrokontroler wygodnie jest zastosować podstawkę, podobnie jak pod optotriaki OPT1 i OPT2. Przy montażu stabilizatora U1 należy uważać aby jego radiator nie stykał się ze zworką, gdyż spowoduje to zwarcie na jego wyjściu. Kolejność montażu pozostałych elementów jest bez znaczenia, należy tylko zwracać uwagę na poprawną biegunowość czy też kolejność wyprowadzeń.Programowanie:
Program został napisany w dobrze znanym programie BASCOM AVR . Zajmuje on około 60% dostępnej pamięci mikrokontrolera. Poniżej przedstawione są jedynie ciekawe fragmenty programu. Działanie programu nie jest skomplikowane i w skrócie wygląda to następująco: cały czas procesor kręci się w nieskończonej pętli Do Loop, czekając na ustawienie jednej z flag taktujących w przerwaniu. Za odpowiednie taktowanie odpowiada Timer0. Co około 4ms wywoływana jest procedura multipleksowania wyświetlacza, z której w odpowiednim momencie następuje skok do odczytu temperatury. Co 20ms odczytywana jest klawiatura i potencjometry, natomiast sterowanie, obsługa alarmów i watchdoga wykonywana jest znacznie wolniej (0.5 - 1s). Poniżej przedstawiono obsługę przerwania timera 0:
Prztimer0:
Timer0 = 131
Set F4ms
Incr Dziel(1)
If Dziel(1) = 25 Then
Dziel(1) = 0
Set F100ms
Incr Dziel(2)
If Dziel(2) = 5 Then
Dziel(2) = 0
Set F500ms
Toggle Dzielb
If Dzielb = 0 Then
Set F1s
Set Ft
End If
End If
End If
Incr Dziel(3)
If Dziel(3) = 5 Then
Dziel(3) = 0
Set F20ms
End If
'Dmuchawa 6.25Hz 30-100% PWM co 5%
If BlowPower > 5 and BlowEna = 1 and BlowBlock = 0 Then
Incr BlowCnt
If BlowCnt = 40 Then BlowCnt = 0
BlowH = 2 * BlowPower
If BlowCnt < BlowH Then Tr2 = 1 Else Tr2 = 0
Else
Tr2 = 0
End If
Return
If BuzPattern <> 0 Then
Buz = Not BuzPattern.BuzCnt
Incr BuzCnt
If BuzCnt = 16 Then
BuzPattern=0
Buz = 1
BuzCnt=0
End If
End If
If AdVal(1)>50 Then 'when switch released ADC min code >~85
Else 'switch pushed ADC code ~0
AdVal(1)=Getadc(4)
Hint=AdVal(1)-PrevAdVal(1)
Hint=Abs(Hint)
If Hint>9 Then
Incr AdcCnt(1)
If AdcCnt(1) = 4 Then
AdcCnt(1)=0
MenuPos=4
AutoRet=0
PrevAdVal(1) = AdVal(1)
AdVal(1) = AdVal(1)/67
BlowPower = AdVal(1)+5
If BlowPower < 6 Then BlowPower=6
If BlowPower > 20 Then BlowPower=20
End If
Else
AdcCnt(1)=0
End If
SwCnt(1)=0
If SwCnt(1) < 100 Then Incr SwCnt(1)
If SwCnt(1) = 3 Then
If Alarm_state.0=1 Then
If Alarm_state.7 = 1 Then Alarm_state.7 = 0
Else
If CO_Stage < 2 Then
MenuPos=5
AutoRet=0
Else
Toggle BlowBlock
BuzPattern=31
End If
End If
End If
If SwCnt(1) = 80 Then
If CO_Stage = 2 Then
CO_Stage = 0'Go to HARD off
BuzPattern=&B1111111111111111
MenuPos=5
AutoRet=0
Else
CO_Stage = 2 ' go to normal op.
'BlowBlock = 0
BuzPattern=&B0000000000110011
MenuPos=5
AutoRet=0
End If
End If
End If
If Winter_mode = 0 Then 'in Summer
If Tctrl(1) >= PmpTmin Then
Hw(1) = Tctrl(2) + PmpHistH
Hw(2) = Tctrl(2) + PmpHistL
If Tctrl(1) >= Hw(1) Then Tr1 = 1
If Tctrl(1) <= Hw(2) Then Tr1 = 0
Else
Hw(1) = PmpTmin - PmpHistL
If Tctrl(1) < Hw(1) Then Tr1 = 0
End If
Else 'in Winter
If Tctrl(1) >= PmpTmin Then
Tr1 = 1
Else
Hw(1) = PmpTmin - PmpHistL
If Tctrl(1) < Hw(1) Then Tr1 = 0
End If
End If
Select Case CO_Stage
Case 0: 'HARD Turn off - no coal
BlowEna = 0
BlowBlock = 0
BlowDelayCnt = 0
BlowMode=0
AutoOffCnt = 0
Case 1: 'SOFT Turn off
BlowEna = 0
BlowBlock = 0
BlowDelayCnt = 0
BlowMode=0
AutoOffCnt = 0
If Tctrl(1) > TAutoS Then
CO_Stage = 2
BuzPattern=&B0000000000110011
MenuPos=5
AutoRet=0
End If
Case 2: 'Normal Operation
Hb = Tco - TcoHist
If Tctrl(1) < Hb Then BlowMode=0
If Tctrl(1) >= Tco Then BlowMode=1
If BlowMode=0 Then
BlowEna = 1
BlowDelayCnt = 0
Incr AutoOffCnt
Else
AutoOffCnt = 0
Hw(1) = BlowDelay * 60
If BlowDelayCnt < Hw(1) Then
BlowEna = 0
Incr BlowDelayCnt
BlowWorkCnt = 0
Else
BlowEna = 1
Incr BlowWorkCnt
If BlowWorkCnt >= BlowWork Then BlowDelayCnt = 0
End If
End If
End Select
Hb = Last_T + IncrTHist
If Tctrl(1) > Hb Then
AutoOffCnt = 0
Last_T = Tctrl(1)
End If
Hw(1) = IncrTTime * 60 'in seconds
If AutoOffCnt >= Hw(1) Then
CO_Stage = 0
BuzPattern=&B1111111111111111
MenuPos=5
AutoRet=0
End If
Ustawienia Fusebitów:
Wersje Oprogramowanie uC:
- 0.95 - Wprowadzono numery wersji. Poprawiono problemy z prawidłowym odliczaniem czasu wygaszenia pieca i licznikiem przerwy przedmuchu. Ulepszono procedurę wykrywania wygaszenia pieca poprzez wprowadzenie niewielkiej histerezy (IncrTHist). Dodano także histerezę przy osiąganiu temperatury zadanej (TcoHist).
Obsługa:
Sterownik został tak zaprojektowany aby nie posiadał skomplikowanej procedury ustawień. Nie ma żadnego menu w którym dokonujemy ustawień - większość z opcji została zaszyta na stałe w programie i nie ma konieczności dokonywać żadnych zmian. Podczas normalnej pracy na wyświetlaczu cały czas prezentowana jest temperatura na piecu. Krótkie naciśnięcie przycisku Bojler/Lato/Zima sprawi że będzie można sprawdzić temperaturę na bojlerze. Przytrzymanie tego przycisku przez kilka sekund przełącza tryb pracy pompy: Lato lub Zima.- Lato (na wyświetlaczu U0) - w tym trybie praca pompy zależy od różnicy między temperaturą na bojlerze a temperaturą na piecu oraz od temperatury minimalnej. Pompa pracuje po przekroczeniu przez piec temperatury minimalnej PmpTmin (typowo 30 stopni) ale tylko w przypadku gdy temperatura na piecu jest większa od temperatury na bojlerze, co najmniej o wartość ustawionej histerezy PmpHistH (typowo 7 stopni). Pompa przestanie pracować gdy ta różnica temperatur będzie mniejsza niż druga histereza PmpHistL (typowo 3 stopnie), lub gdy temperatura na piecu spadnie o wartość PmpHistL poniżej temperatury minimalnej.
- Zima (na wyświetlaczu U1) - w tym trybie praca pompy zależy tylko od temperatury minimalnej. Pompa pracuje po przekroczeniu przez piec temperatury minimalnej PmpTmin (typowo 40 stopni), a przestanie pracować gdy temperatura na piecu spadnie o wartość PmpHistL (typowo 3 stopnie) poniżej temperatury minimalnej.
- Stop/Wyłączony (na wyświetlaczu C0) - w tym trybie nadmuch jest wyłączony i zablokowany. Sterownik nie może go uruchomić niezależnie od zmierzonych temperatur i innych jakie panują w układzie. Układ przechodzi do tego trybu po wystąpieniu alarmu, wypaleniu opału (gdy temperatura nie wzrasta przez czas IncrTTime, typowo 20 min) lub ręcznym wyłączeniu.
- Stop/Oczekiwanie (na wyświetlaczu C1) - w tym trybie nadmuch jest wyłączony i oczekuje na możliwość automatycznego uruchomienia (przejścia do trybu Praca), co nastąpi gdy na piecu temperatura będzie większa od wartości TAutoS (typowo 50 stopni). Sterownik jest w tym trybie po włączeniu zasilania.
- Praca (na wyświetlaczu C2) - w tym trybie wentylator pracuje na dwa sposoby: praca ciągła i przerywana. Gdy temperatura na piecu jest poniżej temperatury docelowej to dmuchawa pracuje ciągle, z ustawioną wcześniej mocą. Gdy piec osiągnął już żądaną temperaturę to dmuchawa pracuje w trybie przerywanym (przedmuch) na podstawie parametrów BlowDelay (typowo 10 min) i BlowWork (typowo 15 sekund), które oznaczają odpowiednio przerwę i czas pracy przedmuchu.
Zdjęcia Projektu:
Wykaz Elementów:
Elementy sterownika:
Załączniki:
Projekt Płytki: | ||
AB AB AB | Płytka (strona druku,termotransfer) | 36.0 kB |
AB AB AB | Płytka (strona druku,odbicie lustrzane) | 36.2 kB |
AB AB AB | Płytka (strona druku, kilka płytek na stronie, termotransfer) | 163.8 kB |
AB AB AB | Montowanie (strona elementów) | 71.0 kB |
AB AB AB | Montowanie (strona druku) | 61.9 kB |
AB AB AB | Warstwa Opisowa (strona elementów) | 92.2 kB |
AB AB AB | Warstwa Opisowa (strona druku) | 35.2 kB |
AB AB AB | Soldermaska (strona druku) | 69.1 kB |
Dokumentacja: | ||
AB AB AB | Schemat Ideowy Sterownika | 191.8 kB |
AB AB AB | Lista Elementów | 1.4 kB |
AB AB AB | Lista Montażowa | 1.5 kB |
Programowanie: | ||
AB AB AB | Kod Źródłowy (BASCOM-AVR) | 13.9 kB |
AB AB AB | Program wynikowy (BIN BASCOM-AVR) | 5.0 kB |
AB AB AB | Program wynikowy (HEX) | 14.0 kB |
AB AB AB | Ustawienia Fusebitów (burn-o-mat) | 12.1 kB |
Pozostałe: | ||
AB AB AB | Nadruk na Obudowę | 34.1 kB |
AB AB AB | Plik wierceń | 13.5 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