Arduino-Code und Video für das Sharp-IR-Abstandsmessmodul
In diesem Tutorial werden wir untersuchen, wie man das Sharp-IR-Abstandsmessmodul verwendet, um Entfernungen zu messen und Aktionen basierend auf der erkannten Entfernung auszulösen. Dieses Projekt zeigt, wie man die Hardware einrichtet und den Arduino-Code schreibt, um Distanzmessungen auszulesen und einen Summer zu aktivieren, wenn ein Objekt innerhalb eines bestimmten Abstands erkannt wird. Sie lernen, wie man die Komponenten miteinander verkabelt und die wichtigsten Bezeichner im Code versteht.

Für dieses Projekt verwenden wir einen Sharp-IR-Sensor, der Infrarotlicht aussendet und die Entfernung zu einem Objekt anhand des reflektierten Lichts misst. Wenn ein Objekt innerhalb der Reichweite erkannt wird, wird der Summer ausgelöst, was eine einfache, aber effektive Möglichkeit bietet, die Fähigkeiten des Sharp-IR-Moduls zu demonstrieren. Schauen Sie sich unbedingt das Video für eine visuelle Anleitung zum Aufbau und zum Code an (im Video bei 00:00).
Hardware erklärt
Die Hauptkomponenten dieses Projekts umfassen einen Sharp-IR-Abstandssensor, ein Arduino-Board und einen Summer. Der Sharp-IR-Sensor besteht aus einem Sender und einem Empfänger, die zusammenarbeiten, um Entfernungen zu messen. Wenn das Infrarotlicht vom Sender auf ein Objekt trifft, wird es zum Empfänger zurückreflektiert, wodurch die Entfernung anhand der Zeit berechnet werden kann, die das Licht für die Rückkehr benötigt.
Der Arduino fungiert als Steuergerät, liest die Distanzmesswerte vom IR-Sensor und steuert den Summer anhand dieser Messwerte. Der Summer ertönt, wenn ein Objekt innerhalb eines festgelegten Bereichs erkannt wird, wodurch dieser Aufbau für Anwendungen wie die Hinderniserkennung in der Robotik nützlich ist.
Datenblattdetails
| Hersteller | scharf |
|---|---|
| Teilenummer | GP2Y0A21YK0F |
| Logik-/E/A‑Spannung | 5 V |
| Versorgungsspannung | 4,5 - 5,5 V |
| Ausgangsspannung | 0.4 - 2.5 V |
| Messbereich | 10 - 80 cm |
| Antwortzeit | 50 ms |
| Ausgangsstrom | 20 mA |
| Paket | Modul |
| Notizen / Varianten | Erhältlich in mehreren Reichweiten. |
- Sorgen Sie für eine ordnungsgemäße Stromversorgung (4,5–5,5 V), um Schäden zu vermeiden.
- Verwenden Sie einen Widerstand, um bei Bedarf den Strom zu begrenzen.
- Halten Sie den Sensor sauber, um genaue Messwerte zu gewährleisten.
- Achten Sie auf Störungen durch Umgebungslicht.
- Die Verdrahtung muss sicher befestigt sein, um intermittierende Verbindungen zu verhindern.
Verdrahtungsanleitung

Um das Sharp-IR-Abstandsmodul zu verkabeln, schließen Sie den GND-Pin des Moduls an den GND-Pin des Arduino an. Verbinden Sie dann den VCC-Pin des Moduls mit dem 5V-Pin des Arduino. Der Signalausgang des Sharp-IR-Moduls sollte mit Pin 2 des Arduino verbunden werden, der die Entfernungsdaten liest.
Für den Summer verbinden Sie den längeren Pin (positiv) mit Pin 8 am Arduino und den kürzeren Pin (negativ) mit GND. Stellen Sie sicher, dass alle Verbindungen fest sind und die Komponenten korrekt mit Strom versorgt werden, um eine einwandfreie Funktion zu gewährleisten.
Codebeispiele & Schritt-für-Schritt-Anleitung
Unten folgt ein kurzer Auszug aus dem Arduino-Code, in dem wir die Pins definieren und den Sensor einrichten. Der BezeichnerIRwird als der analoge Pin definiert, der für das Sensorsignal verwendet wird.
#define IR A0 // define signal pin
SharpIR SharpIR(IR, model); // Initialize SharpIR with the defined pinDieser Code initialisiert den Sharp-IR-Sensor am angegebenen analogen Pin. Der Bezeichnermodelgibt den Typ des verwendeten Sensors an, der in diesem Fall für das Modell GP2Y0A21YK0F auf 1080 eingestellt ist.
In der Setup-Funktion starten wir die serielle Kommunikation, um die Abstandswerte zu überwachen:
void setup() {
Serial.begin(9600); // Initialize serial communication
Serial.println("Robojax Sharp IR "); // Print message to serial monitor
}Die setup()-Funktion initialisiert die serielle Kommunikation mit 9600 Baud und ermöglicht es dem Arduino, Abstandsdaten zur Beobachtung an den seriellen Monitor zu senden.
Innerhalb der Loop-Funktion lesen wir die Entfernung vom Sensor und geben sie aus:
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
}Dieser Auszug zeigt, wie man kontinuierlich die Entfernung ausliest und sie im Serial Monitor ausgibt. Die Variabledisenthält den vom Sharp-IR-Sensor gemessenen Abstandswert.
Vorführung / Was Sie erwartet
Wenn die Einrichtung abgeschlossen ist, können Sie damit rechnen, dass der Summer ertönt, sobald ein Objekt im angegebenen Bereich des Sharp-IR-Sensors erkannt wird. Der Serial Monitor zeigt Mean distance zusammen mit der gemessenen Entfernung in Zentimetern an. Wenn sich keine Objekte in Reichweite befinden, zeigt der Monitor das ebenfalls an (im Video bei 02:30).
Häufige Fehlerquellen sind, dass der Sensor nicht richtig ausgerichtet ist und Hindernisse das Infrarotsignal blockieren. Prüfen Sie außerdem, ob die Stromversorgung stabil ist, um schwankende Messwerte zu vermeiden.
Video-Zeitstempel
- 00:00- Einführung in das Projekt
- 02:30- Demonstration der Funktionalität des Sensors
- 03:45- Erklärung zur Verkabelung
- 05:00- Code-Durchgang
/*
* 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
}
Dinge, die Sie vielleicht brauchen
-
Amazon
Ressourcen & Referenzen
-
ExternSharp IR GP2Y0A51SK0F Datenblatt (PDF)global.sharp
-
ExternSharp Library von RoboJob.comrobojax.com
Dateien📁
Arduino-Bibliotheken (zip)
-
Arduino-Bibliothek für den scharfen IR-Abstandssensor
robojax-sharp_IR-master.zip
Fritzing-Datei
-
scharfer Infrarotsensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz