Partage
  • Partager sur Facebook
  • Partager sur Twitter

conflit de capteurs ultrasons sur Arduino

Sujet résolu
    19 avril 2021 à 18:12:00

    Bonjour 

    J'ai un soucis de simulation SOUS tinkercad en faite c'est quAND je simule 2 capteurs ultrasons :

    un marche et un autre ne marche pas ( il affiche tout le temps 0cm) et pourtant un mis un delayMicroseconds(100); ( pour éviter les conflits des capteurs )

    entre la partie du programme des émissions des slaves ultrasonores des 2 capteurs ultrasons .

    digitalWrite(trigPin_droit, HIGH);

     delayMicroseconds(10);

     digitalWrite(trigPin_droit, LOW);

     delayMicroseconds(100);

     digitalWrite(trigPin_gauche, HIGH);

     delayMicroseconds(10);

     digitalWrite(trigPin_gauche, LOW);

    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2021 à 19:17:45

      Je serais plutôt d'avis de dire que le problème vient du coté de la réception et non de l'émission.

      Si tu as fais 2 appels à la fonction pulseIn pour lire le retour de tes 2 capteurs, le problème vient tout simplement de là.

      Il ne faut pas oublier que la fonction pulseIn est une fonction bloquante qui attend un pulse et retourne le temps d'attente avant l'arriver du pulse.

      Du coup, pendant que tu fais un pulseIn sur une pin pour surveiller cette pin, l'arduino attend de voir un pulse sur cette pin et il ne fait rien d'autres, ce qui signifie qu'il ne surveille pas l'autre pin du second capteur.

      Une fois le premier pulse reçu sur la pin surveillée, alors ton code passe au second appel pulseIn pour surveiller l'autre pin, mais il est peut-être déjà trop tard... il se pourrait très bien que la pulse soit déjà passer pendant le temps d'attente de la première pin.

      Et même en supposant que la pulse n'ai pas encore été reçue, ce second appel à pulseIn n'aura probablement pas à attendre bien longtemps (car le premier appel aura déjà attendu), donc la valeur retournée sera extrêmement faible.

      Pour corriger le problèmes, 2 solutions possibles :

      - soit tu de fais ta propre gestion de pulse pour surveiller 2 pins en parallèles

      - soit tu fais une gestion séquentiel des 2 capteurs (d'abord émission&réception d'un capteur, puis une fois ce capteur géré, tu passe au capteur suivant)

      -
      Edité par lorrio 21 avril 2021 à 8:09:49

      • Partager sur Facebook
      • Partager sur Twitter

      conflit de capteurs ultrasons sur 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