-
Notifications
You must be signed in to change notification settings - Fork 0
/
arduino_ultrason.ino
52 lines (36 loc) · 1.43 KB
/
arduino_ultrason.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* Constantes pour les broches */
const byte TRIGGER_PIN = 4; // Broche TRIGGER
const byte ECHO_PIN = 3; // Broche ECHO
/* Constantes pour le timeout */
const unsigned long TIMEOUT_MESURE = 6000; // 0.6ms = ~2*100mm à 340m/s
/* Vitesse du son dans l'air en mm/us pour avoir un résultat en millimètre*/
const float vitesse_son = 0.340;
/* Autres varialbes utilisées*/
long mesure = 0;
float distance_mm = 0.0;
void setup() {
/* Initialise le port série */
Serial.begin(9600);
/* Initialise les broches */
pinMode(TRIGGER_PIN, OUTPUT);
digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos
pinMode(ECHO_PIN, INPUT);
}
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) */
mesure = pulseIn(ECHO_PIN, HIGH, TIMEOUT_MESURE);
/* 3. Calcul la distance à partir du temps mesuré */
distance_mm = mesure / 2.0 * vitesse_son;
/*Renvoi de la distance de l'obstacle en mm et en cm*/
Serial.print("Distance: ");
Serial.print(distance_mm);
Serial.print("mm (");
Serial.print(distance_mm / 10.0, 2);
Serial.println("cm)");
/* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
delay(500);
}