ESP32 - TCS3200D/TCS230 Farbsensor
Diese Anleitung führt Sie durch die Verbindung eines TCS3200D/TCS230 Farbsensors mit dem ESP32 für präzise RGB-Farberkennung und -messung. Lernen Sie, wie Sie den Sensor kalibrieren und den ESP32 programmieren, um Farbwerte von Objekten zu lesen.
Was Sie lernen werden:
- Anschluss des TCS3200D/TCS230 Farbsensors an den ESP32
- Kalibrierung des Sensors zur Kompensation von Umweltfaktoren
- ESP32-Code schreiben für Messung und Ausgabe von RGB-Werten

Hardware benötigt
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den TCS3200D/TCS230 Farbsensor
Der TCS3200D/TCS230 verwendet eine 64-Photodioden-Matrix in einer 8×8-Konfiguration für die Farbidentifikation. Diese Anordnung besteht aus 16 Photodioden mit roten optischen Filtern, 16 mit grünen Filtern, 16 mit blauen Filtern und 16 ohne Filter (klar). Der Sensor arbeitet, indem er bestimmte Filtertypen auswählt und die erkannte Lichtintensität in ein frequenzmoduliertes Rechtecksignal umwandelt.
Die meisten Sensormodule verfügen über integrierte weiße LED-Beleuchtung, die eine konsistente Messung gewährleistet, indem sie eine kontrollierte Lichtquelle unabhängig von Umgebungsbedingungen bereitstellt.
Pinout
Das TCS3200D/TCS230 Sensormodul bietet diese Anschlusspunkte:
- VCC-Pin: An 3,3V oder 5V Spannungsversorgung anschließen.
- GND-Pin: An Masse (0V) anschließen.
- S0, S1-Pins: Steuerung der Ausgangsfrequenzskalierung.
- S2, S3-Pins: Farbfilterauswahl.
- OUT-Pin: Rechteck-Frequenzausgangssignal.
- OE-Pin: Output Enable (aktiv LOW). Typischerweise bei kommerziellen Modulen bereits mit GND verbunden. Falls verfügbar, mit GND verbinden.

Funktionsweise
Der Sensorbetrieb hängt von zwei konfigurierbaren Parametern ab: aktiver Farbfilter und Ausgangssignalstärke. Zwei Steuerpin-Paare bestimmen diese Einstellungen:
S0/S1-Pins konfigurieren die Ausgangsfrequenzskalierung:
- S0=LOW, S1=LOW: Sensor ausgeschaltet
- S0=LOW, S1=HIGH: Ausgang bei 2% der Grundfrequenz
- S0=HIGH, S1=LOW: Ausgang bei 20% der Grundfrequenz
- S0=HIGH, S1=HIGH: Ausgang bei 100% der Grundfrequenz
S2/S3-Pins wählen den aktiven Farbfilter:
- S2=LOW, S3=LOW: Rotfilter aktiviert
- S2=LOW, S3=HIGH: Blaufilter aktiviert
- S2=HIGH, S3=LOW: Kein Filter (klar/ungefiltert)
- S2=HIGH, S3=HIGH: Grünfilter aktiviert
Der OUT-Pin erzeugt eine Frequenzausgabe zwischen etwa 2 Hz und 500 kHz. Die Frequenzgröße korreliert mit der Lichtintensität—mehr Licht führt zu höherer Frequenz. Die Verwendung von pulseIn() zur Messung der Pulsdauer ergibt das Gegenteil—niedrigere Pulsbreite zeigt hellere Beleuchtung an. Nach der Kalibrierung werden diese Messungen in Standard-RGB-Werte von 0-255 umgewandelt.
Optimierung der Messstabilität
- Positionieren Sie den Sensor 1-3 cm von der Zieloberfläche mit konstanter Ausrichtung.
- Aktivieren Sie die eingebauten weißen LEDs für standardisierte Beleuchtung.
- Blockieren Sie externe Lichtquellen, um Messvariabilität zu reduzieren.
Schaltplan
ESP32 zu TCS3200 Farbsensor Verbindungslayout:
| TCS3200 Farbsensor | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| S0 | GPIO 17 |
| S1 | GPIO 16 |
| S2 | GPIO 18 |
| S3 | GPIO 5 |
| OUT | GPIO 19 |

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.
ESP32 Code - Sensorkalibrierung über Pulsbreite
Die Kalibrierung kompensiert Umweltvariablen, die die rohen Sensormessungen beeinflussen: LED-Helligkeitsschwankungen, Objektentfernung, Oberflächenreflektivitätsunterschiede und Umgebungslichtverhältnisse. Diese Faktoren führen zu Messfehlern, die quantifiziert werden müssen. Der Kalibrierungsprozess zeichnet minimale und maximale Pulsbreiten für jeden Farbkanal auf und erstellt Grenzen für eine präzise 0–255 RGB-Zuordnung in Ihrer spezifischen Umgebung.
Schnelle Schritte
- Falls Sie ESP32 zum ersten Mal verwenden, siehe Einrichtung der Umgebung für ESP32 in Arduino IDE.
- Kopieren Sie den Kalibrierungscode in die Arduino IDE
- Klicken Sie auf den Upload Button in der Arduino IDE, um den Code auf den ESP32 zu laden
- Öffnen Sie den Serial Monitor (Baudrate auf 9600 einstellen)
- Richten Sie den Sensor auf verschiedene farbige Objekte: weißes Papier, schwarze Oberfläche und verschiedene Farben
- Beobachten Sie die Min/Max-Werte, während sie sich automatisch aktualisieren
- Nachdem sich die Werte stabilisiert haben (10-20 Sekunden), notieren Sie sich alle sechs Kalibrierungsnummern
Beispiel-Kalibrierungsergebnisse aus der Ausgabe:
- RedMin = 42, redMax = 210
- GreenMin = 55, greenMax = 185
- BlueMin = 60, blueMax = 172
ESP32 Code - RGB-Farbwerte lesen
Schnelle Schritte
- Finden Sie die Kalibrierungskonstanten am Anfang des Codes:
- Ersetzen Sie alle sechs Nullen mit Ihren tatsächlichen Kalibrierungswerten. Zum Beispiel (mit redMin = 42, redMax = 210, greenMin = 55, greenMax = 185, blueMin = 60, blueMax = 172):
- Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE
- Klicken Sie auf den Upload Button in der Arduino IDE, um den Code auf den ESP32 zu laden
- Platzieren Sie ein farbiges Objekt vor dem Sensor
- Sehen Sie das Ergebnis im Serial Monitor
Die Ausgabe zeigt jetzt Standard-RGB-Werte von 0-255. Kürzere Pulsbreiten (hellere Beleuchtung) ergeben höhere RGB-Zahlen; längere Pulsbreiten (dunklere Bedingungen) erzeugen niedrigere Werte.
Projektanwendungen
Mit funktionaler RGB-Lesefähigkeit können Sie diese Projektmöglichkeiten erkunden:
- Automatisierte Farbsortierung: Kategorisierung von Gegenständen nach Farbton (Rot-, Grün-, Blauidentifikation)
- Farbvergleichssystem: Farbübereinstimmung zwischen Objekten überprüfen
- Chromatische Linienverfolgung: Roboter bauen, die farbigen Pfaden folgen
- Fertigungsqualitätskontrolle: Defekte Einheiten durch Farbabweichung identifizieren
- Farbgesteuerte Reaktion: Summer oder Indikatoren bei Erkennung bestimmter Farben aktivieren
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.