Aide

Bonjour, Nous travaillons sur une station météo arduino. On souhaite relevé la vitesse du vent grâce à un anémomètre mais à chaque boucle la vitesse du vent s’accumule donc elle est très élevé. On souhaite relevé la vitesse du vent sur une période de 1 seconde .

notre programme :

#include "DHT.h"   // Librairie des capteurs DHT
#define DHTPIN 4    // Changer le pin sur lequel est branché le DHT
#define DHTTYPE DHT22     // DHT 22  (AM2302)

#include "Wire.h"
#include "Adafruit_BMP085.h"
Adafruit_BMP085 bmp;

int lum_pin = 0; 
int lumi; 
DHT dht(DHTPIN, DHTTYPE);

int portpot = A1;
int valeurpot;

int basculement = 0;

int nbrtour = 0;                                       

void setup(void) {
  
  Serial.begin(9600);
  bmp.begin(); 
  dht.begin(); 

  pinMode (3, INPUT);
  attachInterrupt (1, pluviometre, RISING);

  pinMode (2, INPUT);
  attachInterrupt (0, anemometre, RISING);
}

void loop(void) {


  
  //-------------------------------LUMIERE-----------------------------------
  lumi = analogRead(lum_pin);
  if (lumi < 100) {
    Serial.println("a");
  } else if (lumi < 500) {
    Serial.println("b");
  } else if (lumi < 850) {
    Serial.println("c");
  } else {
    Serial.println("d");
  }
  delay(3000);
  //-------------------------------BAROMETRE---------------------------------
  int Press;
  Press = bmp.readPressure();  //Lire le capteur
  Serial.println(Press);
  delay(3000);
  //-------------------------------HUMIDITER---------------------------------
  float humi = dht.readHumidity();
    //Serial.println(humi);
    float temp = dht.readTemperature();
    if (isnan(humi) || isnan(temp))
   {
     Serial.println("Failed to read from DHT sensor!");
    return;
  }
    int hum10;
    hum10 = int(humi*10);
    Serial.println(hum10);
    Serial.println(temp);
    delay(3000);

 //---------------------------------GIROUETTE----------------------------------
 valeurpot = analogRead(A1);
  
   if (valeurpot >770 && valeurpot < 800)
 {
  Serial.println("N");
 }
   else if (valeurpot >460 && valeurpot < 470)
 {
  Serial.println("NE");
 }
   else if (valeurpot >880 && valeurpot < 900)
 {
  Serial.println("NO");
 }
  else if (valeurpot>940 && valeurpot<950)
 {
  Serial.println("O");
 }
 else if (valeurpot>85 && valeurpot<100)
 {
  Serial.println("E");
 }
  else if (valeurpot>285 && valeurpot<295)
 {
  Serial.println("S");
 }
   else if (valeurpot>630 && valeurpot<640)
 {
  Serial.println("SO");
 }
    else if (valeurpot>180 && valeurpot<195)
 {
  Serial.println("SE");
 }   
  delay(3000); 
//-----------------------------pluviometre-----------------------------------
 
  Serial.println(basculement/5*0.2792);            // calcul de la vitesse du vent et envoie sur serial
  //Serial.println ("mm");
  basculement = 0;  
  delay(1000);

  //-----------------------------anemometre-------------------------------------
  
  Serial.print(2*3.1415*0.05*nbrtour*3.6/2);            // calcul de la vitesse du vent et envoie sur serial
  Serial.println (" km/h");
  nbrtour = 0;
  delay(1000);

}



void pluviometre()
{
  basculement++;
}

void anemometre()
{
  nbrtour++;
}

Bonjour,

Et quelle est la question? (tiens encore un anémomètre, c'est une épidémie :) )

Alors, si tu cherches un peu sur le forum français il y a déjà plusieurs sujets ouverts sur des problèmes d’anémomètres.
Ensuite, 95% des gens qui viennent sur le forum on des problèmes et demandent de l’aide alors si tu pouvais mettre un titre un peu plus explicite ce serait bien (tu peux éditer ton premier post pour en changer le titre).