Skip to Content

Wie man einen SHARP GP2Y0A710K0F IR-Abstandssensor mit Arduino verwendet

Wie man einen SHARP GP2Y0A710K0F IR-Abstandssensor mit Arduino verwendet

Der  SHARP GP2Y0A710K0F ist ein einfach zu verwendender IR-Abstandssensor mit einer extra langen Reichweite von 100 – 500 cm. Diese extra lange Reichweite macht ihn zu einer guten Alternative zu Ultraschall-Abstandssensoren.

In diesem Tutorial lernst du, wie der Sensor funktioniert und wie du ihn mit Arduino verwendest. Ich habe ein Schaltbild und Beispielcode beigefügt, damit du direkt mit deinem Sensor experimentieren kannst.

Wenn du nach einem günstigeren oder wasserdichten Abstandssensor suchst, schau dir den HC-SR04 oder JSN-SR04T an. In den untenstehenden Artikeln erkläre ich, wie diese Abstand-/Nähe-Sensoren funktionieren und wie du sie mit Arduino nutzen kannst.

Weitere Abstand-/Nähe-Sensoren:

Benötigte Teile

GP2Y0A710K0F Abstandssensor

Arduino

Arduino Uno

USB Data Sync cable Arduino

USB-Kabel für Arduino UNO

Dupont wire set

Dupont-Kabelsatz

Half_breadboard56a

Breadboard

Kondensator( 10 µF)

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Wie funktioniert ein IR-Abstandssensor?

Ein IR-Abstandssensor nutzt einen Infrarotlichtstrahl, der von einem Objekt reflektiert wird, um dessen Entfernung zu messen. Die Entfernung wird durch Triangulation des Lichtstrahls berechnet. Der Sensor besteht aus einer IR-LED und einem Lichtsensor oder PSD (Position Sensing Device).

Wenn der Lichtstrahl von einem Objekt reflektiert wird, erreicht der reflektierte Strahl den Lichtsensor und ein „optischer Fleck“ bildet sich auf dem PSD.

How an IR distance sensor works light emitter and detector PSD 710
IR-Sensor

Wenn sich die Position des Objekts ändert, ändern sich auch der Winkel des reflektierten Strahls und die Position des Flecks auf dem PSD. Siehe Punkt A und Punkt B im Bild unten.

How an IR distance sensor works
Beachte die Änderung des Winkels des reflektierten Strahls und die Position des „optischen Flecks“ auf dem PSD.

Der Sensor verfügt über eine eingebaute Signalverarbeitungsschaltung. Diese verarbeitet die Position des optischen Flecks auf dem PSD, um die Position (Entfernung) des reflektierenden Objekts zu bestimmen. Er gibt ein analoges Signal aus, das von der Position des Objekts vor dem Sensor abhängt.

Wie liest man einen IR-Abstandssensor aus?

IR-Abstandssensoren geben ein analoges Signal aus, das sich je nach Abstand zwischen Sensor und Objekt ändert. Aus dem Datenblatt geht hervor, dass die Ausgangsspannung des SHARP GP2Y0A710K0F von 2,5 V bei 100 cm Abstand bis 1,4 V bei 500 cm Abstand reicht. Das Diagramm zeigt auch, warum der nutzbare Messbereich bei 100 cm beginnt.

Beachte, dass die Ausgangsspannung für ein Objekt in 30 cm Entfernung gleich der Ausgangsspannung für ein Objekt in 160 cm Entfernung ist. Der nutzbare Messbereich beginnt daher nach dem Maximum bei etwa 100 cm oder 2,5 V.

GP2Y0A710K0F Output Characteristics
Entfernungsmesscharakteristik (Ausgang)

Das Diagramm zeigt auch den Nachteil dieser Sensoren: die Reaktion ist nicht linear. Mit anderen Worten, eine große Änderung der Ausgangsspannung entspricht nicht immer einer großen Änderung der Entfernung. Um die Entfernung zwischen Sensor und Objekt zu bestimmen, muss eine Funktion gefunden werden, die die Ausgangsspannung in einen Entfernungswert umwandelt.

Wenn man die Ausgangsspannung gegen den Kehrwert der Entfernung aufträgt, erhält man eine weitgehend lineare Beziehung. Für Entfernungen > 100 cm ergibt sich folgende Kurve.

GP2Y0A710K0F Output Characteristics Linear
Ausgangsspannung vs. Kehrwert der Entfernung 1/L (1/cm)

Entfernungsberechnung

Basierend auf den Daten aus dem SHARP-Datenblatt kann man die lineare Funktion berechnen:

y = 137500x + 1125

Dabei ist y die Ausgangsspannung in mV und x der Kehrwert der Entfernung in cm.

Das ergibt folgende Formel für die Entfernung zwischen Sensor und Objekt:

Entfernung (cm) = 1 / ((output_voltage_mV – 1125) / 137500)

Dies ist die Funktion, die in der  SharpIR-Bibliothek verwendet wird, die wir später nutzen werden. Beachte, dass diese Funktion nur auf Daten aus dem SHARP-Datenblatt basiert. Die Ausgangscharakteristik des Sensors kann von Sensor zu Sensor leicht variieren, daher können die Messwerte ungenau sein.

GP2Y0A710K0F Spezifikationen

Betriebsspannung 4,5 bis 5,5 V
Betriebsstrom 30 mA
Messbereich 100 bis 550 cm
Ausgangstyp Analog
Abmessungen 58 x 17,6 x 22,5 mm
Befestigungsloch 4,2 mm
Kosten Check price

