Beschreibung
🔍 Infrarot-Sensor-Modul TCRT5000L – Linien-Detektor für Arduino
✅ Allgemeine Beschreibung
Der Modul TCRT5000L ist ein reflektierender Infrarot-Sensor, der darauf ausgelegt ist, um schwarze Linien auf weißem Hintergrund (oder umgekehrt) zu erkennen, nahegelegene Hindernisse oder Reflexionsänderungen zu detektieren. Es wird weit verbreitet in (oder umgekehrt), nahe liegende Hindernisse oder Reflexionseigenschaften. Es wird weit verbreitet in , Objektzählsysteme, Tachometern und Nähregelanwendungen verwendet., Objektaufzählsysteme, Tachometern und Nähewertsendungen.
⚙️ Eigenschaft
| Spezifikation | Optischer Sensor |
|---|---|
| TCRT5000L | (IR-LED + Fototransistor) Betriebsabstand |
| Betriebsabstand | 0 – 2,5 cm (optimal < 1 cm) |
| Betriebsspannung | 3.3V – 5V |
| Ausgabe | Digital (LOW = schwarze Linie erkannt) |
| LED-Anzeige | AN wenn die Linie erkannt wird |
| Größe | Kompakt, für mobile Roboter geeignet |
| Schwellenwert einstellbar | Nein (Standardmodell) – fester Schwellenwert |
| Kompatibilität | Arduino, ESP32, Raspberry Pi, STM32, etc. |
📌 Der Sensor strahlt Infrarot aus und misst die Menge reflektiert: mehr reflektiert (helle Oberfläche) → HIGH; weniger reflektiert (dunkle Linie) → LOW.
🧪 Funktionsweise
Der Sensor TCRT5000L hat ein LED IR und einen Phototransistor:
- Helle Oberfläche: spiegelt IR → Phototransistor empfängt → Ausgang = HIGH
- Dunkle Oberfläche (z.B. schwarze Linie): absorbiert IR → Ausgang = LOW
🧰 Anschluss mit Arduino
🔌 Verbindungsplan
| Pin des Moduls | Anschluss Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| OUT | Es. D2 |
💻 Arduino Programmierung
📜 Basisbeispiel: Line Follower
const int pinSensore = 2; // OUT del modulo
void setup() {
Serial.begin(9600);
pinMode(pinSensore, INPUT);
}
void loop() {
int stato = digitalRead(pinSensore);
if (stato == LOW) {
Serial.println("Linea NERA rilevata");
} else {
Serial.println("Superficie CHIARA");
}
delay(200);
}
⚠️ Der Sensor gibt keine analogen Werte zurück, sondern ein digitales HIGH/LOW-Signal.
🤖 Gemeine Anwendungen
- 🤖 Robot line follower (Schwarze Linie erkennen)
- 📦 Objektzählung (Störung des IR-Strahls)
- ⚙️ Optische Tachymeter (Lesen von Zeichen auf Rädern)
- 🛑 Abfall-Sensoren (Rand oder Oberfläche erkennen)
🔄 Beispiel: Robot mit 2 Sensoren, um eine Linie zu folgen
Sensoren an D2 und D3 angeschlossen
#define SINISTRA 2
#define DESTRA 3
void setup() {
pinMode(SINISTRA, INPUT);
pinMode(DESTRA, INPUT);
Serial.begin(9600);
}
void loop() {
int sx = digitalRead(SINISTRA);
int dx = digitalRead(DESTRA);
if (sx == LOW && dx == LOW) {
Serial.println("Entrambi sulla linea");
// avanti
} else if (sx == LOW && dx == HIGH) {
Serial.println("Curva a sinistra");
// gira sinistra
} else if (sx == HIGH && dx == LOW) {
Serial.println("Curva a destra");
// gira destra
} else {
Serial.println("Linea persa");
// fermati o cerca linea
}
delay(100);
}
🛠 Benutzungshinweise
- Halte die Entfernung zwischen Sensor und Oberfläche bei 5 – 10 mm.
- Vermeide zu intensives Umgebungslicht (beeinflusst die Reflexion).
- Für dynamische Nutzung (Robot), mechanische Einstellung und empirische Tests sind unerlässlich.
- Wenn du möchtest analoge Werte, gibt es Versionen mit Ausgang AO mit einem Potentiometer einstellbar.
📚 Mögliche Erweiterungen
- 📏 Geschwindigkeitsberechnung: durch das Auffangen sequentieller Durchgänge
- 🖱️ Kontaktloses Schalter: aktiviere Ereignisse mit der Hand vor dem Sensor
- 🔄 Drehzahlerkennung: Lesen von alternierenden Muster weiß/weiß auf einem Disk
✅ Fazit
Das Modul TCRT5000L ist ein einfaches, kostengünstiges und genaues Sensor für die Erkennung von Linien, Oberflächen, Objekten und Hindernissen in kurzer Entfernung. Perfekt für:
- Bildungsroboter oder Wettbewerbsroboter
- Automatische Zähler
- Reflex-Detektoren
📦 Möchten Sie auch?
- 🧠 Fritzing-Skizze mit mehr Sensoren auf einem Roboter?
- 📲 Wi-Fi-Integration für das Senden von Zählern auf Smartphones?
- 📁 Datenerfassung auf SD-Karte?
- 🖥️ Anzeige auf OLED oder LCD?
Hier ist ein vollständiges Projekt, das den Modul TCRT5000L mit mehrfachen Sensorenfunktionen für Roboter integriert, Wi-Fi für das Senden von Zählern auf Smartphones, Datenerfassung auf SD-Karte e Anzeige auf OLED oder LCD.
🧩 1. Fritzing-Skizze mit mehr Sensoren auf Roboter
Verwenden Sie 3 oder mehr TCRT5000L-Module montiert auf der Vorderseite des Roboters, um die Linie zu folgen. Jeder Sensor hat VCC, GND und OUT an den digitalen Pins (z.B. D2, D3, D4…) angeschlossen. Die Signale gehen zu den INPUT-Pins des Arduino/Nano.
Ein Beispiel für Fritzing-Schema mit 3 TCRT5000 an einem Roboter montiert ist in verschiedenen Bildungsprojekten verfügbar und ermöglicht das Erkennen der Richtung einer Linie basierend auf dem Sensor, der eine schwarze Linie liest (dyor.webs.upv.es, instructables.com).
📡 2. Wi-Fi-Integration zum Senden der Zählungen auf Smartphones
Nutzt einen Modul ESP32 oder NodeMCU (ESP8266) um Ereignisse zu zählen (z.B. Passagen über die Linie) und sie über eine lokalen Web-Seite zu veröffentlichen, die von Smartphones aus zugänglich ist.
Basierend auf Arduino-Forums und Ressourcen, die Philosophie lautet: führe einen Webserver auf dem ESP-Modul aus, der den aktuellen Datenstand im Echtzeitmodus dem Benutzer über das mobile Browserfenster anzeigt (forum.arduino.cc, reddit.com).
📁 3. Speichere Daten auf SD-Karte
Verbinde einen Modul microSD SPI und schreibe die Zählwerte oder digitale Werte in eine CSV-Datei. Verwende die Bibliothek SD.h um Zeitstempel und Wert auf externer Speicher zu speichern.
🖥️ 4. Anzeige auf OLED oder LCD
Installiere ein Display OLED 128×64 I2C (SSD1306) oder ein LCD I2C 16×2. Es zeigt in Echtzeit:
- die Anzahl der Linien, die erkannt wurden,
- den Zustand der Sensoren (z.B. „Linke Seite“, „Mitte“…),
- eventuell die Batteriespannung, Zeit, usw.
📋 Zusammenfassung der Hardware-Verbindungen
| Funktion | Komponenten | Hauptverbindungen |
|---|---|---|
| Linienfolger | 3× TCRT5000L | VCC‑5V, GND‑GND, OUT → D2, D3, D4 |
| Wi‑Fi / Web Server | ESP32 oder NodeMCU | Fühler an GPIO, Versorgung 5V / 3.3V |
| Datenprotokollierung | MicroSD-Modul (CS z.B. D5) | CS auf D5, MISO MOSI SCK auf SPI, CSV-Dateiweite |
| Anzeige | OLED SSD1306 (I2C) | SDA → A4, SCL → A5 (I2C), Anzeige über Adafruit_SSD1306 |
📜 Beispielcode (ESP32 + Web Server + OLED + SD)
#include <WiFi.h>
#include <WebServer.h>
#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define SEN_LEFT 2
#define SEN_CENTER 3
#define SEN_RIGHT 4
#define SD_CS 5
WebServer server(80);
Adafruit_SSD1306 display(128, 64, &Wire);
int countLines = 0;
void handleRoot(){
server.send(200, "text/html",
"<h1>Conteggio linee: "+String(countLines)+"</h1>");
}
void setup(){
Serial.begin(115200);
pinMode(SEN_LEFT,INPUT);
pinMode(SEN_CENTER,INPUT);
pinMode(SEN_RIGHT,INPUT);
// Wi-Fi
WiFi.begin("SSID","PASSWORD");
while(WiFi.status()!=WL_CONNECTED) delay(500);
server.on("/", handleRoot);
server.begin();
// SD card
if(!SD.begin(SD_CS)) Serial.println("SD err");
// OLED
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay(); display.setTextSize(2);
}
void loop(){
server.handleClient();
int sC = digitalRead(SEN_CENTER);
static int last = HIGH;
if(sC==LOW && last==HIGH){
countLines++;
File f = SD.open("log.csv", FILE_APPEND);
if(f){ f.println(String(millis()/1000)+","+countLines); f.close(); }
}
last = sC;
display.clearDisplay();
display.setCursor(0,0);
display.print("Cnt:"); display.println(countLines);
display.display();
delay(100);
}
🧠 Nützliche Tipps
- 📐 Verschiedene Abstände Sensor/Fläche (3–10 mm) testen
- 🧼 Verwende ein Array von 3 Fühlern für Stabilität auf Kurven
- 🧪 Empirische Kalibrierungen testen
- 🔌 Stabile Versorgung
- 📶 Wenn Push-Benachrichtigungen oder Diagramme benötigt werden, kannst du erweitern mit Blynk, MQTT o Telegram Bot
✅ Fertigstellung
Der vorgeschlagene Projekt umfasst:
- Fritzing-Skizze mit einem mehrstufigen Sensor-Array TCRT5000L auf einem Roboter.
- Wi-Fi Webserver für Zählungen, die von Smartphones aus zugänglich sind.
- Protokollierung auf SD-Karte für spätere Analysen.
- OLED-Anzeige für visuelle Rückmeldung in Echtzeit.
Wir haben Datasheets für alle Komponenten zur Verfügung, falls diese nicht in der Produkt-Download-Skizze enthalten sind, senden Sie uns eine Nachricht über das Kontaktformular und wir veröffentlichen sie so schnell wie möglich auf unserer Website.
Tutorial: Wie man den Infrarot-Sensor-Modul TCRT5000L verwendet
Der Infrarot-Sensor-Modul TCRT5000L ist ideal für das Auffinden von Objekten oder Linien auf einer Fläche. Es ist perfekt für Projekte in Robotik, interaktive Spiele und Sicherheitssysteme.
Was du brauchst
- Arduino Uno
- USB-Kabel
- Velcro-Verbindungen
Schritte
- Verbinde die Pins VCC und GND des Moduls mit +5V und GND des Arduino.
- Verbinde den Pin OUT des Sensors mit dem digitalen Pin 2 des Arduino.
- Öffne die Arduino IDE und lade das bereitgestellte Sketch hoch, um das Erkennen zu testen.
- Platziere ein Objekt vor dem Sensor, um zu sehen, ob sich der logische Zustand auf dem Arduino ändert.
- Überprüfe die minimale und maximale Wahrnehmungsdistanz des Sensors im Datenblatt.
- Ändere das Sketch an, um es den spezifischen Anforderungen deines Projekts anzupassen.
- Versuche mehrere Sensoren parallel mit einem Multiplexer zu verbinden.
- Implementiere die Datenlesung vom Sensor in einem unendlichen Schleifenzyklus und zeige die Werte im seriellen Monitor an.
Beispielcode
void setup() {
pinMode(2, INPUT);
}
void loop() {
if(digitalRead(2) == HIGH){
Serial.println("Oggetto rilevato!");
}
}
Mini-Projekt
Erstelle einen Roboter, der eine schwarze Linie auf einem weißen Brett verfolgt, indem du diesen Sensor verwendest. Versuche den Roboter zu programmieren und sieh, wie er reagiert.
Häufige Fehler
- Verbinde VCC nicht mit dem Pin 3V3 des Arduino, verwende nur +5V.
- Stelle sicher, dass das zu überwachende Objekt nahe genug am Sensor ist, um einen klaren Signal zu erhalten.
- Prüfe die Polarisierung der Anschlüsse beim Verbinden.
- Denke daran, Pull-up oder Pull-down Widerst einzubauen, falls erforderlich.
Empfohlenes Zubehör
- Arduino Uno
- Velcro Verbindungen
- Multiplexer CD4051
- Roboter Line Follower Kit
Häufige Fragen
Welche Abtastdistanz hat der Sensor?
Überprüfe im Datenblatt.
Kann ich mehrere Sensoren zusammen verbinden?
Ja, aber du musst einen Multiplexer verwenden, um die Eingangssignale zu verwalten.







Rezensionen
Es gibt noch keine Rezensionen.