Code Arduino et vidéo pour le module de distance infrarouge Sharp
Dans ce tutoriel, nous allons explorer comment utiliser le module de distance Sharp IR pour mesurer des distances et déclencher des actions en fonction de la distance détectée. Ce projet montrera comment configurer le matériel et écrire le code Arduino pour lire les mesures de distance et activer un buzzer lorsqu'un objet est détecté dans une certaine plage de distance. Vous apprendrez comment câbler les composants ensemble et comprendre les principaux identifiants du code.

Pour ce projet, nous utiliserons un capteur IR Sharp qui émet de la lumière infrarouge et mesure la distance à un objet en se basant sur la lumière réfléchie. Lorsqu'un objet est détecté à portée, le buzzer se déclenchera, offrant un moyen simple mais efficace de démontrer les capacités du module IR Sharp. N'oubliez pas de consulter la vidéo pour un guide visuel sur le montage et le code (dans la vidéo à 00:00).
Le matériel expliqué
Les principaux composants de ce projet comprennent un capteur de distance Sharp IR, une carte Arduino et un buzzer. Le capteur IR Sharp se compose d'un émetteur et d'un récepteur qui travaillent ensemble pour mesurer les distances. Lorsque la lumière infrarouge émise par l'émetteur frappe un objet, elle se réfléchit vers le récepteur, ce qui lui permet de calculer la distance en fonction du temps nécessaire au retour de la lumière.
L'Arduino fait office de contrôleur, lisant les mesures de distance du capteur IR et commandant le buzzer en fonction des lectures. Le buzzer sonnera lorsqu'un objet sera détecté dans une plage spécifiée, rendant ce montage utile pour des applications telles que la détection d'obstacles en robotique.
Détails de la fiche technique
| Fabricant | tranchant |
|---|---|
| Numéro de pièce | GP2Y0A21YK0F |
| Tension logique/E/S | 5 V |
| Tension d'alimentation | 4.5 - 5.5 V |
| Tension de sortie | 0.4 - 2.5 V |
| Plage de mesure | 10 à 80 cm |
| Temps de réponse | 50 ms |
| Courant de sortie | 20 mA |
| Paquet | Module |
| Notes / variantes | Disponible en plusieurs plages de distance |
- Assurez-vous d'une alimentation correcte (4,5 - 5,5 V) pour éviter tout dommage.
- Utilisez une résistance pour limiter le courant si nécessaire.
- Maintenez le capteur propre pour des mesures précises.
- Soyez attentif aux interférences dues à la lumière ambiante.
- Le câblage doit être solidement fixé pour éviter les connexions intermittentes.
Instructions de câblage

