De ventilatoren die de elektronica koelden, zijn er in twee vormen. Sommige zijn miniatuur, ze worden rechtstreeks naar de gekoelde componenten gestuurd, andere zijn groter, ze drijven lucht door de hele ruimte van de behuizing. Het is het beste als beide soorten ventilatoren samen worden gebruikt. Vaak zijn fans van het tweede type constant aan het "dorsen" op volle kracht, ook als dit niet nodig is. Hierdoor slijt het lager sneller en stoort te veel geluid de gebruiker. De eenvoudigste contactthermostaat kan de ventilator aan- en uitzetten, terwijl de lagerbron alleen wordt verbruikt als de motor draait, maar scherp optredend en verdwijnend geluid kan nog vervelender zijn. Een geavanceerdere thermostaat - bijvoorbeeld voorgesteld door de auteur Instructables onder de bijnaam AntoBesline - regelt de rotatiefrequentie van de ventilatormotor met een PWM en houdt deze nodig en voldoende om de ingestelde temperatuur te bereiken. Het is raadzaam om lucht van onder naar boven door de behuizingsruimte te blazen en de temperatuursensor van bovenaf te plaatsen. U kunt ook filters installeren om te voorkomen dat stof de behuizing binnendringt, maar ze zullen de prestaties verminderen.
Een temperatuur- en vochtigheidssensor van het type DHT11 is alleen geschikt voor de thermostaat die een tweede type ventilator aanstuurt, omdat deze de temperatuur van lucht meet en niet van een oppervlak. De ondersteuning wordt geboden door twee bibliotheken hier en hier. Als u een ventilator van het eerste type met een thermostaat moet uitrusten, moet u een andere sensor gebruiken die de oppervlaktetemperatuur van het te koelen onderdeel meet. Het programma moet dan opnieuw worden uitgevoerd en er zijn andere nodig, omdat de sensor kan verschillen in zowel de interface als de structuur van de gegevens die ernaar worden verzonden.
Met behulp van de volgende afbeelding laat de wizard zien wat PWM is, de meeste lezers weten dit al. Omdat de uitgangstransistor altijd ofwel volledig gesloten of volledig open is, wordt er altijd een zeer laag vermogen aan toegewezen. Zoals u weet, is het vermogen gelijk aan het product van stroom en spanning, en hier, wanneer de transistor gesloten is, is de stroom erg klein en wanneer geopend, is de spanningsval erover klein. Een van de twee factoren is altijd klein, wat betekent dat hun product ook klein is. Bijna al het vermogen in de PWM-controller gaat naar de belasting, niet naar de transistor.
De meester stelt een thermostaatschema op:
Arduino het wordt aangedreven door een 5-volt bron, de ventilator - van een 12-volt.Als je een 5-volt ventilator gebruikt, kun je het doen met één bron met voldoende laadvermogen, Arduino voeden via een eenvoudig LC-filter. Een diode die parallel met de ventilator in de tegenovergestelde richting is aangesloten, is nodig als de motor een collectormotor is (zoals bij sommige moderne USB-ventilatoren). Bij gebruik van een computerventilator met een Hall-sensor en elektronische wikkelregeling is deze diode optioneel.
De tekst van het door de wizard samengestelde programma is vrij kort, het wordt hieronder gegeven:
#inclusief "DHT.h"
#define dht_apin A1
#include
LCD-scherm met vloeibare kristallen (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;
ongeldige setup ()
{
pinMode (fan, OUTPUT);
pinMode (led, OUTPUT);
lcd.begin (16, 2);
dht.begin ();
lcd.print ("Room Temp Based");
lcd.setCursor (0, 1);
lcd.print ("Fan speed Ctrl");
vertraging (3000);
lcd.clear ();
}
leegte lus ()
{
zwevende temperatuur;
temperatuur = dht.readTemperature ();
temp = temperatuur; // sla de temperatuurwaarde op in temp variabele
Serial.print (temp);
if (temp = tempMin) && (temp <= tempMax)) // als de temperatuur hoger is dan de minimum temp
{
fanSpeed = temp; // kaart (temp, tempMin, tempMax, 0, 100); // de werkelijke snelheid van de ventilator // map (temp, tempMin, tempMax, 32, 255);
fanSpeed = 1,5 * fanSpeed;
fanLCD = kaart (temp, tempMin, tempMax, 0, 100); // snelheid van de ventilator om weer te geven op LCD100
analogWrite (fan, fanSpeed); // draai de ventilator op de snelheid van de ventilatorsnelheid
}
if (temp> tempMax) // als temp hoger is dan tempMax
{
digitalWrite (led, HIGH); // zet led aan
}
anders // anders draai van led
{
digitalWrite (led, LOW);
}
lcd.print ("TEMP:");
lcd.print (temp); // toon de temperatuur
lcd.print ("C");
lcd.setCursor (0,1); // verplaats de cursor naar de volgende regel
lcd.print ("FANS:");
lcd.print (fanLCD); // toon de ventilatorsnelheid
lcd.print ("%");
vertraging (200);
lcd.clear ();
}
Ook kan een schets als bestand worden gedownload hier. De onbekende extensie moet worden gewijzigd in ino.
De volgende foto's tonen de montage van het prototype-apparaat op een breadboard-type bord:
Nadat hij een prototype heeft samengesteld, test de meester het. De temperatuur wordt weergegeven in graden Celsius, de werkelijke spanningswaarde op de ventilator - als een percentage van het maximum.
Het blijft om het circuit te monteren door te solderen en daar de thermostaat deel van te maken zelfgemaaktdie hij zal afkoelen.