Wentylatory używane do chłodzenia elektroniki występują w dwóch postaciach. Niektóre są miniaturowe, są wysyłane bezpośrednio do chłodzonych elementów, inne są większe, przepuszczają powietrze przez całą przestrzeń obudowy. Najlepiej jest, gdy oba typy wentylatorów są używane razem. Często fani drugiego typu stale „omłotują” z pełną mocą, nawet jeśli nie jest to konieczne. Z tego powodu łożysko zużywa się szybciej, a zbyt duży hałas przeszkadza użytkownikowi. Najprostszy termostat kontaktowy może włączać i wyłączać wentylator, podczas gdy zasoby łożyska są zużywane tylko podczas pracy silnika, ale gwałtownie pojawiający się i zanikający hałas może być jeszcze bardziej irytujący. Bardziej wyrafinowany termostat - na przykład zaproponowany przez autora Instructables pod pseudonimem AntoBesline - kontroluje częstotliwość obrotów silnika wentylatora za pomocą PWM i utrzymuje go niezbędnym i wystarczającym do osiągnięcia ustawionej temperatury. Wskazane jest przepuszczanie powietrza przez przestrzeń obudowy od dołu do góry i umieszczenie czujnika temperatury od góry. Możesz także zainstalować filtry, aby zapobiec dostawaniu się pyłu do obudowy, ale zmniejszą one wydajność.
Czujnik temperatury i wilgotności typu DHT11 nadaje się tylko do termostatu sterującego wentylatorem drugiego typu, ponieważ mierzy temperaturę powietrza, a nie jakiejkolwiek powierzchni. Jego wsparcie zapewniają dwie biblioteki tutaj i tutaj. Jeśli musisz wyposażyć wentylator pierwszego typu w termostat, będziesz musiał użyć innego czujnika, który mierzy temperaturę powierzchni chłodzonego elementu. Program będzie musiał zostać ponownie wykonany, a inne będą wymagane, ponieważ czujnik może różnić się zarówno interfejsem, jak i strukturą przesyłanych do niego danych.
Korzystając z poniższej ilustracji, kreator pokazuje, czym jest PWM, większość czytelników już to wie. Ponieważ tranzystor wyjściowy jest zawsze całkowicie zamknięty lub całkowicie otwarty, zawsze przypisuje się mu bardzo niską moc. Jak wiadomo, moc jest równa iloczynowi prądu i napięcia, a tutaj, gdy tranzystor jest zamknięty, prąd jest bardzo mały, a po otwarciu spadek napięcia na nim jest niewielki. Jeden z dwóch czynników jest zawsze mały, co oznacza, że ich produkt jest również mały. Prawie cała moc w sterowniku PWM trafia do obciążenia, a nie do tranzystora.
Mistrz sporządza schemat termostatu:
Arduino jest zasilany z 5-woltowego źródła, wentylatora - z 12-woltowego.Jeśli używasz wentylatora 5 woltów, możesz zrobić z jednym źródłem o wystarczającej obciążalności, zasilając Arduino przez prosty filtr LC. Dioda podłączona równolegle z wentylatorem w przeciwnym kierunku jest potrzebna, jeśli silnik jest silnikiem kolektorowym (jak w niektórych nowoczesnych wentylatorach USB). W przypadku korzystania z wentylatora komputerowego z czujnikiem Halla i elektronicznym sterowaniem uzwojeniem ta dioda jest opcjonalna.
Tekst programu skompilowany przez kreatora jest dość krótki, podany poniżej:
#include „DHT.h”
# zdefiniować dht_apin A1
#include
LCD ciekłokrystaliczny (7,6,5,4,3,2);
DHT dht (dht_apin, DHT11);
int fan = 11;
int led = 8;
int temp;
int tempMin = 30;
int tempMax = 60;
int fanSpeed;
int fanLCD;
void setup ()
{
pinMode (wentylator, WYJŚCIE);
pinMode (dioda LED, WYJŚCIE);
lcd.begin (16, 2);
dht.begin ();
lcd.print („Na podstawie temperatury pokojowej”);
lcd.setCursor (0, 1);
lcd.print („Prędkość wentylatora Ctrl”);
opóźnienie (3000);
lcd.clear ();
}
void loop ()
{
pływak temperat;
temperatura = dht.readTemperature ();
temp = temperat; // zapisz wartość temperatury w zmiennej temp
Serial.print (temp);
if (temp = tempMin) && (temp <= tempMax)) // jeśli temperatura jest wyższa niż temperatura minimalna
{
fanSpeed = temp; // map (temp, tempMin, tempMax, 0, 100); // rzeczywista prędkość wentylatora // mapa (temp, tempMin, tempMax, 32, 255);
fanSpeed = 1,5 * fanSpeed;
fanLCD = mapa (temp, tempMin, tempMax, 0, 100); // prędkość wentylatora do wyświetlenia na LCD100
analogWrite (wentylator, prędkość wentylatora); // obróć wentylator z prędkością wentylatora
}
if (temp> tempMax) // jeśli temp jest wyższy niż tempMax
{
digitalWrite (led, HIGH); // włącz led
}
else // else kolej led
{
digitalWrite (led, LOW);
}
lcd.print („TEMP:”);
lcd.print (temp); // wyświetla temperaturę
lcd.print („C”);
lcd.setCursor (0,1); // przesuń kursor do następnej linii
lcd.print („FANS:”);
lcd.print (fanLCD); // wyświetla prędkość wentylatora
lcd.print („%”);
opóźnienie (200);
lcd.clear ();
}
Szkic można również pobrać jako plik tutaj. Nieznane rozszerzenie będzie musiało zostać zmienione na ino.
Poniższe zdjęcia pokazują montaż prototypowego urządzenia na płycie typu deska do krojenia:
Po zmontowaniu prototypu mistrz go testuje. Temperatura jest wyświetlana w stopniach Celsjusza, rzeczywista wartość napięcia na wentylatorze - jako procent wartości maksymalnej.
Pozostaje złożyć obwód przez lutowanie i uczynić z niego termostat domowej robotyktóre on ochłodzi.