Tworzenie wentylatora kontrolowanego temperaturą
Zwykle, aby zmienić prędkość wentylatora, istnieje wyznaczony pokrętło do kontrolowania prędkości wentylatora i można go regulować ręcznie. Możemy jednak zwiększyć prędkość wentylatora zależnego od temperatury obszaru. Tak więc prędkość wentylatora automatycznie się dostosuje w miarę zmiany temperatury tego obszaru. Komponenty, których użyliśmy do tworzenia wentylatora kontrolowanego temperaturą, to:
Tak więc schemat obwodu kontrolowania prędkości wentylatora w odniesieniu do temperatury jest podany jako:
Zespół sprzętu do tworzenia wentylatora kontrolowanego temperaturą za pomocą Arduino Uno
Zdjęcie opublikowane poniżej pokazuje połączenia każdego komponentu połączone z Arduino Uno.
Różowe przewody łączą LCD z Arduino UNO, a szary drut łączy potencjometr z LCD, aby kontrolować jasność LCD.
Ponadto podłączyliśmy czujnik temperatury bezpośrednio na szpilkach Arduino, aby uniknąć zniekształceń w wyjściu czujnika. Aby podłączyć komponenty z zasilaczem, którego użyliśmy 5 woltów i gruntu Arduino.
Kod Arduino dla wentylatora kontrolowanego temperaturą
Kod Arduino opracowany do kontrolowania wentylatora na podstawie wartości temperatury podano poniżej:
#include // biblioteka dla LCD
Liquidcrystal LCD (9,8,5,4,3,2); // szpilki Arduino dla LCD
int vcc = a0; // A0 Zasilanie pinów LM35
int vout = a1; // Pin A1 dla wyjścia LM35
int gnd = a2; // Pin A2 dla wyjścia LM35
wartość int; // zmienna używana do przechowywania wartości pochodzących z czujnika
int fan = 11; // PIN, w którym wentylator jest podłączony do Arduino
int tempmin = 86; // temperatura, aby uruchomić wentylator
int tempmax = 127; // maksymalna temperatura
int fanspeed; // zmienna dla silnej prędkości wentylatora
int fanlcd; // zmienna do wyświetlania procentowej prędkości wentylatora na LCD
int tempc; // temperatura w stopniu Celsjusza
int tempf; // temperatura we fahrenheicie
void setup ()
// Przypisanie trybów do przypisanych pinów Arduino
pinmode (wentylator, wyjście);
pinmode (VCC, wyjściowe);
pinmode (vout, input);
Pinmode (GND, wyjściowe);
// Przypisanie stanów do VCC i pinów naziemnych używanych do LM35
DigitalWrite (VCC, High);
DigitalWrite (GND, niski);
LCD.Rozpocznij (16,2); // inicjowanie wymiarów LCD
Seryjny.Rozpocznij (9600); // inicjowanie komunikacji szeregowej
LCD.setCursor (0, 0); // Ustawienie miejsca dla danych na LCD
LCD.print („arduino fan”); // dane do wyświetlenia
LCD.setCursor (0, 1); // Ustawienie miejsca dla danych na LCD
LCD.drukuj („sterowanie prędkością”); // dane do wyświetlenia
opóźnienie (3000); // czas, dla którego dane będą wyświetlane
Void Loop ()
LCD.clear (); // usuwanie LCD
tempf = temperatura (); /*Wzywa funkcję temperatury, aby uzyskać wartość temperatury w Fahrenheita*/
Seryjny.druk (tempf); // wyświetlanie temperatury w Fahrenheicie
if (tempf = tempmin) && (tempf <= tempMax)) /* if temperature is higher than minimum temp and less than the maximum temperature then */
fanspeed = tempf; // Podaj prędkość wentylatora wartość TEMPF
fanlcd = map (tempf, tempmin, tempmax, 0, 100); /*Skalowanie prędkości wentylatora, aby wyświetlić go na LCD za pomocą funkcji mapy od 0 do 100*/
Analogwrite (fan, fanspeed); // przypisując wartość do pinu wentylatora
LCD.druk („Temperatura:”); // Wyświetlanie danych
LCD.druk (tempf); // Wyświetl temperaturę w Fahrenheicie
LCD.druk („f”);
LCD.setCursor (0,1); // definiowanie miejsca następnych danych, które należy wyświetlić
LCD.Drukuj („Prędkość wentylatora:”); // Wyświetlanie danych
LCD.print (fanlcd); // Wyświetl prędkość wentylatora
LCD.drukuj („%”); // Wyświetlanie danych
opóźnienie (200); // czas, dla którego dane będą wyświetlane na LCD
LCD.clear (); // usuwanie LCD
int temperatura () // nazwa funkcji
wartość = analogread (vout); // odczyt wartości czujnika
tempc = wartość*0.48828125; // przekształcanie wartości czujnika na stopień Celsjusza
return TEMPF = TEMPC*9/5+32; // Przekształcanie wartości w Fahrenheicie
Aby zaprojektować wentylator kontrolowany temperaturą, skompilowaliśmy kod Arduino w taki sposób, że najpierw zdefiniowaliśmy bibliotekę LCD i przypisaliśmy szpilki Arduino dla LCD. Następnie zdefiniowaliśmy zmienne i odpowiednie szpilki Arduino dla czujnika temperatury i wentylatora, aby połączyć je z Arduino Uno.
Ponieważ przyjmujemy temperaturę w Fahrenheicie, zdefiniowaliśmy również minimalne i maksymalne limity temperatury od 86 Fahrenheita do 127 Fahrenheita.
Najpierw w funkcji konfiguracji przypisaliśmy tryby pinów do pinów Arduino zdefiniowanych wcześniej, a następnie do VCC i podkładu czujnika temperatury. Następnie wymiary LCD są inicjowane, a nazwa projektu jest wyświetlana na LCD.
W funkcji pętli najpierw wywoływana jest funkcja temperatury, aby uzyskać wartość temperatury, a następnie jeśli stan jest używany do sprawdzenia, czy temperatura jest mniejsza niż minimalna temperatura. W takim przypadku wentylator nie obróci się, wówczas istnieje inny warunek, który używa, działający i sprawdza, czy temperatura jest między danym zakresem temperatury.
Użyliśmy Funkcja mapy Aby skalować prędkość wentylatora z wartościami temperatury w zakresie od 0 do 100, a następnie wartość ta jest podawana do pinu Arduino wentylatora za pomocą anogwrite () funkcja i sprawia, że wentylator obraca się z odpowiednią prędkością.
Następnie dane dotyczące temperatury i prędkości wentylatora są wyświetlane na LCD za pomocą LCD.wydrukować() funkcjonować. Ponadto, aby przekonwertować wartości czujnika na stopień Celsjusza, użyliśmy skali 0.01 V Wzrost napięcia na stopień Celsjjusza.
Tak więc, jeśli napięcie wynosi 1 wolt, wówczas temperatura wyniesie 100 stopni, więc tutaj dla czujnika mamy maksymalnie 5 woltów, więc temperatura wyniesie 500 na 5 woltów. Jednak maksymalna wartość analogowa dla czujnika wynosi 1023, co oznacza 5 woltów i dla tego podzieliliśmy maksymalną temperaturę przez maksymalną wartość analogową. Przekształciliśmy również temperaturę w Fahrenheicie, a koncepcja konwersji może być jeszcze wyraźna z tabeli poniżej:
Zmiana na stopień Celsjusz = (maksymalna temperatura/maksymalna wartość analogowa);
0.488 = (500/1023);
Temperatura w stopniach = wartość analogowa*0.488;
Temperatura w Fahrenheicie = temperatura w stopniach*9/5+32;
Symulacja
Tutaj, w tym projekcie, stworzyliśmy symulację w oprogramowaniu Porteous. W symulacji opublikowanej poniżej widzimy, że ręcznie zwiększamy temperaturę. Tak więc prędkość wentylatora wciąż rośnie, gdy zwiększamy temperaturę:
Wniosek
Rady Arduino można wykorzystać do tworzenia różnych projektów zrób to sam, co daje początkującym lepsze zrozumienie pracy obwodów. Podobnie, aby zrozumieć działanie urządzeń, możemy również tworzyć ich obwody w bardzo łatwy sposób. W tym przewodniku stworzyliśmy automatyczny wentylator, który zależy od wartości czujnika temperatury. Wentylatory kontrolowane temperaturą są najczęściej stosowane w urządzeniach, które wymagają odpowiedniego chłodzenia w wysokich temperaturach, a najczęstszym przykładem są komputery stacjonarne lub laptopy.