Commit e9250d90e27183aa02cf40994e93203155fead16
1 parent
4ad9c17b
Ajout du fichier de programmation des capteurs de distance : version non fonctionnelle
Showing
1 changed file
with
52 additions
and
0 deletions
Show diff stats
... | ... | @@ -0,0 +1,52 @@ |
1 | +/* | |
2 | + * Code d'exemple pour un capteur à ultrasons HC-SR04. | |
3 | + */ | |
4 | + | |
5 | +/* Constantes pour les broches */ | |
6 | +const byte TRIGGER_PIN = 9; // Broche TRIGGER | |
7 | +const byte ECHO_PIN = 8; // Broche ECHO | |
8 | + | |
9 | +/* Constantes pour le timeout */ | |
10 | +const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s | |
11 | + | |
12 | +/* Vitesse du son dans l'air en mm/us */ | |
13 | +const float SOUND_SPEED = 340.0 / 1000; | |
14 | + | |
15 | +/** Fonction setup() */ | |
16 | +void setup() { | |
17 | + | |
18 | + /* Initialise le port série */ | |
19 | + Serial.begin(115200); | |
20 | + | |
21 | + /* Initialise les broches */ | |
22 | + pinMode(TRIGGER_PIN, OUTPUT); | |
23 | + digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos | |
24 | + pinMode(ECHO_PIN, INPUT); | |
25 | +} | |
26 | + | |
27 | +/** Fonction loop() */ | |
28 | +void loop() { | |
29 | + | |
30 | + /* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */ | |
31 | + digitalWrite(TRIGGER_PIN, HIGH); | |
32 | + delayMicroseconds(10); | |
33 | + digitalWrite(TRIGGER_PIN, LOW); | |
34 | + | |
35 | + /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */ | |
36 | + long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT); | |
37 | + | |
38 | + /* 3. Calcul la distance à partir du temps mesuré */ | |
39 | + float distance_mm = measure / 2.0 * SOUND_SPEED; | |
40 | + | |
41 | + /* Affiche les résultats en mm, cm et m */ | |
42 | + Serial.print("Distance: "); | |
43 | + Serial.print(distance_mm); | |
44 | + Serial.print("mm ("); | |
45 | + Serial.print(distance_mm / 10.0, 2); | |
46 | + Serial.print("cm, "); | |
47 | + Serial.print(distance_mm / 1000.0, 2); | |
48 | + Serial.println("m)"); | |
49 | + | |
50 | + /* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */ | |
51 | + delay(500); | |
52 | +} | ... | ... |