Weitere Informationen findest du im Datenblatt hier.

Anschluss des GP2Y0A710K0F IR-Sensors an Arduino

Das folgende Schaltbild zeigt, wie du den GP2Y0A710K0F IR-Abstandssensor an einen Arduino anschließt.  Bitte beachten: Die Kabelfarben sind nicht intuitiv!

GP2Y0A710K0F-IR-Distance-Sensor-Arduino-Wiring-Diagram-Schematic
GP2Y0A710K0F IR-Abstandssensor mit Arduino Schaltbild

Diese Art von Abstandssensoren neigt zu etwas Rauschen, daher wird empfohlen, einen Kondensator zwischen Vcc und GND zu schalten. Das Datenblatt empfiehlt einen Kondensator von 10 µF oder mehr. Verbinde den positiven Anschluss des Kondensators mit der Vcc-Leitung und den negativen Anschluss mit der GND-Leitung (siehe Bild). Kondensatoren sind oft mit einem Streifen markiert, der den negativen Anschluss anzeigt. Der positive Anschluss ist oft länger als der negative.

GP2Y0A710K0F Anschlüsse

GP2Y0A710K0F Arduino
1 (Rot) GND
2 (Schwarz) 5V
3 (Gelb) 5V
4 (Grün) A0
5 (Blau) GND

Wenn dein Sensor andere Kabelfarben hat, überprüfe unbedingt das folgende Pinout. Der Vo-Pin ist mit dem analogen Eingang des Arduino (A0) verbunden.

GP2Y0A710K0F Pinout
GP2Y0A710K0F IR-Abstandssensor Pinbelegung

Der Stecker des Sensors ist nicht markiert, die Reihenfolge der Pins entspricht dem Sensor mit dem Logo nach oben.

Nachdem du den Sensor angeschlossen hast, schauen wir uns nun Beispielcode an.

Installation der SharpIR Arduino-Bibliothek

Die SharpIR-Bibliothek, geschrieben von Guillaume Rico und Thibaut Mauon, erleichtert die Arbeit mit SHARP IR-Sensoren erheblich. Sie enthält die Formeln, die benötigt werden, um die gemessene Ausgangsspannung in eine Entfernung in Zentimetern umzuwandeln. Aktuell unterstützt die Bibliothek folgende Sensoren: GP2Y0A02YK0F, GP2Y0A21YK0F, GP2Y0A710K0F und GP2YA41SK0F. Die neueste Version der Bibliothek kann hier heruntergeladen werden auf GitHub oder klicke auf den Button unten.

Du kannst die Bibliothek installieren, indem du im Arduino IDE zu Sketch > Include Library > Add .ZIP Library gehst.

Installing an Arduino library ZIP
Installation einer .ZIP Arduino-Bibliothek.

Der Autor der Bibliothek hat festgestellt, dass die Messwerte des Sensors stark schwanken können. Die Bibliothek löst dieses Problem, indem sie mehrere Messwerte hintereinander aufnimmt, Ausreißer verwirft und den Mittelwert bildet, um eine stabilere Entfernungsanzeige zu erhalten. Aktuell werden 25 Messwerte gemittelt, was etwa 53 ms dauert.

Beispielcode für SHARP GP2Y0A710K0F IR-Abstandssensor mit Arduino

Der folgende Beispielcode kann mit dem GP2Y0A710K0F Sensor verwendet werden und zeigt die gemessene Entfernung in Zentimetern im seriellen Monitor an.

Du kannst den Code kopieren, indem du auf den Button oben rechts im Codefeld klickst.

/*SHARP GP2Y0A710K0F IR distance sensor with 
  Arduino and SharpIR library example code. 
  More info: https://www.makerguides.com */

// Include the library:
#include "SharpIR.h"

// Define model and input pin:
#define IRPin A0
#define model 100500

// Variable to store the distance
int distance_cm;

/* Model :
  GP2Y0A02YK0F --> 20150
  GP2Y0A21YK0F --> 1080
  GP2Y0A710K0F --> 100500
  GP2YA41SK0F  --> 430
*/

// Create a new instance of the SharpIR class
SharpIR mySensor = SharpIR(IRPin, model);

void setup() {
  // Serial communication at a baud rate of 9600
  Serial.begin(9600);
}

void loop() {
  // Get a distance measurement and store it as distance_cm
  distance_cm = mySensor.distance();

  // Print the measured distance to the serial monitor
  Serial.print("Mean distance: ");
  Serial.print(distance_cm);
  Serial.println(" cm");

  delay(1000);
}

Beachte, dass wir den Sensor in diesem Beispiel mySensor genannt haben. Wenn du mehrere IR-Abstandssensoren verwenden möchtest, kannst du ein weiteres Sensorobjekt mit einem anderen Namen erstellen:  SharpIR mySensor2 = SharpIR(IRPin2, model);  Beachte, dass du in diesem Fall auch einen anderen Eingangspin für den zweiten Sensor verwenden musst.

Wenn die Ausgangsspannung unter 1,4 V oder über 3,3 V liegt, wird im seriellen Monitor „Mean distance: 0 cm“ angezeigt.

Fazit

In diesem Artikel habe ich dir gezeigt, wie der SHARP GP2Y0A710K0F IR-Abstandssensor funktioniert und wie du ihn mit Arduino verwenden kannst. Ich hoffe, du fandest es nützlich und informativ. Wenn ja, teile es bitte mit einem Freund, der sich auch für Elektronik interessiert!

Hinterlasse gerne Fragen im Kommentarbereich.