Partage
  • Partager sur Facebook
  • Partager sur Twitter

Capteur anémomètre - mesures toutes les 5s

    17 septembre 2017 à 21:37:38

    Bonsoir,

    j'ai un capteur anémomètre intégrant un contact reed et une carte arduino UNO https://www.lextronic.fr/P36218-capteur-annomtre.html
    Je souhaite effectuer des mesures toutes les 5 secondes. Le programme ci-dessous m'affiche bien les valeurs toutes les 5 secondes mais lesvaleurs sont très faibles comparées à celles mesurées avec mon anémomètre manuel digital. De plus si j'enlève les lignes de codes qui permettent de temporiser les mesures, les valeurs sont bonnes. Donc le problème est localisé mais comme je suis débutant dans le langage Arduino, j'aurai besoin d'un coup de main. Merci.

    #define pinANEMO 2
    #define pi 3.1415
    #define RayonDesBras 0.07 //rayon en mètre de l'anémomètre
    
    long date_debut;
    long date_mesure(0); 
    
    
    
    void setup()
    {
    pinMode(pinANEMO, INPUT);
    Serial.begin(9600);
    long date_debut=millis();
    }
    
    unsigned long millis_old(0);
    float deltaTime(0);
    float vitesseVent(0);
    float NombreTourSec(0);
    float NombreTourMin(0);
    float FEtalonage(1);
    
    
    
    void loop()
    {
    date_mesure=millis();  
    if (date_mesure==date_debut+5000) //si la durée de la mesure est égale à 5 secondes
    {
    calcul_vent() ; 
       //calcul de la vitesse du vent
        NombreTourSec = (1/deltaTime); // convertion periode -> vitesse de rotation en tours/seconde
        NombreTourMin = NombreTourSec*60; // vitesse de rotation en tours/minute
    
    vitesseVent = pi*RayonDesBras*NombreTourMin*FEtalonage*3.6/30; //vitesse du vent en km/h
    
    
    //affichage de la vitesse
      Serial.print("Vitesse du vent = ");
        Serial.print(vitesseVent);
        Serial.print(" km/h\r\n");
    
    date_debut=millis(); //réinitialisation de la date de début
     }
    }
    
    
    void calcul_vent  ()
    {
    static byte etatPrecedent=LOW;
    byte etat = digitalRead(pinANEMO); //lecture du capteur
    
     if (etat && etat!=etatPrecedent)
     {
    deltaTime = ((millis() - millis_old) / 1000.0);// div en 1000 pour avoir le résultat en seconde
    millis_old = millis(); // remise à 0 du compteur pour capturer la différence de temps au prochain tour
    }
     etatPrecedent=etat;
    }
    



    -
    Edité par Rhestti 21 septembre 2017 à 23:03:01

    • Partager sur Facebook
    • Partager sur Twitter

    Capteur anémomètre - mesures toutes les 5s

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown