ultra sons HC-SR04 présentation rapide du capteur
Remarque : usage
Conseil d'usage
Ce capteur peut s'utiliser avec une librairie dédiée, mais il est plus pédagogique de ne pas l'utiliser.
Dans ce cas, le capteur donne le temps pour l'aller -retour , on multipliant par la vitesse des ultrasons dans le milieu, on obtient la distance pour 'aller retour. Il suffit ensuite de diviser par deux .
Branchements
Exemple : Pour une arduino uno
1
2
//on définit les constantes utiles 3
const int USTrig = 7; // Déclencheur sur la broche 7
4
const int USEcho = 8; // Réception sur la broche 8
5
const int VITESSE = 331;
6
7
//on dprepare les variables utilisees plus tard8
float temps; //Nombre décimal dans lequel on stockera la durée
9
float distance ; // Nombre décimal que l'on utilisera pour calculer la distance de l'obstacle
10
11
12
//fonction d'initialisation, executee une seule fois 13
void setup()
14
{15
//borne en sortie pour l'envoi du message16
pinMode(USTrig, OUTPUT);
17
//borne en entree pour la reception18
pinMode(USEcho, INPUT);
19
//en n'evoie pas de signal20
digitalWrite(USTrig, LOW);
21
//on ouvre le port serie pour communiquer22
Serial.begin(9600);
23
}
24
25
// The loop function is called in an endless loop26
void loop()
27
{28
29
// 1. Un état haut de 20 microsecondes est mis sur la broche "Trig"30
digitalWrite(USTrig, HIGH);
31
delayMicroseconds(20); //on attend 20 µs
32
// 2. On remet à l'état bas la broche Trig33
digitalWrite(USTrig, LOW);
34
35
// 3. On lit la durée d'état haut sur la broche "Echo"36
unsigned long duree = pulseIn(USEcho, HIGH);
37
38
if(duree > 30000)
39
{40
// si la durée est supérieure à 30ms, l'onde est perdue41
Serial.println("Onde perdue, mesure échouée !");
42
}
43
else44
{45
46
47
48
49
distance = VITESSE*duree/2/1000;
50
Serial.print("Duree = ");
51
Serial.println(duree); //affiche le temps de vol d'un trajet en secondes
52
Serial.print("Distance = ");
53
Serial.println(distance); //affiche la distance mesurée (en mètres)
54
}
55
56
// petite pause57
delay(2000);
58
}
59
60
