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
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.