Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vitesse vélo

    11 mars 2014 à 14:57:22

    Bonjour je travaille actuellement sur la conception d'un programme ( pour l'école   ) pour calculer la vitesse d'un vélo, pour cela j'utilise  un capteur et un scotch sur le cadre de la roue.
    Mais je ne peux pas le tester en ce moment n'ayant pas le matériel  =( .
    C'est pourquoi je voudrais vous demander si vous pensez que mon programme puisse fonctionner.
    Il faut savoir que je n'ai pas commencé l'affichage et que je pense que mon reset du chronometre est mauvais :/
    Merci de votre aide  8)

    -
    Edité par mions69 11 mars 2014 à 14:57:38

    • Partager sur Facebook
    • Partager sur Twitter
      11 mars 2014 à 15:40:12

      On voudrais bien t'aider mais sans le programme ça risque d'être compliqué ...

      Et sinon, utilise plutôt un capteur REED et un aimant, c'est plus précis.

      • Partager sur Facebook
      • Partager sur Twitter
      2b||!2b   sqrt(4b²)
        11 mars 2014 à 16:19:04

        ah désolé ^^

        const int CapteurV = 9;

        int chrono = 0;

        int chronoD = 0;

        int changementE = 0;

        int vitesse = 0;

        int rotation = 0;

        int duree_test = 3000; // test 3 secondes

        int CapteurVState =0; // état du capteur

        void setup()          //fonction d'initialisation de la carte

        {

         pinMode (CapteurV,INPUT);

         }

        void loop()           //fonction principale, elle se répète (s’exécute) à l'infini

        { chronoD = millis();

        if (chronoD < duree_test) { // chronomètre 3 secondes

          CapteurVState = digitalRead(CapteurV);

        if (CapteurVState == HIGH ) { 

        changementE = changementE + 1 ; // on compte les changements

        }

        else 

        {  changementE = changementE; } // aucun changement  

        }

        else

        { rotation = changementE * 20; // vitesse tr/min   

        }

        vitesse = 3.14 * 0.60 * rotation; // m/s avec D= 60 cm

        chronoD = 0; // Faut-il faire ceci pour réinitialiser le chrono ?  

        }

        • Partager sur Facebook
        • Partager sur Twitter
          11 mars 2014 à 17:32:16

          Alors pour te mettre sur la voie, le pseudo-code :

          Définition du périmètre
          
          loop()
            Attente du capteur
            Capture du temps courant
           
            Attendre la fin du capteur
            Attente du capteur 
          
            Différence de temps
            Calcul de la vitesse en m/s avec Temps * Périmètre




          • Partager sur Facebook
          • Partager sur Twitter
          2b||!2b   sqrt(4b²)
            11 mars 2014 à 18:44:11

            Merci de ton aide :)

            Mon programme ne marche donc pas ?

            tu me conseille donc de mesurer le temps entre le passage a l'état haut du capteur ?

            • Partager sur Facebook
            • Partager sur Twitter
              11 mars 2014 à 19:02:01

              Si tu veux qu'on lise ton code, met le dans une balise code (le bouton <\>) car là c'est pas trop agréable à lire...

              • Partager sur Facebook
              • Partager sur Twitter

              Retrouvez moi sur mon blog et ma chaine Youtube !

                11 mars 2014 à 21:00:26

                mions69 a écrit:

                Mon programme ne marche donc pas ?

                Apparemment non, tu est partit du mauvais coter, essaye d'en faire un autre comme je t'ai dis.

                mions69 a écrit:

                tu me conseille donc de mesurer le temps entre le passage a l'état haut du capteur ?

                Non, de mesurer combien de temps le capteur met à faire un tour, puis à convertir ce temps en vitesse en le multipliant par le périmètre de ta roue.
                • Partager sur Facebook
                • Partager sur Twitter
                2b||!2b   sqrt(4b²)
                  12 mars 2014 à 13:07:11

                  Tout d'abord merci a tous,

                  J'avoue mon programme est illisible :)

                  J'ai oublié de préciser que je programme avec arduino et je ne sait pas si il est possible de mesure le temps entre 2 états haut du capteur ( ce qui correspond a un tour ) :(

                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 mars 2014 à 15:54:58

                    Tiens, une petite aide :
                    while(digitalRead(pinCapteur) == LOW); //Attente du capteur
                    while(digitalRead(pinCapteur) == HIGH); //Attendre la fin du capteur

                    A toi de mettre le code autour pour prendre le temps. Si tu veux plus d'aide, n'hésite pas !

                    • Partager sur Facebook
                    • Partager sur Twitter
                    2b||!2b   sqrt(4b²)
                      12 mars 2014 à 17:10:52

                      ah oui merci diode :p

                      si je met un chrono dans chaque boucle et que j'additionne les 2 chronos alors normalement je pourrais calculer la vitesse non ? :D

                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 mars 2014 à 19:42:12

                        Presque, mais tu complique encore trop : essaye de faire juste un seul chrono.

                        En gros :
                        T'attend l'arriver du capteur, puis qu'il reparte (début du tour) -> tu lance le chrono.
                        Tu attend encore le capteur (fin du tour) -> arrêt du chrono, calcule de vitesse.
                        Et tu recommence.
                        • Partager sur Facebook
                        • Partager sur Twitter
                        2b||!2b   sqrt(4b²)
                          13 mars 2014 à 9:45:09

                          ok merci je vais réfléchir sur ça alors :)
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Vitesse vélo

                          × 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