Dans cet article, nous allons construire quelques circuits de ventilateur CC à température contrôlée automatiques basés sur Arduino qui allumeront un ventilateur ou tout autre gadget connecté, lorsque la température ambiante atteindra un niveau de seuil prédéterminé. Nous allons utiliser le capteur DHT11 et arduino pour ce projet.
Aperçu
La beauté des microcontrôleurs est que nous obtenons un contrôle très précis sur les périphériques qui y sont connectés. Dans ce projet, l'utilisateur a juste besoin d'entrer la température de seuil dans le programme, le microcontrôleur se chargera du reste de la fonction.
Il existe des tonnes de projets de contrôleurs de température automatiques basés sur des microcontrôleurs disponibles sur Internet, tels que l'utilisation de comparateurs et de transistors.
Ils sont très simples et fonctionnent bien, mais le problème se pose lors du calibrage du niveau de seuil à l'aide d'une résistance ou d'un potentiomètre prédéfini.
Nous avons une idée aveugle lors du calibrage et l'utilisateur peut avoir besoin de faire des essais et des erreurs pour trouver le point idéal.
Ces problèmes sont surmontés par des microcontrôleurs, il suffit à l'utilisateur de saisir la température en Celsius dans ce projet, donc pas besoin de calibrage.
Ce projet peut être utilisé là où la température interne du circuit doit être stabilisée ou éviter la surchauffe.
Dans le diagramme 1, nous connectons un ventilateur CPU en sortie. Cette configuration peut être utilisée pour contrôler la température ambiante interne d'un circuit fermé.
Lorsque la température seuil est atteinte, le ventilateur se met en marche. Lorsque la température descend en dessous du seuil de température, le ventilateur s'éteint. Il s’agit donc essentiellement d’un processus automatisé.
Dans le schéma 2, nous avons connecté un relais pour contrôler des appareils fonctionnant sur tension secteur comme un ventilateur de table.
Lorsque la température ambiante atteint le seuil de température, le ventilateur se met en marche et s'éteint lorsque la pièce se refroidit.
C'est peut-être le meilleur moyen d'économiser de l'énergie et cela peut être le paradis pour les paresseux qui souhaitent que les autres allument le ventilateur lorsqu'ils se sentent chauds.
Schéma de circuit montrant une commande de ventilateur CC
Cette configuration peut être déployée pour les circuits qui sont enfermés dans une boîte. La LED s'allume lorsque le niveau de seuil préréglé est atteint et allume également le ventilateur.
Connexion d'un relais pour contrôler des ventilateurs plus grands
Ce circuit remplit la fonction similaire du circuit précédent, maintenant le ventilateur est remplacé par un relais.
Ce circuit peut contrôler un ventilateur de table ou un ventilateur de plafond ou tout autre gadget pouvant refroidir la température ambiante.
L'appareil connecté s'éteint dès que la température atteint en dessous du seuil prédéfini.
Le schéma de circuit du ventilateur CC à température contrôlée illustré ici ne sont que quelques-unes des nombreuses possibilités. Vous pouvez personnaliser le circuit et le programme à vos propres fins.
REMARQUE 1: #Pin 7 est émis.
REMARQUE 2: Ce programme est uniquement compatible avec le capteur DHT11 uniquement.
Programme pour le circuit de régulateur de température automatique expliqué ci-dessus utilisant Arduino:
Code de programme
Remarque: dans le programme int th = 30 // règle la température seuil en Celsius. Remplacez «30» par la valeur souhaitée. Deuxième conception Le deuxième projet de circuit de ventilateur CC à température contrôlée discuté ci-dessous détecte automatiquement la température ambiante et ajuste la vitesse du moteur du ventilateur pour maintenir la température ambiante sous contrôle. Ce traitement automatique se fait via un Arduino et un capteur de température IC LM35. Par:Ankit Negi 1). Dès que la température ambiante augmente au-delà de 25 degrés Celsius (vous pouvez modifier cette valeur dans le programme en fonction de vos besoins, expliqués dans la section de travail), le moteur démarre. 2). Et à chaque degré d'augmentation de la température, la vitesse du moteur augmente également. 3). Le moteur tourne à sa vitesse maximale dès que la température monte à 40 degrés Celsius (cette valeur peut être modifiée dans le programme). Pour accomplir la tâche mentionnée ci-dessus, nous allons utiliser temp. Capteur LM35 car il est largement utilisé et facilement disponible. LM35 a 3 broches comme vous pouvez le voir sur la figure. 1. Vin - cette broche est connectée à une alimentation en courant continu entre 4 et 20 v. LM35, lorsqu'il est connecté à l'alimentation, détecte le température ambiante et envoie une tension équivalente en fonction de l'élévation de température par degré via sa broche de sortie. Le LM35 peut détecter n'importe quelle température. entre -50 degrés et +150 degrés Celsius et augmente la sortie de 10 millivolts avec une augmentation de 1 degré de la température. Ainsi, la tension maximale qu'il peut donner en sortie est de 1,5 volts. Arduino est nécessaire pour changer la valeur analogique reçue de la broche de sortie du LM35 en valeur numérique et envoie la sortie numérique correspondante (PWM) à la base du mosfet. Nous utiliserons également commandes arduino pour imprimer la température, valeur analogique correspondante et sortie numérique vers mosfet sur le moniteur série d'ARDUINO IDE. Ce circuit ne sera d'aucune utilité s'il ne peut pas faire fonctionner le moteur à courant élevé. Par conséquent, pour faire fonctionner de tels moteurs, un mosfet de puissance est utilisé. La diode est utilisée pour protéger le mosfet de l'arrière E.M.F généré par le moteur pendant le fonctionnement. 1. LM35 2. ARDUINO 3. MOSFET DE PUISSANCE (IRF1010E) 4. DIODE (1N4007) 5. FAN (moteur) 6. ALIMENTATION DU VENTILATEUR Effectuez les connexions comme indiqué sur le schéma de circuit. a) Connectez la broche vin de lm358 à 5v d'arduino UNE). VARIABLE X- Il s'agit simplement de la valeur analogique reçue par la broche no. A0 de la broche de sortie du LM35. B). VARIABLE ET- En raison de cette seule variable, notre moteur de ventilateur fonctionne conformément à la température correspondante. Cette variable change la valeur analogique, c'est-à-dire la variable x, en température correspondante de l'environnement. Y = (500 * x) / 1023 C). VARIABLE Z- z = carte (x, 0, 1023, 0,255) REMARQUE :: Nous savons que le lm35 peut fournir un maximum de 1,5 volts et cela aussi lorsque temp. Est de 150 degrés. ce qui n'est pas pratique. Cela signifie que pour 40 degrés Celsius, nous obtenons 0,40 volts et pour 25 degrés, nous obtenons 0,25 volts. Puisque ces valeurs sont très faibles pour un pwm correct sur mosfet, nous devons le multiplier par un facteur. Par conséquent, nous le multiplions par 10 et donnons à la place cette valeur comme sortie analogique à la broche PWM 10, c'est-à-dire ** analogWrite (10, z * 10) Maintenant, pour 0,25 volts mosfet obtient 0,25 * 10 = 2,5 volts Pour 0,40 volts, mosfet obtient 0,40 * 10 = 4 volts, auquel le moteur tourne presque à sa pleine vitesse CAS 1. Lorsque temp. Est inférieur à 25 degrés Dans ce cas, arduino envoie une tension de 0 PWM à la broche 10 comme dans la dernière ligne de code ** autre Puisque la tension pwm à la base du mosfet est de 0, elle reste éteinte et le moteur est déconnecté du circuit. Voir circuit simulé dans ce cas. Comme vous pouvez le voir, la température est de 20 degrés Valeur analogique = 41 Mais comme la température est inférieure à 25 degrés, mosfet obtient 0 volt comme le montre la figure (indiqué par un point bleu). Lorsque la température atteint 25 degrés, alors comme spécifié dans le code pwm, le signal est envoyé à la base du mosfet et à chaque degré d'augmentation de la température, cette tension PWM augmente également, c'est-à-dire Voir circuit simulé dans ce cas. Comme vous pouvez le voir à mesure que la température augmente de 20 degrés à 40 degrés, les trois valeurs changent et à 40 degrés Celsius Valeur analogique = 82 Puisque la température est supérieure à 25 degrés, mosfet obtient la tension PWM correspondante comme indiqué sur la figure (indiqué par un point rouge). Par conséquent, le moteur commence à fonctionner à 25 degrés et avec l'augmentation correspondante de la température par degré, la tension pwm de la broche 10 à la base du mosfet augmente également. Par conséquent, la vitesse du moteur augmente linéairement avec l'augmentation de la température et devient presque maximale à 40 degrés Celsius. Si vous avez d'autres questions concernant le circuit de ventilateur CC à température contrôlée automatique expliqué ci-dessus utilisant un ventilateur et Arduino, vous pouvez toujours utiliser la boîte de commentaires ci-dessous et nous envoyer vos commentaires. Nous essaierons de revenir au plus tôt.//--------------------Program developed by R.Girish---------------------//
#include
dht DHT
#define DHTxxPIN A1
int p = A0
int n = A2
int ack
int op = 7
int th = 30 // set thershold tempertaure in Celsius
void setup(){
Serial.begin(9600) // May be removed after testing
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
digitalWrite(p,1)
digitalWrite(n,0)
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
// you may remove these lines after testing, from here
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.print('
')
// To here
if (DHT.temperature>=th)
{
delay(3000)
if(DHT.temperature>=th) digitalWrite(op,HIGH)
}
if(DHT.temperature {
delay(3000)
if(DHT.temperature }
}
if(ack==1)
{
// may be removed after testing from here
Serial.print('NO DATA')
Serial.print('
')
// To here
digitalWrite(op,LOW)
delay(500)
}
}
//-------------------------Program developed by R.Girish---------------------// NOTRE OBJECTIF:
CAPTEUR DE TEMPÉRATURE LM35:
2. Vout - cette broche donne une sortie sous forme de tension.
3. GND - cette broche est connectée à la borne gnd du circuit. POURQUOI ARDUINO POUR CE PROJET DE CONTRÔLEUR DE VENTILATEURS DC?
QUEL EST LE RÔLE DU POWER MOSFET?
POURQUOI LA DIODE EST-ELLE UTILISÉE?
LISTE DES PIÈCES POUR LE PROJET:
SCHÉMA:
b) Connectez la broche vout du lm358 à A0 de l'arduino
c) Connectez la broche de terre du lm358 à GND de l'arduino
d) Connectez la base du mosfet à la broche PWM 10 de l'arduino CODE:
float x// initialise variables
int y
int z
void setup()
{
pinMode(A0,INPUT) // initialize analog pin A0 as input pin
Serial.begin(9600) // begin serial communication
pinMode(10,OUTPUT) // initialize digital pin 10 as output pin
}
void loop()
{
x=analogRead(A0) // read analog value from sensor's output pin connected to A0 pin
y=(500*x)/1023// conversion of analog value received from sensor to corresponding degree Celsius (*formula explained in working section)
z=map(x,0,1023,0,255) // conversion of analog value to digital value
Serial.print('analog value ')
Serial.print( x) // print analog value from sensor's output pin connected to A0 pin on serial monitor( called 'analog value')
Serial.print(' temperature ')
Serial.print( y) // print the temprature on serial monitor( called 'temprature')
Serial.print(' mapped value ')
Serial.print( z*10) // multiply mapped value by 10 and print it ( called ' mapped value ' )
Serial.println()
delay(1000) // 1 sec delay between each print.
if(y>25)
{analogWrite(10,z*10) // when temp. rises above 25 deg, multiply digital value by 10 and write it on PWM pin 10 ( ** explained in working section)
}
else
{analogWrite(10,0) // in any other case PWM on pin 10 must be 0
}
} TRAVAIL (comprendre le code):
1. La première valeur analogique doit être remplacée par la tension correspondante, c'est-à-dire
1023: 5v
Par conséquent, (5000 millivolt * x) / 1023 V
2. Nous savons maintenant que pour chaque degré d'augmentation de la température, la tension de sortie correspondante augmente de 10 mv, c'est-à-dire
1 degré Celsius: 10 millivolts
Par conséquent, (5000 millivolt * x) / (1023 * 10) DEGRÉ
cette variable change la valeur analogique en valeur numérique pour la sortie pwm sur la broche 10.
{analogWrite (10,0) // dans tous les autres cas PWM sur la broche 10 doit être 0
} **
Température = 20
Valeur mappée = 100
CAS 2. Lorsque temp. Est supérieur à 25 degrésif(y>25)
{analogWrite(10,z*10)
} which is z* 10.
Température = 40
Valeur mappée = 200
Une paire de: Circuit de protection de réfrigérateur simple Un article: Comment concevoir un circuit d'alimentation sans coupure (UPS)