Anémomètre

L’étude porte sur un anémomètre à coupelles, dont la fonction est de mesurer la vitesse du vent.

Objectif : programmer un microcontrôleur pour réaliser l’acquisition de la vitesse du vent à l’aide d’un anémomètre à coupelles.

 

Présentation

Principe de fonctionnement

Le vent entraîne en rotation le rotor constitué de 3 coupelles ayant la forme de sphères creuses.

Lorsque le vent souffle, il rencontre alternativement une coupelle creuse puis bombée. Selon les lois de l’aérodynamique, un creux oppose plus de résistance qu’une forme bombée au passage de l’air. Cette différence provoque la rotation de l’anémomètre.

Constitution

Un solide nommé rotor est guidé en rotation d’axe vertical par rapport à un stator fixe. Le rotor est doté de 3 coupelles : des demi-sphères réparties à 120°.

Dimensions

 

 

Travail demandé

Donner l’expression de la vitesse du centre \(C\) d’une coupelle \(V_c\) (vitesse tangentielle) en fonction de la vitesse angulaire du rotor \(\omega_r\).

 

La vitesse du vent n’est pas tout à fait égale à la vitesse tangentielle des coupelles, en raison des coupelles qui se déplacent dans le sens contraire du vent et opposent une résistance à la rotation du rotor.

La relation entre la vitesse du vent \(V_v\) et la vitesse tangentielle des coupelles \(V_c\) est donnée par l’expression :

\(V_v=3\times V_c\;+\;0,15\)

 

Donner l’expression de la vitesse angulaire du rotor \(\omega_r\) en fonction de la vitesse du vent \(V_v\).

 

 

La vitesse de rotation du rotor est acquise par le système à l’aide d’un interrupteur à lame souple (ILS), également appelé interrupteur reed (reed = roseau) : il s’agit d’un petit contact, placé dans une capsule de verre sous atmosphère protectrice (non oxydante), sensible à la présence d’un champ magnétique. À proximité d’un aimant (orienté dans l’axe du contact électrique), l’interrupteur se ferme.

Cet interrupteur est placé sur le stator de l’anémomètre, et deux aimants se trouvent sur le rotor :

 

On insère cet interrupteur dans un montage électrique comportant une résistance, appelée dans ce cas résistance de tirage (pullup = « tirer vers le haut »). Sa fonction est de « tirer » le potentiel de la borne de l’ILS qui n’est pas relié à la masse (ici le point A), vers un potentiel haut constant (ici \(V_0=5\;\text{V}\)) lorsque l’interrupteur est ouvert. Quand l’interrupteur est fermé, le potentiel du point A devient celui de la masse (GND). La valeur de la résistance \(R\) doit être suffisamment grande pour que le courant qui circule dans cette branche soit faible. En pratique, une résistance de \(10\;\text{k}\Omega\) convient.

 

En observant le schéma présentant ce dispositif, donner l’expression de la fréquence \(f\) du signal électrique aux bornes de l’ILS, en fonction de la vitesse du vent \(V_v\).

 

On souhaite acquérir la vitesse du vent sous forme numérique à l’aide d’un microcontrôleur Arduino.

On utilise pour cela un programme comprenant une interruption : à chaque commutation (ici uniquement les fronts montants du signal) du signal, une petite routine est aussitôt exécutée (fonction tick). Elle est chargée de mesurer le temps écoulé depuis le dernier front, et d’en déduire la vitesse de rotation moyenne depuis cet événement, puis enfin de calculer la vitesse du vent.

 

Compléter l’algorithme de la fonction tick dans le programme ci-dessous :
(la vitesse du vent doit s’afficher en m/s)
// Port numérique auquel est relié le point A
int pin = 2;   // (le port D2 est associé à l'interruption 0)
volatile float v = 0;  // vitesse du vent
volatile unsigned long t = 0;  // temps "courant" (en microsecondes)
float R = 0,075; // Rayon moyen
float PI = 3.1416;

void setup()  {
   Serial.begin(115200);
   Serial.println("Anémomètre");
   pinMode(pin, INPUT);
   attachInterrupt(0, tick, RISING);  // Détection des fronts montants
}

void loop()   {
   delay(10);
}

void tick()   {
   unsigned long dt = micros() - t;  // Temps écoulé depuis le dernier front
   t = t + dt;                       //    on met à jour le temps "courant"
   
   v = .................... ;
   
   Serial.println(v);  // affichage de la vitesse du vent mesurée
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *