Go Down

Topic: Ventilateur regule le retour (Read 1 time) previous topic - next topic

bobby1004

Bonjour,

Je suis entrain de faire un ventilateur qui puisse réguler automatiquement sa vitesse en fonction de la température du milieu. Pour cela,  une thermistance CTN détermine la température qui correspond à une certaine valeur de résistance. Les températures extrêmes que je me suis fixées sont 15 et 35 °C. Pour cette plage de température j'ai en entrée de la arduino sur une broche analogique une tension Ue qui varie entre entre  1.52 et 4.7 V . Plus la température sera elevée, plus la tension Ue sera grande donc plus le ventilateur tournera vite. J'ai essayé de faire un programme qui traite l'acceleration du moteur en fonction de la temperature. Le moteur tourne mais ne sa vitesse ne varie pas en fonction je la temperature.


Voici le programme



float r;
int rth=0 ; //broche analogique sur laquelle est branchée la thermistance
int mot10=10 ; int mot9=9; int mot3=3; //broche sur laquelle est branché
le moteur

void setup()
{
        pinMode(rth,INPUT) ;
        pinMode(mot10,OUTPUT) ;
        pinMode(mot9,OUTPUT);
        pinMode(mot3,OUTPUT);
}

void loop()
{
        r=analogRead(rth) ; //Capte la valeur de la thermistance

//Pour une température inférieure à 15°C
        if(r<311)
        {
                analogWrite(mot10,0) ; //le moteur ne tourne pas
                analogWrite(mot9,0);
                analogWrite(mot3,0);
        }

//Pour une température comprise entre 15 et 20°C
        if (r<368 &&r>311)
        {
                analogWrite(mot10,64) ; //le moteur tourne à 25%
                analogWrite(mot9,0);
                analogWrite(mot3,255);
        }

//Pour une température comprise entre 20 et 25°C
        if (r>368 && r<450)
        {
                analogWrite(mot10,127) ; //le moteur tourne à 50%
                analogWrite(mot9,0);
                analogWrite(mot3,255);
        }

//Pour une température comprise entre 25 et 30°C
        if (r>450 && r<579)
        {
                analogWrite(mot10, 191) ; //le moteur tourne à 75%
                analogWrite(mot9,0);
                analogWrite(mot3,255);
        }

//Pour une température supérieure à 30°C
        if(r>579)
        {
                analogWrite(mot10,255) ; //le moteur tourne à pleine vitesse
                analogWrite(mot9,0);
                analogWrite(mot3,255);
        }
}


Merci de votre aide

elafye

Ce sujet n'a pas déjà été posté ?

bobby1004

Oui je l'ai deja posé mais il était bloqué. Personne ne pouvait repondre.

fdufnews

Code: [Select]
int mot10=10 ; int mot9=9; int mot3=3; //broche sur laquelle est branché le moteur

....

                analogWrite(mot10,64) ; //le moteur tourne à 25%
                analogWrite(mot9,0);
                analogWrite(mot3,255);

....

Peut être ai-je raté quelque chose mais là je ne comprends pas comment est piloté le moteur. Un petit bout de schéma (ou un lien vers un schéma) pour expliquer comment est câblé l'étage de commande du moteur.


bobby1004

Bonjour,

J' ai 3 broches de sortie vers le pont H. Une qui renvoie des valeurs analogwrite variables, une autre qui envoie analogwrite(0) , et la derniere analogwrite(255).  J'utilise seulement un sens de rotation du moteur.

caco74

Attention quand même, la temperture derriere un ventilo est la même que dans la piece. Il ne brasse que la même air, en revanche si tu veux refroidir une piece qui est plus chaude que l ambiant ça marche.

bichtrack2

Bonjour,
Je me greffe sur le poste pour savoir si il était possible de réguler la vitesse de rotation de deux ventilateurs ou de brasseur d'air du commerce (220-240V~~50Hz/45W) en fonction de la température ambiante avec une carte arduino?
Merci pour votre aide

caco74

bonjour tout est possible avec Arduino.
visite ce lien et du comprendra.

la regulation s effectue par temperature.

http://www.civade.com/post/2011/05/25/Snootlab-Essai-de-l-Arduino-i2C-Power-proto-shield-ventilateurs-pwm-ds1820-fanduino

bonne bidouille.

Go Up