Partage
  • Partager sur Facebook
  • Partager sur Twitter

capteur hc sr04 arduino

    26 mars 2015 à 14:21:59

    Bonjour tout le monde, pour les tpe ( pour demain) on prépare un gant pour aveugle qu'on doit programmer. Malheureusement apres plusieurs tentatives on a toujours pas trouvé le bon code. est ce que quelqun pourrait nous aider? Le principe utilise 2 capteurs à ultrasons et 2 vibreur, quand les capteurs repèrent une distance inferieur a 2,5 m, ils donnent l'ordre au vibreurs qui leurs son attribuer de vibrer. voila le code qu'on a deja fait:

    int trig = 12;
    int echo = 11;
    long lecture_echo;
    long cm;
    int trig2 = 13;
    int echo2 = 14;
    long lecture_echo2;
    long cm2;

    void setup()
    {
    pinMode(trig,OUTPUT);
    digitalWrite(trig,LOW);
    pinMode(echo,INPUT);
    Serial.begin(9600);
    pinMode(49,OUTPUT);
    pinMode(48,INPUT);
    pinMode(47,OUTPUT);
    pinMode(46,INPUT);
    }

    void loop()
    {
    digitalWrite(trig,HIGH);
    delayMicroseconds(10);
    digitalWrite(trig,LOW);
    lecture_echo = pulseIn(echo,HIGH);
    cm = ( lecture_echo * 0,34 ) / 2;
    Serial.print("distancem : ");
    Serial.println(cm);
    delay(1000);
    digitalWrite(trig2,HIGH);
    delayMicroseconds(10);
    digitalWrite(trig2,LOW);
    lecture_echo2 = pulseIn(echo2,HIGH);
    cm2 = ( lecture_echo2 * 0,34 ) / 2;
    Serial.print("distancem2 : ");
    Serial.println(cm);
    delay(1000);
    if( cm < 400 )
    {
    digitalWrite(49,HIGH);
    }
    else
    {
    digitalWrite(49,LOW);
    }
    if( cm2 < 400 )
    {
    digitalWrite(47,HIGH);
    }
    else
    {
    digitalWrite(47,LOW);
    }
    }

    • Partager sur Facebook
    • Partager sur Twitter
      26 mars 2015 à 15:49:30

      bonjour,

      déjà présente ton code dans une balise code, c'est plus lisible. (petit exemple:)

      //blink.ino
      
      #define LED 13
      
      void setup(){
      	pinMode(LED, OUTPUT);
      }
      
      void loop(){
      	digitalWrite(LED, HIGH);
      	delay(500);
      	digitalWrite(LED, LOW);
      	delay(500);
      }

      c'est indenté, compacté sur la hauteur, et coloré. bref plus lisible quoi...

      1e chose bizarre, je vois 400 dans tes comparaisons qui sont censées actionner les vibreurs. t'avais pas dit que tu faisais une coupure à 2.50m? parce que 400cm ça fait 4m...

      2e chose: tu peux pas passer tes capteurs en mode continu? histoire de pas avoir à répéter les séquences de mesure?

      3e chose: ça bug où? non parce que là pour moi c'est censé marcher...

      -
      Edité par remace 26 mars 2015 à 15:51:48

      • Partager sur Facebook
      • Partager sur Twitter

      oui. non. enfin je regarde et je te dis.

        26 mars 2015 à 15:55:41

        Tu dis utiliser 2 capteur et 2 vibreurs sur les pin 11, 12, 13 ,14. A quoi servent les pin47 et  49?
        • Partager sur Facebook
        • Partager sur Twitter
          26 mars 2015 à 18:22:21

          bonjour, 

          merci pour cette réponse, je vous avoue ne pas tellement m'y connaitre. J'ai commencé dans le cadre de mon tpe, regardé quelques tuto sur internet, et tapé ce code en espérant que cela marche. Le problème est que après avoir téleverser le code dans l'arduino, les vibreurs se mettent en marche mais ne s'arretent pas, quand je vais sur le moniteur de série celui ci m'affiche " 17" en boucle, j'en conclu donc qu'il doit y avoir des erreurs à certains endroits, mais je ne sais pas où... 

          Par rapport au 400 cm, c'est une erreur, c'est bien 250 cm, merci pour la remarque. Enfin si j'ai bien compris les pin " 47" et " 49" servent elles a alimenter les moteurs vibrants. 

          merci

          • Partager sur Facebook
          • Partager sur Twitter
            26 mars 2015 à 18:28:14

            Si cela peut aider, voici un petit aperçu 
            • Partager sur Facebook
            • Partager sur Twitter
              26 mars 2015 à 19:04:09

              Je pense que le problème vient de ta formule de calcul de la distance.

              Si tu comprend cette formule elle te permet de calculer la distance parcourue par l'ultrason jusqu'à l'obstacle  en fonction de la vitesse

              du son et du temps qu'a mis l'onde a faire l'aller retour, avec d = v x t :

              - t correspond à ta variable lecture_echo en micro secondes

              - v à la vitesse du son 340m/seconde,dans ton cas il faut convertir cette vitesse en cm par micro secondes (ça ne donne pas 0.34)

              Ensuite tu divise la distance obtenue  par 2 car l'onde à fait l'aller retour, elle a donc parcouru 2 fois la distance.

              • Partager sur Facebook
              • Partager sur Twitter

              capteur hc sr04 arduino

              × 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