» electronică » Arduino »Termostat pentru ventilator

Termostat pentru ventilator



Ventilatoarele folosite la răcirea electronicelor au două forme. Unele sunt în miniatură, sunt trimise direct la componentele răcite, altele sunt mai mari, duc aer prin întregul spațiu al carcasei. Este cel mai bine atunci când ambele tipuri de ventilatoare sunt folosite împreună. Adesea, fanii celui de-al doilea tip se „trec” în mod constant la puterea maximă, chiar dacă acest lucru nu este necesar. Din acest motiv, rulmentul se uzează mai repede, iar zgomotul interferează prea mult cu utilizatorul. Cel mai simplu termostat de contact poate porni și opri ventilatorul, în timp ce resursa rulmentului este consumată numai atunci când motorul funcționează, dar zgomotul care apare brusc și dispare poate fi și mai enervant. Un termostat mai sofisticat - de exemplu, propus de autor Instructables sub porecla AntoBesline - controlează frecvența de rotație a motorului ventilatorului cu un PWM și îl menține necesar și suficient pentru a atinge temperatura setată. Este recomandabil să conduceți aerul prin spațiul carcasei de jos în sus și să plasați senzorul de temperatură de sus. Puteți instala, de asemenea, filtre pentru a preveni pătrunderea prafului în incintă, dar acestea vor reduce performanța.

Un senzor de temperatură și umiditate precum DHT11 este potrivit doar pentru termostatul care controlează un al doilea fan, deoarece măsoară temperatura aerului și nu a oricărei suprafețe. Suportul său este oferit de două biblioteci aici și aici. Dacă trebuie să dotați un ventilator de primul tip cu un termostat, va trebui să utilizați un alt senzor care măsoară temperatura suprafeței componentei care trebuie răcită. Programul va trebui apoi redirecționat, iar altele vor fi necesare, deoarece senzorul poate diferi atât în ​​interfață, cât și în structura datelor transmise acestuia.

Utilizând următoarea ilustrație, expertul arată ce este PWM, majoritatea cititorilor știu deja acest lucru. Datorită faptului că tranzistorul de ieșire este întotdeauna fie complet închis, fie complet deschis, îi este alocat întotdeauna o putere foarte mică. După cum știți, puterea este egală cu produsul curentului și tensiunii, iar aici, când tranzistorul este închis, curentul este foarte mic, iar atunci când este deschis, căderea de tensiune peste el este mică. Unul dintre cei doi factori este întotdeauna mic, ceea ce înseamnă că produsul lor este de asemenea mic. Aproape toată puterea din controlerul PWM merge la sarcină, nu la tranzistor.

Termostat pentru ventilator


Maestrul întocmește o diagramă de termostat:



Arduino este alimentat de o sursă de 5 volți, ventilatorul - de la 12 volți.Dacă utilizați un ventilator de 5 volți, vă puteți descurca cu o singură sursă cu capacitate de încărcare suficientă, alimentând Arduino printr-un simplu filtru LC. Este necesară o diodă conectată în paralel cu ventilatorul în direcția opusă dacă motorul este un motor colector (ca în unele ventilatoare USB moderne). Când utilizați un ventilator de computer cu senzor Hall și control electronic de înfășurare, această diodă este opțională.

Textul programului compilat de vrăjitor este destul de scurt, este prezentat mai jos:

#includeți „DHT.h”
#define dht_apin A1
#include

Cristal lichid lcd (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 (ventilator, OUTPUT);
   pinMode (led, OUTPUT);
   lcd.begin (16, 2);
   dht.begin ();
   lcd.print ("Bazat pe temperatura camerei");
   lcd.setCursor (0, 1);
   lcd.print ("Ctrl speed speed");
   întârziere (3000);
   lcd.clear ();
}
nul buclă ()
{
    float temperat;
    temperature = dht.readTemperature ();
    temp = temperat; // stocați valoarea temperaturii în variabila temp
   Serial.print (temp);
   if (temp  = tempMin) && (temp <= tempMax)) // dacă temperatura este mai mare decât temperatura minimă
   {
       fanSpeed ​​= temp; // hartă (temp, tempMin, tempMax, 0, 100); // viteza reală a ventilatorului // hartă (temp, tempMin, tempMax, 32, 255);
       fanSpeed ​​= 1,5 * fanSpeed;
       fanLCD = hartă (temp, tempMin, tempMax, 0, 100); // viteza ventilatorului de afișat pe LCD100
       analogWrite (fan, fanSpeed); // rotiți ventilatorul la viteza de viteză a vitezei
   }
      if (temp> tempMax) // dacă temp este mai mare decât tempMax
     {
     digitalWrite (led, HIGH); // porni led
     }
   altceva // altfel turnul de led
     {
     digitalWrite (led, LOW);
     }
      lcd.print ("TEMP:");
   lcd.print (temp); // afiseaza temperatura
   lcd.print ("C");
   lcd.setCursor (0,1); // mutați cursorul pe linia următoare
   lcd.print ("FANS:");
   lcd.print (fanLCD); // afiseaza viteza ventilatorului
   lcd.print ("%");
   întârziere (200);
   lcd.clear ();
 }


