» Elektronika » Arduino »Termostat do wentylatora

Termostat do wentylatora



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.

Termostat do wentylatora


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.
8
8
6

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij
10 komentarze
Autor
Cóż, w dolnym końcu zakresu można zastosować histerezę. Po nieznacznej modyfikacji programu. A w pozostałej części zakresu, gdzie wentylator nadal się obraca, zmienia się tylko prędkość, jest to możliwe bez histerezy.
Cytat: Tormozedison
Histereza jest potrzebna przy ostrym obciążeniu on-off. Dzięki płynnej regulacji PWM, jak tutaj, jest bezużyteczny.

Nie zgadzam się, histereza jest potrzebna właśnie w logice włączania / wyłączania. Na przykład wentylator, nawet przy najniższej prędkości, włącza się przy> 30 stopniach, a wyłącza przy <30. Ale jeśli wyobrażasz sobie, że temperatura wynosi około 30 stopni, wentylator włącza się przy niskich prędkościach, po czym temperatura natychmiast spada do 29, wentylator zatrzymuje się. Krótko mówiąc, okazuje się, że „szarpanie” włącza / wyłącza wentylator. Tylko histereza oszczędza od tego, na przykład włącza się, gdy temperatura wynosi> 30, i wyłącza się, gdy <25. Jeśli nie zostanie to zrobione, w Arduino nie ma sensu, ponieważ istnieją KY-028 i analogi, które pozwalają na płynne zwiększenie prędkości i po prostu włączanie / wyłączanie, a tylko brak histerezy nie czyni tych modułów idealnymi.
Autor
Histereza jest potrzebna przy ostrym obciążeniu on-off. Dzięki płynnej regulacji PWM, jak tutaj, jest bezużyteczny.

Wiem o KU208 z końca lat osiemdziesiątych. Dowiedziałem się od ciebie o KY-028, dzięki za wskazówkę.

Podłączenie wyświetlacza do tego termostatu nie jest konieczne. Zamiast UNO weź tani klon z tymi samymi funkcjami. I będzie to ekonomicznie uzasadnione.
2Dem nie obrażaj ich (i wiesz, że jestem PROFI, w elektronice, po prostu nie chcesz tego przyznać).
Postanowiłem zresetować wszystkie niechęci na twoich kamensach do moich domowych produktów. Dzisiaj jest mój szczęśliwy dzień i wakacje.
Zaczynam wyrównywać twoje niechęci ... I czy możesz wycofać swoje obelgi?
Cytat: Ivan_Pokhmelev
Cytat: R555
Kretyn nawet nie przeliterował poprawnie nazwy KU208.
Ale poprawnie przeliterował nazwę czujnika temperatury KY-028. Co ma z tym wspólnego KU208?

Po pierwsze, dzięki za cytowanie wiadomości, bardzo zabawnie było mnie widzieć, że „wiem wszystko” nie zna tak podstawowych rzeczy. Po drugie podałem jako przykład KY-028, warto dodać wyłącznik zasilania i otrzymujemy bardziej wydajny termostat. I skuteczny pod każdym względem. Jeśli się nie mylę, nie ma również histerezy w minimalnej temperaturze. Mianowicie należy to zrobić przede wszystkim, w przeciwnym razie nie ma żadnego powodu, aby używać Arduino. Nieefektywne wykorzystanie materiałów, z grubsza mówiąc, w chińskim Nano z pamięcią 16k, kontrola wentylacji w kotłowni opiera się na temperaturze i wilgotności, ochronie przed wyciekiem w całym domu (6 czujników), inteligentnym obiegiem ciepłej wody użytkowej, płukaniem membrany osmozy i wyświetlaniem całości ta informacja jest wyświetlana 1602. I użycie Uno do uruchomienia wentylatora jest racjonalne tylko wtedy, gdy jest lekcją dla początkujących, ale ta „domowa” jak żadna lekcja w ogóle, są o wiele lepsze lekcje. Jakie to ma znaczenie?
Dlaczego bezużyteczne? Oczywiście nie jest to produkt, ale układ, w schemacie są błędy, ale pomysł ma prawo istnieć. A o jakim ekranie mówisz?
Nie byłbym tak kategoryczny: urządzenie, oprócz samej regulacji, wyświetla również temperaturę, co może być przydatne. Ale nazwa jest zła, to nie jest termostat, ale układ zależna od temperatury regulacja prędkości wentylatora.
Cytat: R555
Kretyn nawet nie przeliterował poprawnie nazwy KU208.
Ale poprawnie przeliterował nazwę czujnika temperatury KY-028. Co ma z tym wspólnego KU208?
Na przykład, dla KY-028 nie słyszałeś? Bez sensu jest używanie UNO do tak bezużytecznego statku. W takiej implementacji ekran wcale nie jest potrzebny. Wszystkie te śmieci są jak pierwsza i najważniejsza nieudana praca ucznia, ponieważ wszystko, co można zrobić źle, jest dokładnie tym, co zostało zrobione.
Kolejny młot do paznokci! nea

Radzimy przeczytać:

Podaj go do smartfona ...