Les ventilateurs utilisés pour refroidir l'électronique se présentent sous deux formes. Certains sont miniatures, ils sont envoyés directement aux composants refroidis, d'autres sont plus grands, ils entraînent de l'air à travers tout l'espace du boîtier. Il est préférable que les deux types de ventilateurs soient utilisés ensemble. Souvent, les fans du deuxième type battent constamment à pleine puissance, même si cela n'est pas nécessaire. De ce fait, le roulement s'use plus rapidement et trop de bruit interfère avec l'utilisateur. Le thermostat de contact le plus simple peut allumer et éteindre le ventilateur, tandis que la ressource de roulement n'est consommée que lorsque le moteur tourne, mais le bruit qui apparaît et disparaît brusquement peut être encore plus ennuyeux. Un thermostat plus sophistiqué - par exemple, proposé par l'auteur Instructables sous le surnom d'AntoBesline - contrôle la fréquence de rotation du moteur du ventilateur avec un PWM et la maintient nécessaire et suffisante pour atteindre la température réglée. Il est conseillé de faire passer l'air à travers l'espace du boîtier de bas en haut et de placer le capteur de température par le haut. Vous pouvez également installer des filtres pour empêcher la poussière de pénétrer dans le boîtier, mais ils réduiront les performances.
Un capteur de température et d'humidité du type DHT11 convient uniquement au thermostat contrôlant un ventilateur de second type, car il mesure la température de l'air et non de n'importe quelle surface. Son support est assuré par deux bibliothèques aménagées ici et ici. Si vous devez équiper un ventilateur du premier type d'un thermostat, vous devrez utiliser un autre capteur qui mesure la température de surface du composant à refroidir. Le programme devra alors être refait, et les bibliothèques en auront besoin d'autres, car le capteur peut différer à la fois dans l'interface et la structure des données qui lui sont transmises.
En utilisant l'illustration suivante, l'assistant montre ce qu'est PWM, la plupart des lecteurs le savent déjà. Du fait que le transistor de sortie est toujours soit complètement fermé, soit complètement ouvert, une très faible puissance lui est toujours allouée. Comme vous le savez, la puissance est égale au produit du courant et de la tension, et ici, avec le transistor fermé, le courant est très faible, et avec le transistor ouvert, la chute de tension à travers lui est faible. L'un des deux facteurs est toujours petit, ce qui signifie que leur produit est également petit. Presque toute la puissance du contrôleur PWM va à la charge, pas au transistor.
Le capitaine établit un schéma de thermostat:
Arduino il est alimenté par une source de 5 volts, le ventilateur - à partir d'un 12 volts.Si vous utilisez un ventilateur de 5 volts, vous pouvez le faire avec une seule source avec une capacité de charge suffisante, alimentant Arduino à travers un simple filtre LC. Une diode connectée en parallèle avec le ventilateur dans le sens opposé est nécessaire si le moteur est un moteur collecteur (comme dans certains ventilateurs USB modernes). Lorsque vous utilisez un ventilateur d'ordinateur avec un capteur Hall et une commande de bobinage électronique, cette diode est facultative.
Le texte du programme compilé par l'assistant est assez court, il est donné ci-dessous:
#include "DHT.h"
#define dht_apin A1
#include
LCD à cristaux liquides (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 (ventilateur, SORTIE);
pinMode (led, SORTIE);
lcd.begin (16, 2);
dht.begin ();
lcd.print ("Basé sur la température ambiante");
lcd.setCursor (0, 1);
lcd.print ("Vitesse du ventilateur Ctrl");
retard (3000);
lcd.clear ();
}
boucle vide ()
{
float temperat;
temperature = dht.readTemperature ();
temp = températ; // stocke la valeur de la température dans la variable temp
Serial.print (temp);
if (temp = tempMin) && (temp <= tempMax)) // si la température est supérieure à la température minimale
{
fanSpeed = temp; // map (temp, tempMin, tempMax, 0, 100); // la vitesse réelle du ventilateur // map (temp, tempMin, tempMax, 32, 255);
fanSpeed = 1,5 * fanSpeed;
fanLCD = map (temp, tempMin, tempMax, 0, 100); // vitesse du ventilateur à afficher sur LCD100
analogWrite (fan, fanSpeed); // fait tourner le ventilateur à la vitesse du ventilateur
}
if (temp> tempMax) // si temp est supérieur à tempMax
{
digitalWrite (led, HIGH); // allume la led
}
else // else tour de led
{
digitalWrite (led, LOW);
}
lcd.print ("TEMP:");
lcd.print (temp); // affiche la température
lcd.print ("C");
lcd.setCursor (0,1); // déplace le curseur sur la ligne suivante
lcd.print ("FANS:");
lcd.print (fanLCD); // affiche la vitesse du ventilateur
lcd.print ("%");
retard (200);
lcd.clear ();
}
De plus, un croquis peut être téléchargé sous forme de fichier ici. L'extension inconnue devra être changée en ino.
Les photos suivantes montrent l'assemblage du dispositif prototype sur une carte de type planche à pain:
Après avoir assemblé un prototype, le maître le teste. La température est affichée en degrés Celsius, la valeur de tension réelle sur le ventilateur - en pourcentage du maximum.
Il reste à assembler le circuit par soudure et à intégrer le thermostat à celui-ci fait maisonqu'il refroidira.