De asemenea, o schiță poate fi descărcată ca fișier aici. Extensia necunoscută va trebui să fie schimbată în ino.

Următoarele fotografii arată asamblarea dispozitivului prototip pe o placă de tip panou:









După ce a asamblat un prototip, maestrul îl testează. Temperatura este afișată în grade Celsius, valoarea tensiunii reale a ventilatorului - ca procent din maxim.







Rămâne să asamblați circuitul prin lipire și să faceți termostatul să facă parte din acesta de casăpe care îl va răci.
8
8
6

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
10 comentariu
Autorul
Ei bine, la capătul inferior al intervalului, se poate implementa histereză. După modificarea ușoară a programului. Și în restul intervalului, unde ventilatorul încă se rotește, doar viteza se schimbă, este posibilă fără histereză.
Citat: tormozedison
Istereza este necesară cu o încărcare puternică on-off. Cu o ajustare lină a PWM, ca aici, este inutil.

Nu sunt de acord, este nevoie de histerezis tocmai pe logica on / off. De exemplu, un ventilator, chiar și cu cea mai mică viteză, se aprinde la> 30 de grade și se oprește la <30. Dar dacă vă imaginați că temperatura este în jur de 30 de grade, ventilatorul se aprinde la viteze mici, după care temperatura scade imediat la 29, ventilatorul se oprește. Pe scurt, se dovedește „zguduirea” ventilatorului pornit / oprit. Doar histereză economisește de la aceasta, de exemplu, porniți când temperatura este> 30 și opriți când <25. Dacă acest lucru nu se face, atunci nu are niciun punct în Arduino, deoarece există KY-028 și analogi care vă permit să utilizați o creștere lină a vitezei și doar să porniți / opriți, iar doar absența histerezei nu face ca aceste module să fie ideale.
Autorul
Istereza este necesară cu o încărcare puternică on-off. Cu o ajustare lină a PWM, ca aici, este inutil.

Știu despre KU208 de la sfârșitul anilor optzeci. Am aflat despre KY-028 de la tine, mulțumesc pentru sfat.

Nu este necesar să conectați un afișaj la acest termostat. În loc de UNO, luați o clonă ieftină, cu aceleași caracteristici. Și va fi justificat economic.
2Dem nu insultați pe aceia (și știți că sunt PROFI, în electronică, pur și simplu nu doriți să o admiteți).
M-am hotărât să resetez toate neplăcerile de pe kamens dvs. la produsele mele de casă. Astăzi este ziua și norocul meu norocos.
Încep să-ți anulez neplăcerile ... Și poți să-ți retragi insultele?
Citat: Ivan_Pokhmelev
Citat: R555
Nici măcar nu scrie corect numele KU208.
Dar el scrie corect sensorul de temperatură KY-028. Ce legătură are KU208 cu asta?

În primul rând, mulțumesc că am citat mesajul, am fost foarte amuzant să văd că „know-it-all” nu știe astfel de lucruri de bază. În al doilea rând, am dat ca exemplu KY-028, merită să adăugăm un întrerupător de alimentare și să obținem un termostat mai eficient. Și eficient în toate sensurile. Dacă nu mă înșel, nu există nici o histereză la temperatura minimă. Anume, acest lucru ar trebui făcut în primul rând, în caz contrar, nu există niciun motiv pentru a folosi Arduino deloc. Utilizarea ineficientă a materialelor, aproximativ vorbind, în limba chineză Nano cu memorie de 16 k, controlul ventilației în camera cazanului se bazează pe temperatură și umiditate, protecție la scurgeri în toată casa (6 senzori), circulație inteligentă a apei calde, spălarea membranei de osmoză și afișarea întregii aceste informații sunt afișate 1602. Și folosirea lui Uno pentru a porni ventilatorul este rațională doar dacă este o lecție pentru începători, dar această „casă” ca o lecție deloc, există lecții mult mai bune. Atunci care este sensul ei?
De ce inutil? Desigur, acesta nu este un produs, ci un aspect, există erori în schemă, dar ideea are dreptul de a exista. Și despre ce ecran vorbești?
Nu aș fi atât de categoric: dispozitivul, pe lângă regulamentul în sine, afișează și temperatura, care poate fi utilă. Numele este greșit, nu este un termostat, ci schemă controlul vitezei ventilatorului dependent de temperatură.
Citat: R555
Nici măcar nu scrie corect numele KU208.
Dar el scrie corect sensorul de temperatură KY-028. Ce legătură are KU208 cu asta?
De exemplu, pentru KY-028 nu a auzit? Este o prostie să folosești UNO pentru o ambarcațiune atât de inutilă. Ecranul nu este deloc necesar pentru o astfel de implementare. Toate aceste gunoaie sunt ca prima și cea mai importantă muncă nereușită a unui școlar, deoarece tot ce s-ar putea face greșit este exact ceea ce s-a făcut.
Un alt microscop-unghie-ciocan! Nea

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...