Laboratoire SUPINFO de recherche en robotique

Utiliser un capteur à ultrason PING

Utiliser un capteur à ultrason PING

11 déc, 2014

Vous pouvez retrouver l’article qui va suivre sur le site de l’association RobotLabo qui est composé des étudiants du laboratoire robotique pour pouvoir profiter d’une meilleure lecture :

 

http://robotlabo.eu/pageTuto/tutoCapteurUltrason.html

 

Utiliser un capteur de distance ultrason

 

Un capteur à ultrason fonctionne en envoyant des ondes vers l’avant. Ces dernières vont se propager à la vitesse du son jusqu’à rencontrer un obstacle. Lors de cette rencontre la plupart des ondes vont être renvoyé vers le capteur qui va les recevoir. Il pourra ainsi calculer le temps entre l’émission et la réception des ondes. Ce temps peut être converti en distance car l’on connait la vitesse du son 340km/h ou encore 29 microsecondes par centimètre.

Pour obtenir la distance en centimètre il faut diviser le temps entre l’émission et la réception d’une onde par 29. Cette distance correspond à un aller-retour ne pas oublier de la diviser par deux pour récupérer la vraie distance !

 

Pour les branchements :

Brancher la broche GND à la masse de votre microcontrôleur souvent nommé par le même nom.

Brancher la broche 5V à la sortie 5v de votre arduino.

Brancher la broche SIG à une sortie digitale de votre arduino. Pour le code qui va suivre brancher la à la sortie 7.

8

 

Passons au code :

Ce code correspond au capteur PING la plupart des capteurs à ultrasons du marché suivent le même code.

 

const int pingPin = 7;

 

void setup() {

// initialise la communication série

Serial.begin(9600);

}

 

void loop()

{

// déclaration des variable pour le temps entre deux ondes et la distance

long duration, cm;

 

// Morceau de code permettant de réinitialiser le capteur pour l’envoie d’une nouvelle onde

pinMode(pingPin, OUTPUT);

digitalWrite(pingPin, LOW);

delayMicroseconds(2);

digitalWrite(pingPin, HIGH);

delayMicroseconds(5);

digitalWrite(pingPin, LOW);

 

// on utilise pulseIn pour recevoir une durée de type long

pinMode(pingPin, INPUT);

duration = pulseIn(pingPin, HIGH);

 

// On converti la durée en distance grâce à une fonction que vous trouverez plus bas

cm = microsecondsToCentimeters(duration);

 

Serial.print(cm);

Serial.print(« cm »);

Serial.println();

 

delay(100);

}

 

long microsecondsToCentimeters(long microseconds)

{

// Comme expliqué auparavant nous divisons la durée par la vitesse et par 2 pour avoir la distance d’un aller simple.

return microseconds / 29 / 2;

}

 

Et voilà vous pouvez voir sur votre terminal série la distance en centimètre du premier obstacle trouvé par le capteur.

 

Laisser un commentaire

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

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>