IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Étalonnage Anémomètre Arduino


Sujet :

Arduino

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut Étalonnage Anémomètre Arduino
    Salut a tous,
    Je travaille sur une station météo avec une arduino uno
    Je doit mesurer la vitesse du vent pour cela j'ai mon anémometre en guise de capteur branché en RJ11 pour la vitesse mais je doit faire un étalonnage avec la formule V = 2.pi.F(N).R.N mais je ne sais vraiment pas comment m'y prendre pour le code Merci de votre aide !

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 579
    Points : 56 602
    Points
    56 602
    Billets dans le blog
    40
    Par défaut
    Salut,

    Le mieux pour étalonner, c'est une soufflerie...

    Dis-nous au moins ce qui circule dans ton câble rj11, quels signaux, quelles données, quel format ou protocole utilisé ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    Mon anémo fonctionne en ILS avec a l’intérieur 2 aimants
    A chaque passage d' 1 aimant, le contact se ferme et génère une impulsion électrique. La vitesse du vent,
    correspondant au nombre de tours/sec de l'anémo est représentée par le nombre d'impulsions par secondes.
    L'arduino sera alimentée en 5V.
    Apres je n'en sais pas plus a pars que le cable est branché sur ce shield que mon prof a acheté: https://www.sparkfun.com/products/12081 (directement relié a mon arduino)

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 579
    Points : 56 602
    Points
    56 602
    Billets dans le blog
    40
    Par défaut
    Eh bien tu peux commencer par faire un compteur d'impulsions, un compteur qui s'incrémente à chaque détection de front (montant, descendant, à toi de voir). Le plus simple est d'attacher une routine d'interruption sur détection de front sur la broche d'entrée de l'Arduino concernée (voir attachInterrupt()). Le code d'interruption est un simple compteur++;.

    Plus tard, avec la fonction millis(), tu pourra compter tes impulsions pendant une durée déterminée et en déduire la vitesse de rotation.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    J'ai ce programme mais mon moniteur n'affiche pas de valeur juste :"la vitesse du vent est de inf"
    Voici mon prog:

    Arduino.txt

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #define pinILS 12
    #define pi 3.14159265359
    #define RayonDesBras    0.1 // en mètre de l'anénomètre
     
    void setup()
    {
      pinMode(pinILS, INPUT);
      Serial.begin(9600);
    }
     
    unsigned long millis_old(0);
    float deltaTime(0);
    float vitesseVent(0);
    float NombreTourSec(0);
    float FEtalonage(1);
     
    bool isActive(false);
     
    void loop()
    {
        UpdateILS();
        //convertion periode -> fréquence
        NombreTourSec = (1 / deltaTime);
        //vitesse du vent
     
        vitesseVent = 2*pi*RayonDesBras*NombreTourSec*FEtalonage;
        //affichage de la vitesse
        Serial.print("la vitesse du vent est de ");
        Serial.println(vitesseVent);
        Serial.print(" m/s.");
    }
    void UpdateILS()
    {
        //lecture du capteur
        isActive = digitalRead(pinILS);
     
        if(isActive)
        {
            deltaTime = (millis() - millis_old) / 1000 ; // div en 1000 pour avoir le résultat en sec
            millis_old = millis(); // remise à 0 du compteur pour capturé la différence de temps au prochain tour
        }
    }

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 579
    Points : 56 602
    Points
    56 602
    Billets dans le blog
    40
    Par défaut
    Tu es sûr que ton signal arrive sur la broche D12 ? Si tu regardes le schematic de ton shield sur le site de sparkfun, il n'y a rien sur D12.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    Exact :/
    Pourriez vous m'aider a arranger cela quitte a modifier le programme ? Car je pense que c'est le mieux a faire

  8. #8
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 579
    Points : 56 602
    Points
    56 602
    Billets dans le blog
    40
    Par défaut
    Commence déjà par connaître sur quelle entrée arrive ton signal. Si ton anémo est sur le connecteur RJ11-WIND, le schematic indique l'entrée D3 de l'Arduino (WSPEED).

    Un simple programme de lecture de l'entrée dans les exemples (Basics>digitalRead est très bien) en tournant l'anémo à la main permettra de voir si le signal est bien capté.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    Très bien je vais faire cela et je vous le renseigne mais pas maintenant car je n'ai pas lanemo avec moi car je suis en vacances merci

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    Oui le signal est bien capté sur la broche d3 de l'arduino

    Merci pour l'aide et aussi pour les cours et tutoriels pour apprendre Arduino

  11. #11
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 579
    Points : 56 602
    Points
    56 602
    Billets dans le blog
    40
    Par défaut
    Hé bien c'est une bonne nouvelle...

    #define pinILS 12 devient donc #define pinILS 3

    Mais dis-moi, deux aimants et un ILS, cela fait 4 périodes du signal par tour d'anémomètre, non ?

    Sinon, pour mesurer une fréquence variable, le plus simple est de mesurer le temps s’écoulant entre deux interruptions successives déclenchées par des fronts montants du signal (voir mon message #4). Puis de calculer f=1/T. Sachant que pour une période, l'anémomètre effectue 1/4 de tour si je ne me trompe pas.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    Oui il me semble que c'est cela mais je crois aussi que c'est attachinterrupt egal a 1 je l'ai vu avec mon prof et a chaques interuptions ya 2.4 km/h si ca peut aider a trouver ?

  13. #13
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 579
    Points : 56 602
    Points
    56 602
    Billets dans le blog
    40
    Par défaut
    oui, sur la broche 3 de l'Arduino Uno, c'est l'interruption int.1 (voir attachInterrupt())

    et a chaques interuptions ya 2.4 km/h si ca peut aider a trouver ?
    Souffle plus fort, mais sinon, tu veux qu'on t'aide à trouver quoi ?

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    A faire un code qui fonctionne, avec votre aide que tu m'a donné tu pense que cela va marcher ou je doit encore modifier le prog ?

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    BBon bah supper ca marche maintenant c'est ma girouette qui déconne, j'ai fait un prog qui ne se compile pas !

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    String directionVent(String directionVent)
    {
      if (analogRead(A0)==valeurs1||
    analogRead(A0)==valeurs2||analogRead(A0)==valeurs3);  //Nord
      {
        directionVent="Sud";
      }
      else if (analogRead(A0)==valeurs1||analogRead(A0)==valeurs2||analogRead(A0)==valeurs3);  //Nord Est
      {
        directionVent="Sud Ouest";
      }
      else if (analogRead(A0)==valeurs1||analogRead(A0)==valeurs2||analogRead(A0)==valeurs3);  //Est
      {
        directionVent="Ouest";
      }
      else if (analogRead(A0)==valeurs1||analogRead(A0)==valeurs2||analogRead(A0)==valeurs3);  //Sud Est
      {
        directionVent="Nord Ouest";
      }
      else if (analogRead(A0)==valeurs1||analogRead(A0)==valeurs2||analogRead(A0)==valeurs3);  //Sud Ouest
      {
        directionVent="Nord Est";
      }
      else if (analogRead(A0)==valeurs1||analogRead(A0)==valeurs2||analogRead(A0)==valeurs3);  //Ouest
      {
        directionVent="Est";
      }
      else if (analogRead(A0)==valeurs1||analogRead(A0)==valeurs2||analogRead(A0)==valeurs3);  //Nord Ouest
      {
        directionVent="Sud Est";
      }
     
      return directionVent;
    }

  16. #16
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 646
    Points : 11 135
    Points
    11 135
    Par défaut
    dans le bout de code posté, je vois 7 fois la même instruction...

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    je doit faire comment alors, je ne m'i connais pas trop je comprend comment ca marche mais pour coder ...

  18. #18
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 646
    Points : 11 135
    Points
    11 135
    Par défaut
    C'est ce dispositif que tu utilises pour la vitesse et la direction du vent ?
    https://www.sparkfun.com/products/8942

    D'après la documentation (datasheet), la valeur lue sur A0 indique la direction. Mais les valeurs fournies sont exactes si le système est alimenté en 5V à travers une résistance de 10k. Or, selon le schéma de la carte tu as un pont diviseur constitué d'une résistance de 4,7k et 131k Donc je pense que tu devras faire des mesures toi même. Relever la tension fournie en fonction de la direction.

  19. #19
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 579
    Points : 56 602
    Points
    56 602
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par Syham81 Voir le message
    BBon bah supper ca marche
    On aurait souhaité voir le code qui marche, ça pourrait intéresser d'autres membres

    Et, en effet, tu testes 7 fois la même chose ??
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    analogRead(A0)==valeurs1||analogRead(A0)==valeurs2||analogRead(A0)==valeurs3

    De plus, on ne sait pas comment fonctionne ta girouette.

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    en SIN
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : en SIN

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 1
    Points
    1
    Par défaut
    J'ai une doc avec les valeurs a chaques direction mais en fonction de celles ci de quelle facon dois-je modifier mon programme ?

Discussions similaires

  1. Méthode d'étalonnage caméra
    Par black_hole dans le forum Traitement d'images
    Réponses: 9
    Dernier message: 28/04/2011, 17h33
  2. arduino et début en dev
    Par zerros dans le forum C
    Réponses: 1
    Dernier message: 23/02/2011, 12h32
  3. Information étalonnage controleurs de jeu
    Par check_acr dans le forum Windows XP
    Réponses: 0
    Dernier message: 04/11/2010, 11h24
  4. Problème fréquence et anémomètre
    Par kcallewaert dans le forum LabVIEW
    Réponses: 2
    Dernier message: 29/03/2010, 12h24
  5. Réponses: 3
    Dernier message: 01/02/2010, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo