Utiliser un capteur à Ultrason PING !

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 broche à la sortie 7.

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.