Pour câbler le module de distance Sharp IR, connectez la broche de masse du module à la broche GND de l'Arduino. Ensuite, connectez la broche VCC du module à la broche 5V de l'Arduino. La broche de sortie du signal du module Sharp IR doit être reliée à la broche 2 de l'Arduino, qui lira les données de distance.
Pour le buzzer, connectez la broche la plus longue (positive) à la broche 8 de l'Arduino et la broche la plus courte (négative) au GND. Assurez-vous que toutes les connexions sont bien fixées et que les composants sont correctement alimentés pour garantir un fonctionnement correct.
Exemples de code et guide pas à pas
Voici un bref extrait du code Arduino où nous définissons les broches et configurons le capteur. L'identifiantIRest défini comme la broche analogique utilisée pour le signal du capteur.
#define IR A0 // define signal pin
SharpIR SharpIR(IR, model); // Initialize SharpIR with the defined pinCe code initialise le capteur IR Sharp sur la broche analogique spécifiée. L'identifiantmodelspécifie le type de capteur utilisé, qui dans ce cas est défini à 1080 pour le modèle GP2Y0A21YK0F.
Dans la fonction setup, nous démarrons la communication série pour surveiller les mesures de distance :
void setup() {
Serial.begin(9600); // Initialize serial communication
Serial.println("Robojax Sharp IR "); // Print message to serial monitor
}La fonction setup initialise la communication série à 9600 bauds, permettant à l'Arduino d'envoyer des données de distance au Moniteur série pour observation.
Dans la fonction loop, nous lisons la distance depuis le capteur et l'affichons :
void loop() {
int dis = SharpIR.distance(); // Read the distance
Serial.print("Mean distance: "); // Print distance to serial monitor
Serial.println(dis); // Output the distance measurement
}Cet extrait montre comment lire en continu la distance et l'afficher sur le moniteur série. La variablediscontient la valeur de la distance mesurée par le capteur infrarouge Sharp.
Démonstration / À quoi s'attendre
Une fois la configuration terminée, vous pouvez vous attendre à ce que le buzzer retentisse chaque fois qu'un objet est détecté dans la plage spécifiée du capteur IR Sharp. Le Moniteur série affichera "Distance moyenne" ainsi que la distance mesurée en centimètres. S'il n'y a aucun objet à portée, le moniteur l'indiquera également (dans la vidéo à 02:30).
Parmi les écueils courants figurent le fait de s'assurer que le capteur est correctement aligné et qu'aucune obstruction ne bloque le signal infrarouge. Vérifiez également que l'alimentation est stable afin d'éviter des mesures erratiques.
Horodatages vidéo
- 00:00- Introduction au projet
- 02:30- Démonstration du fonctionnement du capteur
- 03:45- Explication du câblage
- 05:00- Revue de code
/*
* Sharp IR (infrared) distance measurement module for Arduino
* Measures the distance in cm.
* Original library: https://github.com/guillaume-rico/SharpIR
* Watch video instruction for this code: https://youtu.be/GL8dkw1NbMc
*
* Full explanation of this code and wiring diagram is available at
* my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62
* Written by Ahmad Shamshiri on Feb 03, 2018 at 07:34
* in Ajax, Ontario, Canada. www.robojax.com
*
* Get this code and other Arduino codes from Robojax.com
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place.
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
*/
// Sharp IR code for Robojax.com
#include <SharpIR.h>
#define IR A0 // define signal pin
#define model 1080 // used 1080 because model GP2Y0A21YK0F is used
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor: 1080 for GP2Y0A21Y
// 20150 for GP2Y0A02Y
// 430 for GP2Y0A41SK
/*
2 to 15 cm GP2Y0A51SK0F use 1080
4 to 30 cm GP2Y0A41SK0F / GP2Y0AF30 series use 430
10 to 80 cm GP2Y0A21YK0F use 1080
10 to 150 cm GP2Y0A60SZLF use 10150
20 to 150 cm GP2Y0A02YK0F use 20150
100 to 550 cm GP2Y0A710K0F use 100550
*/
SharpIR SharpIR(IR, model);
void setup() {
// Sharp IR code for Robojax.com
Serial.begin(9600);
Serial.println("Robojax Sharp IR ");
}
void loop() {
// Sharp IR code for Robojax.com
delay(500);
unsigned long startTime=millis(); // takes the time before the loop on the library begins
int dis=SharpIR.distance(); // this returns the distance to the object you're measuring
// Sharp IR code for Robojax.com
Serial.print("Mean distance: "); // returns it to the serial monitor
Serial.println(dis);
//Serial.println(analogRead(A0));
unsigned long endTime=millis()-startTime; // the following gives you the time taken to get the measurement
Serial.print("Time taken (ms): ");
Serial.println(endTime);
// Sharp IR code for Robojax.com
}
Ce dont vous pourriez avoir besoin
-
Amazon
Ressources et références
-
ExterneBibliothèque Sharp de RoboJob.comrobojax.com
-
ExterneFiche technique Sharp IR GP2Y0A51SK0F (PDF)global.sharp
Fichiers📁
Bibliothèques Arduino (zip)
-
Bibliothèque Arduino pour capteur de distance IR Sharp
robojax-sharp_IR-master.zip
Fichier Fritzing
-
capteur ir précis GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz