In diesem Tutorial möchte ich den Infrarot Abstandssensor TCRT5000 erläutern.
Auf der Rückseite des Sensors befindet sich ein Drehpotentiometer, mit welchem man den Schwellwert für den digitalen Pin einstellen kann.
Ich habe bereits einen Abstandssensor beschrieben, nämlich den Ultraschall Sensor Arduino Lektion 9: Ultraschall Modul HC-SR04.
Bezug
Den Infrarot Abstandssensor kann man bei eBay.de* oder aber auch bei amazon.de* für ca. 3 € (exkl. Versandkosten) beziehen.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Technische Daten des TCRT5000
- Betriebsspannung – 3.3V bis 5V
Die Sensorreichweite wird in den meisten Shops mit 1 mm bis 25 mm angegeben. Leider entzieht es sich meinem Verständnis, wie diese darauf kommen. Der Sensor hat in dem mir vorliegendem Fall eine Reichweite von ca. 1 mm bis maximal 60 cm.
Anschluß
Der Infrarot Abstandssensor TCRT5000 verfügt über 4 Pins welche auf der Rückseite beschriftet sind. Der Sensor wird wiefolgt mit dem Arduino UNO verbunden:
IR Abstandssensor | Arduino UNO |
---|---|
A0 | analoger Pin A0 |
D0 | digitaler Pin D2 |
GND | GND |
VCC | 5V |
Die Besonderheit des digitalen Pins ist es, das dieser auf HIGH gesetzt wird, wenn das eingestellte Minimum des Sensors (über den Drehpotentiometer) erreicht wurde.
In meinem nachfolgenden Aufbau habe ich den digitalen Pin D2 nicht angeschlossen, ich wollte zunächst einmal die Reichweite testen.
Schaltung
In der eigentlichen Schaltung habe ich eine LED Bar mit 8 LEDs verwendet.
Da es dieses Bauteil bedauerlicherweise nicht als Fritzing Part gibt, habe ich in der Schaltung einfache 5 mm LEDs verwendet.
Wie funktioniert der Infrarot Abstandssensor TCRT5000?
Der IR Abstandssensor verfügt über einen Infrarot Sender und einen Empfänger. Der Sender sendet einen für das menschliche Auge unsichtbare Lichtsignal aus, welcher von einem Objekt reflektiert wird. Das reflektierte Licht wird vom Empfänger aufgenommen und dann ausgewertet. Der Empfänger deutet anhand der Lichtintensität dann den Abstand zu einem Objekt. Hier kommt die Ungenauigkeit des Sensors zu tragen, denn dunkle Oberflächen reflektieren Licht (egal welche Wellenlänge) schlechter als helle Oberflächen.
Vergleich helle Oberfläche vrs. dunkle Oberfläche
Eingangs habe ich erläutert, dass eine helle Oberfläche den Infrarotstrahl besser reflektiert als eine dunkle Oberfläche. Wollen wir dieses nun einmal testen.
Quellcode
Einfaches Beispiel zum Erkennen eines Objektes vor dem Sensor mit der Anzeige auf einer LED Bar.
#define irSensor A0 int leds[8] = {2,3,4,5,6,7,8,9}; const int PAUSE = 250; void setup() { Serial.begin(9600); for(int i=0;i<=7;i++){ pinMode(leds[i], OUTPUT); } } void loop() { for(int i=0;i<=7;i++){ digitalWrite(leds[i],HIGH); } int irSensorValue = analogRead(irSensor); Serial.println(irSensorValue); int mapedValue = map(irSensorValue, 100, 1000, 0, 7); digitalWrite(leds[mapedValue],LOW); delay(PAUSE); }