dans ce projet, je vais vous présenter le capteur à ultrasons HC-SR04. Il fonctionne en envoyant des ondes sonores de l’émetteur, qui rebondissent ensuite sur un objet, puis reviennent au récepteur. Vous pouvez déterminer à quelle distance se trouve quelque chose avant le temps nécessaire pour que les ondes sonores reviennent au capteur. Nous allons aller droit au but!,
Connexions
Les connexions sont très simple:
- VCC 5V
- GND GND
- Trig à la broche 9
- Echo à la broche 10
Vous pouvez effectivement se connecter Trig et de l’Écho à celle de broches que vous voulez, 9 et 10 sont juste celles que j’utilise.
Code
nous avons d’Abord définir les broches qui Trig et Echo sont connectés.,
const int trigPin = 9; const int echoPin = 10;
Ensuite, nous déclarons 2 flotteurs, de la durée et de la distance, qui va contenir la longueur de l’onde sonore et la distance de l’objet.
float duration, distance;
ensuite, dans la configuration, nous déclarons la broche Trig comme sortie, la broche Echo comme entrée et démarrons les communications série.
void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); }
Maintenant, dans la boucle, ce que nous faisons est d’abord définir les trigPin faible pour les 2 microsecondes juste pour s’assurer que la goupille en bas en premier., Ensuite, nous le réglons haut pendant 10 microsecondes, ce qui envoie une rafale sonore de 8 cycles de l’émetteur, qui rebondit ensuite d’un objet et frappe le récepteur(qui est connecté à la broche Echo).
lorsque les ondes sonores frappent le récepteur, la broche D’écho devient haute pendant la durée pendant laquelle les ondes se déplaçaient. Pour obtenir cela, nous pouvons utiliser une fonction Arduino pratique appelée pulseIn (). Il faut 2 arguments, la broche que vous écoutez(dans notre cas, la broche Echo) et un état(haut ou bas)., Ce que la fonction fait, c’est attendre que la broche aille quel que soit l’état que vous mettez, commence à chronométrer, puis arrête la synchronisation lorsqu’elle passe à l’autre État. Dans notre cas, nous mettrions haut puisque nous voulons commencer à chronométrer lorsque la broche Echo va haut. Nous stockerons le temps dans la variable de durée. (Il retourne le temps en microsecondes)
duration = pulseIn(echoPin, HIGH);
Maintenant que nous avons le temps, nous pouvons utiliser l’équation de la vitesse = distance/temps, mais nous allons le faire de temps x vitesse = distance parce que nous avons la vitesse. Quelle vitesse avons-nous? La vitesse du son, bien sûr!, La vitesse du son est d’environ 340 mètres par seconde, mais comme la fonction pulseIn() renvoie le temps en microsecondes, nous devrons également avoir une vitesse en microsecondes, ce qui est facile à obtenir. Une recherche rapide sur Google pour « Vitesse du son en centimètres par microseconde » dira que c’est le cas .0343 c/µS. Vous pourriez faire le calcul, mais la recherche est plus facile. Quoi qu’il en soit, avec cette information, nous pouvons calculer la distance! Il suffit de multiplier la durée .0343 puis divisez – le par 2 (car les ondes sonores se déplacent vers l’objet et le dos). Nous allons stocker cela dans la variable distance.,
distance = (duration*.0343)/2;
le reste consiste simplement à imprimer les résultats sur le moniteur série.
Serial.print("Distance: "); Serial.println(distance); delay(100); }
l’image de la pochette par: Sparkfun
Laisser un commentaire