// Mettre le grove ultrasonic ranger sur D2 et "viser" un écran // on déclare une constante correspondant à la vitesse du son dans l'air en m/s const float vitesse_du_son = 340.0; // On crée un entier qui servira de compteur initialisé à 0 pour arrêter les mesures int compt = 0; void setup() { //Initialisation du port série et définition du taux de transfert Serial.begin(9600); } // Création d'une boucle de mesures void loop() { // Démarage du compteur qui augmente d'une unité à chaque mesure compt += 1; // mesure de la durée entre l'émission sur trig et l'écho pinMode(2, OUTPUT); // Activation de la broche de trigger prise D2 en mode émission (OUTPUT) digitalWrite(2, LOW); // Mise du capteur en position initiale LOW delayMicroseconds(2); // Attendre 2 µs digitalWrite(2, HIGH); // Envoi d'une impulsion dans le trigger broche D2 delayMicroseconds(20); // Durée de l'impulsion 5 µs digitalWrite(2,LOW); // Remise de la broche de trigger en position initiale LOW pinMode(2,INPUT); // Initialisation de la broche d'écho en réception (INPUT) sur la prise D2 long duree_aller_retour_en_microsecondes = pulseIn(2,HIGH); // Calcul de la distance separant l'ensemble emetteur-récepteur de l'écran float distance_ecran_en_cm = duree_aller_retour_en_microsecondes*(vitesse_du_son/10000)/2; // Affichage de la mesure Serial.print("Mesure n°"); // affiche la mesure Serial.print(compt); // affiche le numéro de la mesure Serial.print("\t"); // affiche une tabulation Serial.print("Distance = "); // affiche Distance Serial.print(distance_ecran_en_cm,2); // affiche la distance en cm (avec deux chiffres après la virgule) Serial.println(" cm"); // affiche l'unité de la mesure delay(500); // laisse un délai de 500 ms entre chaque mesure if (compt >20){ exit(0) ; // impose l'arrêt des mesures après 20 mesures } }