Nombre total de pages vues

ventillation asservi

 

Ventilation réguler en température


Pour éviter que le ventilateur tourne en continu, j'ai cherché un montage simple.
1ʳᵉ solution : utiliser l'Arduino (inconvénient en plus des 2 fils d'alimentation de ventilateur, il faut un fil de plus (retour CTN)
le principe est assez simple, il faut un composant qui varie suivant la température, plusieurs choix, le LM35, le DS18B20 les deux permettent d'avoir des températures très précises et linéaire (vous trouverez des montages sur internet). Mais pour déclencher un ventilateur pour refroidir des leds, on n'a pas vraiment besoin d'une précision au dixième de degrés.
Il reste un composant petit, et pas cher. La thermistance, comme son nom le laisse supposer, c'est une résistance qui varie suivant sa température. Il existe deux variantes, la résistance augmente avec la température, les CTP (coefficient température positif) et l'autre dont la résistance baisse lorsque la température augmente, les CTN coefficient température négatif). 
Elles existent en plusieurs valeurs 4k7, 10k; 50k,100k. Dans un fond de tiroir, j'avais des CTN 10k et des ventilateurs 12v, on va partir sur ce montage.
L'inconvénient des CTN, il faut les calibrer pour avoir une température précise (voir article complet très bien fait https://edu.mrpigg.ca/termo.html)   mais encore une fois, on n'a pas réellement besoin de connaitre la température, on a juste besoin d'une température de consigne, en dessous le ventilateur est à l'arrêt au-dessus, il est en route. 
La résistance R1 à une valeur de 22k sous 12v, valeur à adapter suivant la tension du ventilateur (5v, 12v, 24v...) pour tester la bonne valeur, remplacer R1 par un trimmer de 50K, brancher un voltmètre entre la masse et le point milieu du pont (R1<==>CTN) la tension doit toujours être inférieure à 5v pour un Arduino nano  (pour un esp ou autre chercher la tension maximum à appliquer sur une entrée analogique et adapter en conséquence).
 
Schéma :
La thermistance est branchée sur l'entrée analogique A6 à travers un pont diviseur (pour rappel les entrées analogiques supportent 5v maximum) ce qui permet de lire la variation de la CTN.
Il suffit de se servir de cette valeur pour créer le point de basculement.
Le seuil de consigne atteint, on passe la broche D8 à l'état, ce qui rend le transistor passant et alimente le ventilateur.
le programme à utiliser pour ajuster le seuil de basculement, ensuite l'incorporer dans votre programme.
Unsigned long Time=1000;  correspond à l'intervalle à laquelle l'arduino va lire la température, inutile de lire la température toutes les secondes, donc vous pouvez augmenter l'intervalle à votre guise !

 Programme : NTC out 

int valeur = 0;                                        // Variable tension de la thermistance
int Fan = 8;                                            // déclaration broche sortie fan
unsigned long currentTime=0;
unsigned long previousTime=0;
unsigned long Time=1000;                    //  temps entre 2 lectures 1000 = 1s, valeur à définir

void setup() 
{  
 Serial.begin(9600);                              // pour debug ne pas mettre dans le programme dmx
  pinMode(Fan, OUTPUT);                    // mets la broche en sortie (non pwm)                        
}

void loop()
{
  currentTime=millis();                                        // boucle millis

    if((currentTime-previousTime)>Time)          // 1000 = 1s, valeur à définir
   {
     Temperature();                                                  // appel fonction
    previousTime=currentTime;                             // remise à zéro fonction millis
  }
 
void Temperature()
{
  valeur = analogRead(A6);                                     // on lit la valeur du pin A6 (CTN 10k)
  valeur = valeur*4;                                                 // non obligatoire, mais permet une lecture plus grande
  Serial.print("valeur analogique: ");                       // pour debug ne pas mettre dans le programme dmx
  Serial.println(valeur);                                           // pour debug ne pas mettre dans le programme dmx
  if (valeur <= 480) { digitalWrite(Fan, HIGH); }     // valeur déclenchement fan   valeur à définir
  if (valeur >= 520) { digitalWrite(Fan, LOW); }      // valeur arrêt fan    valeur à définir
}
 
Copier chaque partie de ce programme dans le vôtre à la section appropriée (racine, setup, loop...)
Déjà incorporer dans le programme 2 RGB - 8 ch
 
2ᵉ version :
Beaucoup plus simple et ne nécessitant pas de fil supplémentaire.
la gate du mosfet est alimenté par le milieu du pont diviseur composé du trimmer et de la thermistance.
Régler le trimmer pour qu'à température ambiante le ventilateur soit à l'arrêt et chauffer la CTN à la température voulue pour le déclenchement.  Le plus simple un thermomètre et un verre d'eau voir (voir article complet très bien fait https://edu.mrpigg.ca/termo.html)
Une fois que vous avez trouvé la bonne position du trimmer, vous pouvez le remplacer par une résistance fixe.
Brancher un voltmètre entre la masse et le point milieu du pont (trim1<==>CTN) la tension doit toujours être inférieure à 5v pour un Arduino nano  (pour un esp ou autre chercher la tension maximum à appliquer sur une entrée analogique et adapter en conséquence)


Aucun commentaire:

Enregistrer un commentaire