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