Note
Bonjour et bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts sur Facebook ! Plongez plus profondément dans l’univers de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes post-vente et les défis techniques grâce à l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des conseils et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux nouvelles annonces de produits et aux avant-goûts.
Réductions spéciales : Profitez de réductions exclusives sur nos derniers produits.
Promotions festives et concours : Participez à des concours et promotions de fêtes.
👉 Prêt à explorer et à créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !
Ultrason
Aperçu
Lorsque vous reculez, vous voyez la distance entre la voiture et les obstacles environnants pour éviter les collisions. L’appareil qui détecte la distance est un capteur à ultrasons. Dans cette expérience, vous apprendrez comment l’onde ultrasonore détecte la distance.
Composants nécessaires
Dans ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
---|---|---|
Elite Explorer Kit |
300+ |
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
---|---|
- |
|
Câblage
![../_images/06-ultrasonic_module_bb.png](../_images/06-ultrasonic_module_bb.png)
Schéma
![../_images/06_ultrasonic_schematic.png](../_images/06_ultrasonic_schematic.png)
Code
Note
Vous pouvez ouvrir le fichier
06-ultrasonic.ino
sous le cheminelite-explorer-kit-main\basic_project\06-ultrasonic
directement.Ou copiez ce code dans l’IDE Arduino.
Analyse du code
1. Initialisation du capteur ultrasonique et de l’écran LCD1602
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // initialiser l'objet écran LCD avec l'adresse I2C 0x27, 16 colonnes et 2 rangées // Définir les numéros de broches pour le capteur ultrasonique const int echoPin = 3; const int trigPin = 4; void setup() { pinMode(echoPin, INPUT); // Définir la broche echo en tant qu'entrée pinMode(trigPin, OUTPUT); // Définir la broche trig en tant que sortie lcd.init(); // initialiser l'écran LCD lcd.clear(); // effacer l'écran LCD lcd.backlight(); // Assurer que le rétroéclairage est activé }
2. Afficher la distance sur l’écran LCD1602
void loop() { float distance = readDistance(); // Appeler la fonction pour lire les données du capteur et obtenir la distance lcd.setCursor(0, 0); // Placer le curseur à la ligne 1, colonne 1. C'est ici que les caractères seront affichés lcd.print("Distance:"); // Afficher "Distance:" sur l'écran LCD lcd.setCursor(0, 1); // Placer le curseur à la ligne 1, colonne 0 lcd.print(" "); // Ajouter des espaces après les caractères pour effacer les précédents qui pourraient encore rester lcd.setCursor(7, 1); // Placer le curseur à la ligne 1, colonne 7 lcd.print(distance); // Afficher sur l'écran LCD la valeur de la distance convertie depuis le temps entre l'envoi et la réception du ping lcd.setCursor(14, 1); // Placer le curseur à la ligne 1, colonne 14 lcd.print("cm"); // Afficher l'unité "cm" delay(800); // Attendre 800 millisecondes avant de répéter la boucle }
3. Conversion du temps en distance
float readDistance(){// ...}Ici, « PING » fait référence au processus où le capteur ultrasonique envoie une impulsion ultrasonique (ou « ping ») et attend ensuite son écho.
Le PING est déclenché par une impulsion HIGH de 2 microsecondes ou plus. (Donner une courte impulsion LOW avant pour assurer une impulsion HIGH propre.)
digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);La broche echo est utilisée pour lire le signal du PING, une impulsion HIGH dont la durée est le temps (en microsecondes) entre l’envoi du ping et la réception de l’écho de l’objet. Nous utilisons la fonction suivante pour obtenir la durée.
pulseIn(echoPin, HIGH);La vitesse du son est de 340 m/s ou 29 microsecondes par centimètre.
Cela donne la distance parcourue par le ping, aller-retour, donc nous divisons par 2 pour obtenir la distance de l’obstacle.
float distance = pulseIn(echoPin, HIGH) / 29.00 / 2; // Formule : (340m/s * 1us) / 2