Arduino-code en video voor Sharp IR-afstandsmodule
In deze tutorial verkennen we hoe je de Sharp IR-afstandsmodule kunt gebruiken om afstanden te meten en acties te activeren op basis van de gedetecteerde afstand. Dit project laat zien hoe je de hardware aansluit en de Arduino-code schrijft om afstandsmetingen uit te lezen en een zoemer te activeren wanneer een object binnen een bepaald bereik wordt gedetecteerd. Je leert hoe je de componenten bedraadt en begrijpt de belangrijkste identificatoren in de code.

Voor dit project gebruiken we een Sharp IR-sensor die infrarood licht uitzendt en de afstand tot een object meet op basis van het gereflecteerde licht. Wanneer een object binnen het bereik wordt gedetecteerd, wordt de zoemer geactiveerd, wat een eenvoudige maar effectieve manier biedt om de mogelijkheden van de Sharp IR-module te demonstreren. Bekijk zeker de video voor een visuele handleiding over de opstelling en code (in video op 00:00).
Hardware uitgelegd
De belangrijkste componenten van dit project zijn een Sharp IR-afstandssensor, een Arduino-bord en een zoemer. De Sharp IR-sensor bestaat uit een zender en een ontvanger die samenwerken om afstanden te meten. Wanneer het infrarood licht van de zender een object raakt, reflecteert het terug naar de ontvanger, waardoor het de afstand kan berekenen op basis van de tijd die het licht nodig heeft om terug te keren.
De Arduino fungeert als controller, leest de afstandsmetingen van de IR-sensor en bestuurt de zoemer op basis van de metingen. De zoemer klinkt wanneer een object binnen een gespecificeerd bereik wordt gedetecteerd, waardoor deze opstelling nuttig is voor toepassingen zoals obstakeldetectie in robotica.
Datasheet-details
| Fabrikant | Sharp |
|---|---|
| Onderdeelnummer | GP2Y0A21YK0F |
| Logica/IO-spanning | 5 V |
| Voedingsspanning | 4,5 – 5,5 V |
| Uitgangsspanning | 0,4 – 2,5 V |
| Meetbereik | 10 – 80 cm |
| Reactietijd | 50 ms |
| Uitgangsstroom | 20 mA |
| Behuizing | Module |
| Opmerkingen / varianten | Beschikbaar in meerdere afstandsbereiken |
- Zorg voor een juiste voedingsspanning (4,5 – 5,5 V) om schade te voorkomen.
- Gebruik indien nodig een weerstand om de stroom te beperken.
- Houd de sensor schoon voor nauwkeurige metingen.
- Wees alert op interferentie van omgevingslicht.
- De bedrading moet stevig zijn om losse verbindingen te voorkomen.
Bedradingsinstructies

Om de Sharp IR-afstandsmodule te bedraden, verbind je de aardingspin van de module met de GND-pin op de Arduino. Verbind vervolgens de VCC-pin van de module met de 5V-pin op de Arduino. De signaaluitgangspin van de Sharp IR-module moet worden verbonden met pin 2 op de Arduino, die de afstandsgegevens zal lezen.
Voor de zoemer verbind je de langere pin (positief) met pin 8 op de Arduino en de kortere pin (negatief) met de GND. Zorg ervoor dat alle verbindingen stevig zijn en dat de componenten correct van stroom worden voorzien om een goede werking te garanderen.
Codevoorbeelden en uitleg
Hieronder staat een kort fragment uit de Arduino-code waarin we de pinnen definiëren en de sensor instellen. De identificator IR is gedefinieerd als de analoge pin die wordt gebruikt voor het sensorsignaal.
#define IR A0 // definieer signaalpin
SharpIR SharpIR(IR, model); // Initialiseer SharpIR met de gedefinieerde pin
Deze code initialiseert de Sharp IR-sensor op de gespecificeerde analoge pin. De identificator model specificeert het type sensor dat wordt gebruikt, wat in dit geval is ingesteld op 1080 voor het GP2Y0A21YK0F-model.
In de setup-functie starten we de seriële communicatie om de afstandsmetingen te monitoren:
void setup() {
Serial.begin(9600); // Initialiseer seriële communicatie
Serial.println("Robojax Sharp IR "); // Print bericht naar seriële monitor
}
De setup-functie initialiseert de seriële communicatie op 9600 baud, waardoor de Arduino afstandsgegevens naar de Seriële Monitor kan sturen voor observatie.
In de loop-functie lezen we de afstand van de sensor en printen deze:
void loop() {
int dis = SharpIR.distance(); // Lees de afstand
Serial.print("Gemiddelde afstand: "); // Print afstand naar seriële monitor
Serial.println(dis); // Geef de afstandsmeting weer
}
Dit fragment laat zien hoe je continu de afstand leest en naar de Seriële Monitor print. De variabele dis bevat de afstandswaarde die door de Sharp IR-sensor is gemeten.
Demonstratie / Wat te verwachten
Wanneer de opstelling compleet is, kun je verwachten dat de zoemer klinkt wanneer een object binnen het gespecificeerde bereik van de Sharp IR-sensor wordt gedetecteerd. De Seriële Monitor toont "Gemiddelde afstand" samen met de gemeten afstand in centimeters. Als er geen objecten binnen bereik zijn, geeft de monitor dat ook aan (in video op 02:30).
Veelvoorkomende valkuilen zijn onder meer ervoor zorgen dat de sensor correct is uitgelijnd en dat er geen obstakels zijn die het infrarood signaal blokkeren. Controleer ook dat de voeding stabiel is om grillige metingen te voorkomen.
Videotijdstempels
- 00:00 - Introductie van het project
- 02:30 - Demonstratie van de sensorfunctionaliteit
- 03:45 - Uitleg over de bedrading
- 05:00 - Code-uitleg
/*
* 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
}
Dingen die je misschien nodig hebt
-
Amazon
Hulpmiddelen en referenties
-
ExternSharp IR GP2Y0A51SK0F Datasheet (PDF)global.sharp
-
ExternSharp Library from RoboJob.comrobojax.com
Bestanden📁
Arduino-bibliotheken (zip)
-
Arduino library for sharp IR distance sensor
robojax-sharp_IR-master.zip
Datasheet (pdf)
-
Sharp IR GP2Y0A21YK Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A21YK_datasheet.pdf0.36 MB
Fritzing-bestand
-
sharp ir sensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz
Andere bestanden
-
Sharp GP2Y0A41SK0F Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A41SK0F_datasheet.pdf0.84 MB -
Sharp GP2Y0A710K0F Infrared distance sensor datashee
robojax_sharp_IR_GP2Y0A710K0F_datasheet.pdf0.33 MB