Jak kontrolować prędkość wentylatora za pomocą Arduino Uno

Jak kontrolować prędkość wentylatora za pomocą Arduino Uno
Płyty Arduino dostarczyły użytkownikom platformę, której można użyć do wykonywania różnych zadań poprzez interfejs wielu urządzeń wyjściowych wejściowych. Podobnie Arduino zapewnia również platformę edukacyjną dla początkujących, aby uczyć się i zrozumieć działanie różnych obwodów. Korzystając z tablic Arduino, możemy tworzyć obwody różnych urządzeń, które są powszechnie używane w naszym codziennym życiu. Stworzyliśmy więc wentylator kontrolowany temperaturą za pomocą Arduino Uno Board.

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:

  • Arduino Uno
  • Łączenie przewodów
  • Tablica chleba
  • Czujnik temperatury (LM35)
  • Fan DC
  • Wyświetlacz ciekłokrystaliczny (LCD)
  • Potencjometr

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.