5fach-TCRT5000 IR-Modul

Dieses hier verwendete 5fach-TCRT5000 IR-Modul ist vor allem für die Hinternis-Erkennung von sog. "Line-Follower"-Robotern und selbst fahrenden kleinen Vehikeln auf MCU-Basis gedacht.

5fach-TCRT5000 IR-Modul

Aufbau und Funktionsweise

Das Modul ist eine Vereiningung von 5 (manchmal 8) Stück von TCRT-5000-Sensoren, die es auch oft als Einzelmodule zu kaufen gibt. Auf diesem Modul werden die analogen IR-Signale durch den 74HC14D-Chip in digitale Signale umgewandelt. Der 74HC14D ist ein Schmitt-Trigger mit 6 Eingängen, wobei bei diesem Modul also ein Eingang nicht benutzt wird.
Der Messabstand beträgt etwa 1cm-1,5cm und zeigt mit einer roten LED an, ob ein Hinternis vor einem der Sensoren erkannt wurde.

Schaltplan des 5fach-TCRT5000 IR-Moduls
Abb.: Schaltplan des 5fach-TCRT5000 IR-Moduls

Anschlüsse

Modul-Pin Bedeutung Arduino-Pin
GND 0V/Masse GND
5V Spannungsversorgung (auch 3,3V möglich) 5V
OUT1..OUT5 Digitale Ausgänge für die einzelnen IR-Sensoren beliebige digitale Pins, z.B. D2..D6

Verwendete Bauteile

Sketch

Zum Testen des 5fach-IR-Moduls schließt man im folgenden Beispiel die Ausgänge des Moduls an die digitalen Eingänge D2 bis D6 des Arduino an und verwendet dann folgenden Code:

const int IR_PINS[5] = {2, 3, 4, 5, 6};

void setup()
{
   Serial.begin(9600);
   for (int i = 0; i < 5; i++) {
      pinMode(IR_PINS[i], INPUT);
   }
}

void loop()
{
   for (int i = 0; i < 5; i++) {
      Serial.print(digitalRead(IR_PINS[i]));
   }
   Serial.println("");
   delay(1000);
}

Öffnet man nach dem Kompilieren und Hochladen des Codes die serielle Konsole der Arduino-IDE, so sollten zunächst immer pro Zeile fünf Nullen erscheinen. Je nachdem, an welchen IR-Sensor man sich annähert, so sprint der entsprechende Wert dann auf 1.

Ausgabe auf der seriellen Konsole der Arduino-IDE
Abb: Ausgabe auf der seriellen Konsole der Arduino-IDE

Wenn man lieber eine visuelle Ausgabe der Hinterniss-Erkennung auf dem seriellen Plotter der Arduino-IDE anzeigen möchte, so kann man einfach die Ausgabe im obigen Code in der for-Schleife in loop durch den folgenden Code ersetzen:

Serial.print(digitalRead(IR_PINS[i])+i);
Serial.print(" ");
Ausgabe auf dem seriellen Plotter der Arduino-IDE
Abb: Ausgabe auf dem seriellen Plotter der Arduino-IDE

Hinweis: Ich habe festgestellt, dass auf einer schwarze Oberfläche anscheinend der Sensor nicht mehr funktioniert, denn der ermittelte Wert springt auf 0, wenn der Sensor sehr nahe der schwarze Fläche gehalten wird.

Ideen

Bei diesem Modul wäre auch schön gewesen, die IR-Sensor-Werte als analoge Zahlen zur Verfügung zu stellen, so hätte man nicht nur eine binäre Hindernis-Erkennung, sonder auch eine grobe Einschätzung, wie weit das Hinternis entfernt ist.
Wie man am obigen Schaltplan des Moduls erkennen kann, werden die analogen Werte in den 74HC14-Chip gespeist, dessen digitale Werte dann an den Ausgängen anliegen. Es wäre also recht leicht, eine zusätzliche Pin-Leiste anzubringen, die ebenfalls die analogen Werte der Sensoren zur Verfügung stellt. (Versuch steht noch aus...)

Desweiteren könnte es für manche Anwendungen hilfreich sein, dass die verwendeten LEDs entweder dunkler oder gar nicht aufleuchten, denn sie sind recht grell und verbrauchen auch entsprechend Strom. Da jeweils ein Vorwiderstand von 1 kΩ verbaut wurde, kann man mit einem Stromverbrauch von ca. 5mA rechnen, d.h. max. 30mA, wenn alle LEDs gleichzeitig leuchten.

LEDs am 5fach-TCRT5000 IR-Modul
Abb.: Leuchtende LEDs am 5fach-TCRT5000 IR-Modul
zurück