Capteur de distance à Ultrasons

ME007_400

Principe

Les capteurs de distance à ultrasons utilisent le principe de l’écho pour déterminer la distance à laquelle se trouve un objet :

  • Principe_Ultrasons_1Un court signal sonore est envoyé (inaudible car dans le domaine des ultrasons – environ 40kHz) ;
  • Le son est réfléchi par une surface et repart en direction du capteur ;
  • Ce dernier le détecte, une fois revenu à son point de départ.

La durée entre l’instant de l’émission et l’instant de la réception peut être mesurée. Le signal ayant parcouru 2 fois la distance entre le capteur et la surface (un aller-retour), on peut la calculer ainsi :

distance =\frac{vitesse\ du\ son}{2}\times{dur\'ee}

Remarque la vitesse du son est environ égale à 340 m/s.

Câblage

Cablage_UltrasonsComme la plupart des composants actifs, les capteurs de distance à ultrasons doivent être alimentés (5V le plus souvent).

Ils fonctionnent de la manière suivante :

  • l’Arduino envoie au capteur par un port numérique une courte impulsion (10μs environ) à l’entrée « trigger » du capteur ;
  • cela  déclenche l’émission d’un signal sonore très court (8 oscillations environ) ;
  • lorsque ce signal est parti, la sortie « echo » du capteur passe à l’état HIGH ;
  • dès que le signal sonore revient, il est détecté par le capteur dont la sortie « echo » repasse à LOW.

Principe_Ultrasons

Remarque : si le signal retour n’est pas détecté, la durée du signal « echo » est limitée à 36 ms environ (cela dépend des modèles), soit 6m environ.

 

Programme

Sans bibliothèque

Pour envoyer une impulsion sur le port de sortie ‘trigger« , on utilise la fonction digitalWrite.

Pour connaitre la durée de l’impulsion sur le port d’entrée « echo« , on utilise la fonction pulseIn.

Avec la bibliothèque NewPing

Si ce n’est pas encore fait, installer la bibliothèque NewPing.

Cette bibliothèque propose une prise en charge optimisée et simultanée de plusieurs capteurs de distance à ultrasons (jusqu’à 16!)

 

Exemple

Pour en savoir plus …

Bibliothèque NewPing

Quelques références courantes : HC-SR04, ME007, …

Vous aimerez aussi...

10 réponses

  1. jp dit :

    Bonjour et bravo pour votre site,
    J’ai une petite question… J’ai du mal à déterminer si le capteur ultrason délivre une information de type logique ou analogique ?
    Cordialement.

    • cfaury dit :

      Bonjour
      Étant donné que l’Arduino mesure un temps, il s’agit d’une grandeur analogique, numérisée par l’horloge, puis convertie en distance.
      CF

  2. jp dit :

    Merci pour l’info.

  3. Hippolyte dit :

    Bonjour,

    Merci pour cette présentation très détaillée!

    Je me pose toutefois une question au sujet des chronogrammes des signaux émis/reçus par le capteur : la durée « image » de la distance mesurée (signal « echo ») doit-elle toujours être prise entre le début de la réception du signal par le récepteur et la fin de l’émission du signal par l’émetteur? Dans un autre exemple que j’ai rencontré, cette durée est mesurée entre le début de ces deux signaux.

    Remerciements par avance,

    Hippolyte

    • cfaury dit :

      Bonjour
      Merci pour ce commentaire constructif.
      Il existe sans doute plusieurs modes de fonctionnement de ce type de capteur. J’ai de mon coté tenté d’interpréter certains documents publiés par des constructeurs de capteur (par exemple https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf) des documents pas vraiment satisfaisants à mon gout d’un point de vue pédagogique. Si vous me communiquez d’autres documents convaincants, j’enrichirai cet article.

      Cédrick

      • Hippolyte dit :

        Bonjour,

        Plusieurs collègues m’ont confirmé, certains de manière catégorique, que la mesure de la distance par ultrasons se fait bien par mesure de la durée entre la fin de l’émission et le début de la réception, conformément à ce que vous avez fait apparaître dans cet article.

        Merci pour votre réponse, et pour le lien vers le document constructeur.

        Hippolyte

  4. fab dit :

    Bonjour, merci pour le tuto.
    qu’est que c’est: US_ROUNDTRIP_CM
    Je l’utilise parce que piqué un exemple mais je ne l’ai pas trouvé dans les paramètre de newPing

  5. Gla dit :

    comment utiliser NewPing, si tu peux nous donner un schema avec un senseble de code que l’on pourra datpter

    • cfaury dit :

      Bonjour
      Avec ou sans Newping, le câblage est le même (voir celui proposé sur cet article).
      Quant à l’exemple de code, celui fourni avec la bibliothèque est très bien. Pour l’ouvrir, il suffit, depuis l’IDE Arduino, de faire Fichier>Exemples>NewPing>NewPingExample.
      CF

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code