Sterownik pracy wentylatora DIY

Prezentowany sterownik, pracuje u mnie jako sterownik pracy wentylatora (12V) chłodzącego stabilizator napięcia LM350 zasilacza warsztatowego, który to zasilacz wykonałem jakiś czas temu. Sterownik ten powstał jako rozwiązanie problemu dość irytującego dźwięku jaki ten wentylator wydaje.

Zasada działania prezentowanego sterownika pracy wentylatora

Działa to obecnie tak, że wentylator załączany jest, gdy temperatura LM350 zasilacza osiągnie zamierzoną wartość (55st.), a wyłączany, gdy temperatura spadnie poniżej określonej wartości (40st.).

Dodatkowo, gdy temperatura z jakiegoś powodu wzrośnie do pułapu wartości niebezpiecznej (70st.), włącza się buzzer, który informuje, że urządzenie należało by jak najszybciej wyłączyć, aby zapobiec jego uszkodzeniu.

Całość działa bardzo dobrze i w sumie niewielkim nakładem pracy, sterownik ten można przerobić, aby współpracował z każdym innym wentylatorem, np. pokojowym 🙂

Całość dopełnia duży i czytelny wyświetlacz 7seg, dzięki któremu możemy zobaczyć, czy układ pracuje poprawnie i na bieżąco śledzić jakie temperatury osiąga nasz układ z którym ten sterownik współpracuje.

Prezentowany sterownik pracy wentylatora został zaprojektowany w oparciu o mikrokontroler Atmega168, jednak nic nie stoi na przeszkodzie, aby użyć jakiegokolwiek innego mikrokontrolera firmy Atmel, przekompilowując pod niego dostarczone oprogramowanie.

Projekt w zamierzeniu miał być jak najprostszy i jak najtańszy w wykonaniu (z użyciem już posiadanych przeze mnie elementów elektronicznych) oraz jak najbardziej funkcjonalny, także mieć możliwość jego ewentualnej dalszej rozbudowy.

Część elektroniczna sterownika pracy wentylatora

Jak już wspomniałem, sterownik pracy wentylatora powstał w oparciu o mikrokontroler Atmega168, do którego podłączonych zostało kilka dodatkowych elementów takich jak kondensatory filtrujące, rezystory odciągające, kwarc oraz dławik według zaleceń datashit tego mikrokontrolera.

Do mikrokontrolera za pomocą około 30cm przewodu, podłączony został czujnik temperatury DS18B20 zabezpieczony dodatkowo koszulką termokurczliwą, który co 1sek pobiera wartości panującej temperatury w układzie.

Buzzer, który służy jako dodatkowe zabezpieczenie dźwiękowe oraz 7segmentowe 4 wyświetlacze ze wspólną anodą (połączone z mikrokontrolerem za pośrednictwem czterech rejestrów przesuwnych 74HC595), które wskazują aktualną temperaturę.

Atmega steruje tranzystorem MOSFET IRL540, do którego podłącza się wentylator.

Działa to tak, że po osiągnięciu odpowiedniej temperatury pobranej za pośrednictwem czujnika, zmienia się stan na pinie do którego podłączona jet bramka tranzystora MOSFET i zaczyna on przewodzić, co w efekcie powoduje załączenie wentylatora.

Po spadku temperatury do zadanej wartości, znowu zmienia się stan na pinie mikrokontrolera i tranzystor przestaje przewodzić, co powoduje zatrzymanie wentylatora.

Całość układu zasilana jest napięciem 14V, które podawane jest na stabilizator napięcia 7812 (brak go na schemacie), z którego poprzez MOSFET IRL540 zasilany jest wentylator oraz drugi stabilizator 7805, z którego zasilana jest atmega.

Jak widać konstrukcja i działanie układu jest bardzo proste 🙂

Sterownik pracy wentylatora Część wizualna
Sterownik pracy wentylatora. Część wizualna.
Część wykonawcza PCB od strony elementów
Sterownik pracy wentylatora. PCB od strony elementów.
Część wykonawcza  Widok od strony druku
Część wykonawcza sterownika pracy wentylatora – Widok od strony druku
Część wizualna Widok od strony elementów
Część wizualna sterownika pracy wentylatora – Widok od strony elementów
Część wizualna Widok od strony druku
Część wizualna sterownika pracy wentylatora – Widok od strony druku
Schemat wyświetlacza
Schemat wyświetlacza
Schemat sterownika pracy wentylatora
Schemat sterownika pracy wentylatora

Część programowa sterownika pracy wentylatora

Program dla mikrokontrolera Atmega powstał z wykorzystaniem biblioteki Arduino w języku C++, w środowisku PlatformIO Atom. Całość napisana została w parciu o programowanie obiektowe.

Tak wiem, że w tym przypadku jest to trochę przerost formy nad treścią ale pozwala to na dalszą rozbudowę programu bez zmiany napisanego już kodu, oraz poprawia czytelność tego kodu.

Kod skompilowany został pod mikrokontroler Atmega168 w środowisku Linux Mint19.

Sterownik pracy wentylatora, pracujący z zasilaczem warsztatowym
Sterownik pracy wentylatora, pracujący z zasilaczem warsztatowym

Wykaz użytych elementów

Płytka wyświetlacza

DIS1, DIS2, DIS3, DIS4 – Wyświetlacz 7seg HD-H101
R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33 – Rezystor 10k
T1, T2, T3, T4 – Tranzystor BC327

Płytka sterownika

C1, C2 – Kondensator 22pF
C4, C5, C6 – Kondensator 100nF
C7 – Kondensator 22uF
D1, D2 – Dioda 1N4148
IC1 – ATMEGA168
IC2, IC3, IC4, IC5 – Rejestr przesuwny 74HC595
IC7 – Stabilizator 7805 do zasilenia atmegi + 7812 (nie ma na schemacie) do zasilenia wentylatora
Quartz – 16Mz
Q3 – Tranzystor MOSFET IRL540
R1, R34 – Rezystor 10k
R35 – Rezystor 4k7
SP1 – BUZZER
U$1 – Czujnik temperatury DS18B20
X1, X2 – Złącze AK500/2

Poniżej zamieszczam skompilowany plik .HEX jak i kod źródłowy do samodzielnej kompilacji, przebudowy, rozbudowy itp.

Wszelkie uwagi, propozycje do układu i wsadu oraz pytania proszę zgłaszać w komentarzach do niniejszego artykułu.

Paczka do pobrania z oprogramowaniem .HEX i kodami źródłowymi oraz schematami i projektem płytek w Eagle.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *