From e9250d90e27183aa02cf40994e93203155fead16 Mon Sep 17 00:00:00 2001 From: rfoucaul Date: Sun, 21 Apr 2019 19:39:36 +0200 Subject: [PATCH] Ajout du fichier de programmation des capteurs de distance : version non fonctionnelle --- Programmation/Distance/Distance.ino | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+), 0 deletions(-) create mode 100644 Programmation/Distance/Distance.ino diff --git a/Programmation/Distance/Distance.ino b/Programmation/Distance/Distance.ino new file mode 100644 index 0000000..c3c31fe --- /dev/null +++ b/Programmation/Distance/Distance.ino @@ -0,0 +1,52 @@ +/* + * Code d'exemple pour un capteur à ultrasons HC-SR04. + */ + +/* Constantes pour les broches */ +const byte TRIGGER_PIN = 9; // Broche TRIGGER +const byte ECHO_PIN = 8; // Broche ECHO + +/* Constantes pour le timeout */ +const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s + +/* Vitesse du son dans l'air en mm/us */ +const float SOUND_SPEED = 340.0 / 1000; + +/** Fonction setup() */ +void setup() { + + /* Initialise le port série */ + Serial.begin(115200); + + /* Initialise les broches */ + pinMode(TRIGGER_PIN, OUTPUT); + digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos + pinMode(ECHO_PIN, INPUT); +} + +/** Fonction loop() */ +void loop() { + + /* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */ + digitalWrite(TRIGGER_PIN, HIGH); + delayMicroseconds(10); + digitalWrite(TRIGGER_PIN, LOW); + + /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */ + long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT); + + /* 3. Calcul la distance à partir du temps mesuré */ + float distance_mm = measure / 2.0 * SOUND_SPEED; + + /* Affiche les résultats en mm, cm et m */ + Serial.print("Distance: "); + Serial.print(distance_mm); + Serial.print("mm ("); + Serial.print(distance_mm / 10.0, 2); + Serial.print("cm, "); + Serial.print(distance_mm / 1000.0, 2); + Serial.println("m)"); + + /* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */ + delay(500); +} -- libgit2 0.21.2