Ventiliatoriai, naudojami aušinti elektroniką, būna dviejų formų. Kai kurie yra miniatiūriniai, jie siunčiami tiesiai į atvėsintus komponentus, kiti yra didesni, jie praleidžia orą per visą korpuso erdvę. Geriausia, kai abu ventiliatorių tipai yra naudojami kartu. Dažnai antrojo tipo gerbėjai nuolat „klesta“ visu pajėgumu, net jei tai nėra būtina. Nuo to guolis susidėvi greičiau, o per didelis triukšmas trukdo vartotojui. Paprasčiausias kontaktinis termostatas gali įjungti ir išjungti ventiliatorių, o guolio ištekliai sunaudojami tik tada, kai variklis veikia, tačiau staigiai atsirandantis ir išnykstantis triukšmas gali dar labiau erzinti. Sudėtingesnis termostatas, kurį, pavyzdžiui, pasiūlė autorius „Instructables“ slapyvardžiu AntoBesline, kontroliuoja ventiliatoriaus variklio sukimosi dažnį su PWM ir palaiko jį būtiną bei pakankamą nustatytai temperatūrai pasiekti. Patartina praleisti orą per korpuso erdvę iš apačios į viršų, o temperatūros jutiklį pastatyti iš viršaus. Taip pat galite įdiegti filtrus, kad dulkės nepatektų į gaubtą, tačiau jie sumažins našumą.
Temperatūros ir drėgmės jutiklis, toks kaip DHT11, yra tinkamas tik termostatui, valdančiam antrojo tipo ventiliatorių, nes jis matuoja oro, o ne bet kokio paviršiaus, temperatūrą. Ją palaiko dvi išdėstytos bibliotekos čia ir čia. Jei pirmojo tipo ventiliatorius turite aprūpinti termostatu, turėsite naudoti kitą jutiklį, kuris matuoja aušinamo komponento paviršiaus temperatūrą. Tada programa turės būti perdaryta, o reikės kitų, nes jutiklis gali skirtis tiek sąsaja, tiek jai perduodamų duomenų struktūra.
Naudodamas šią iliustraciją vedlys parodo, kas yra PWM, dauguma skaitytojų tai jau žino. Dėl to, kad išėjimo tranzistorius visada yra arba visiškai uždarytas, arba visiškai atidarytas, jam visada skiriama labai maža galia. Kaip žinote, galia yra lygi srovės ir įtampos sandaugai, o čia, uždarius tranzistorių, srovė yra labai maža, o atidarius - įtampos kritimas per ją yra mažas. Vienas iš dviejų veiksnių visada yra mažas, o tai reiškia, kad jų produktas taip pat yra mažas. Beveik visa PWM valdiklio galia eina į apkrovą, o ne į tranzistorių.
Meistras parengia termostato schemą:
Arduino jį maitina 5 voltų šaltinis, ventiliatorių - iš 12 voltų.Jei naudojate 5 voltų ventiliatorių, galite tai padaryti su vienu šaltiniu, turinčiu pakankamą krovumą, tiekdami Arduino per paprastą LC filtrą. Diodas, sujungtas lygiagrečiai su ventiliatoriumi priešinga kryptimi, reikalingas, jei variklis yra kolektorinis variklis (kaip ir kai kuriuose šiuolaikiniuose USB ventiliatoriuose). Kai naudojate kompiuterio ventiliatorių su „Hall“ jutikliu ir elektroniniu apvijų valdymu, šis diodas yra neprivalomas.
Vedlio sudarytos programos tekstas yra gana trumpas, jis pateiktas žemiau:
# įtraukti „DHT.h“
#define dht_apin A1
# įtraukti
Skystųjų kristalų LCD (7,6,5,4,3,2);
DHT dht (dht_apin, DHT11);
vidinis ventiliatorius = 11;
int led = 8;
int temp;
int tempMin = 30;
int tempMax = 60;
int fanSpeed;
int fanLCD;
negaliojanti sąranka ()
{
pinMode (ventiliatorius, IŠĖJIMAS);
pinMode (led, OUTPUT);
lcd.begin (16, 2);
dht.begin ();
lcd.print („Remiantis kambario temperatūra“);
lcd.setCursor (0, 1);
lcd.print („Ventiliatoriaus greitis Ctrl“);
vėlavimas (3000);
lcd.clear ();
}
tuščia kilpa ()
{
plūdės temperatūra;
temperatūra = dht.readTemperature ();
temp = temperatūra; // saugokite temperatūros vertę kintamajame
Serial.print (temp);
if (temp = tempMin) && (temp <= tempMax)) // jei temperatūra aukštesnė už minimalią temp
{
fanSpeed = temp; // žemėlapis (temp, tempMin, tempMax, 0, 100); // tikrasis ventiliatoriaus greitis // žemėlapis (temp, tempMin, tempMax, 32, 255);
fanSpeed = 1,5 * fanSpeed;
fanLCD = žemėlapis (temp, tempMin, tempMax, 0, 100); // ventiliatoriaus greitis rodomas LCD100
analoWrite (ventiliatorius, ventiliatoriaus greitis); // sukite ventiliatorių „fanSpeed“ greičiu
}
if (temp> tempMax) // jei temp yra didesnė nei tempMax
{
„digitalWrite“ (led, HIGH); // įjungti led
}
else // else led posūkis
{
„digitalWrite“ (led, LOW);
}
lcd.print („TEMP:“);
lcd.print (temp); // rodoma temperatūra
lcd.print („C“);
lcd.setCursor (0,1); // perkelkite žymeklį į kitą eilutę
lcd.print („FANS:“);
lcd.print (fanLCD); // rodykite ventiliatoriaus greitį
lcd.print („%“);
vėlavimas (200);
lcd.clear ();
}
Taip pat eskizą galima atsisiųsti kaip failą čia. Nežinomas plėtinys turės būti pakeistas į ino.
Šiose nuotraukose parodytas įrenginio prototipo surinkimas ant lentos tipo plokštės:
Surinkęs prototipą, meistras jį išbando. Temperatūra rodoma laipsniais Celsijaus, o tikroji ventiliatoriaus įtampos vertė - procentais nuo maksimalios vertės.
Lieka surinkti grandinę litavimo būdu ir padaryti ją termostatu naminiskurį jis atvės.