Mesure de distance par ultrasons : principe physique
Au travers d'un transducteur piézoélectrique, le capteur émet une onde ultrasonore brève dite "Burst". Pour se faire l'électronique du capteur crée le plus souvent un signal carré oscillant d'une dizaine de période à une fréquence proche de 40kHz (ultrason -> Il est important de travailler dans un range de fréquence spécifique où le transducteur piézoélectrique a une bonne réponse). A partir du moment où il émet l'onde, le capteur va mesurer le temps qu'il doit attendre pour en recevoir l'écho. C'est à dire que l'onde rebondisse sur un objet et lui revienne. Le rebond sera écouté au travers d'un transducteur piézoélectrique monté en récepteur avec une chaîne d'amplification et de filtrage derrière.
L'onde sonore se déplaçant à environ 340m/s, l'onde devant parcourir deux fois le chemin la séparant de l'obstacle (le chemin aller et le chemin retour après le rebond), la distance entre le capteur et l'obstacle devient aisément calculable : temps entre l'émission et la réception (en seconde) x 340 (mètres par seconde) / 2.
Le système repose donc sur une onde ulra-sonore qui est émise et dont on attend l'écho. Ce qui implique plusieurs limitations :
void setup() {
Serial.begin (9600);
pinMode(13, OUTPUT); //13 est relié sur l'émetteur
pinMode(12, INPUT); //12 est relié au récepteur
}
void loop() {
float distance,duration;
digitalWrite(13, LOW);
delayMicroseconds(2);
digitalWrite(13, HIGH);
delayMicroseconds(10);
digitalWrite(13, LOW);
duration = pulseIn(12, HIGH); //le temps de l'aller-retour est obtenu en microseconds
distance=34000*duration/(2*1000000);
Serial.print(distance);
Serial.println(" cm");
delay(100); // 100 ms entre deux mesures
}