Étape 3: Le code
Fonctionnement détaillé du capteur ultrasonique Distance introuvable dans le HC_SR04 feuille de données.
Le code utilisé dans ce robot est vraiment simple. Dans la boucle principale (loop()), il mesure la distance en appelant la fonction getDistance().
Si la distance entre le robot et l’obstacle (dans ce cas, mes mains) est trop étroite (disons de 10cm), le robot marche arrière pour 300 millisecondes et au hasard, tourner à gauche ou à droite pour un autre de 200 millisecondes.
Voici comment le « getDistance() » fonction de travail :
Il envoie un front montant sur la broche « Trig » par le premier envoi de basse et suivie par le haut. Après 10 microsecondes, il abaisse à nouveau le signal « Trig ». Cela rend le capteur d’envoyer des impulsions ultrasoniques. Plus tard, il surveille l’écho réfléchi par les obstacles. Si l’obstacle est plus proche, il faut moins de temps pour recevoir les echos. En revanche, si l’obstacle est éloigné, il prend plus de temps à attendre pour les echos. Le capteur envoie une impulsion forte sur la broche « Echo » et la largeur d’impulsion est égal au délai aller-retour des impulsions ultrasoniques (en microsecondes).
Puisque la vitesse du son est de 340 mètres/seconde, la distance peut être calculée en D = 0,5 * pulse_width * 340 m/s * 1e-6
Le programme complet est répertorié ici :