Arduino Nano ESP32 - TCS3200D/TCS230 Farbsensor
In diesem Tutorial werden wir untersuchen, wie man den TCS3200D/TCS230-Farb-Sensor an den Arduino Nano ESP32 anschließt, um eine genaue Farberkennung und Messung der RGB-Werte zu ermöglichen.
Was du erreichen wirst:
- Verbindung des TCS3200D/TCS230-Sensors mit dem Arduino Nano ESP32
- Kalibrierung des Sensors für präzise Farbmessungen
- Auslesen und Anzeigen von RGB-Farbwerten

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über TCS3200D/TCS230 Farbsensor
Der TCS3200D/TCS230 verwendet ein strukturiertes Array aus 64 Fotodioden in einer 8×8-Konfiguration zur optischen Farberkennung. Das Array besteht aus 16 Fotodioden mit roten optischen Filtern, 16 mit grünen Filtern, 16 mit blauen Filtern und 16 ohne Filter (klar). Die Farberkennung erfolgt durch das Aktivieren bestimmter Filtergruppen und durch die Analyse der Frequenz der Ausgangswellenform.
Standard-TCS3200D-Sensormodule verfügen über weiße LED-Arrays, die eine konstante Ausleuchtung des Messziels gewährleisten, stabile Messwerte bei unterschiedlichen Beleuchtungsumgebungen liefern und den Betrieb bei schlecht beleuchteten Bedingungen ermöglichen.
Pinbelegung
Anschlussklemmen am TCS3200D/TCS230-Sensor-Modul:
- VCC-Pin: Positive Spannungsversorgung (+5V).
- GND-Pin: Massebezug (0V).
- S0, S1-Pins: Pins zur Konfiguration der Frequenzskalierung.
- S2, S3-Pins: Pins zur Aktivierung des Farbfilters.
- OUT-Pin: Frequenzkodierter Rechteckausgang.
- OE-Pin: Aktivierungs-Pin des Ausgangs (aktiv bei LOW). Standardmodule verbinden dies intern fest mit GND. Falls es schwebt, manuell mit GND verbinden.

Wie es funktioniert
Die Funktion des Sensors hängt von zwei konfigurierbaren Parametern ab: Welchen Farbfilter soll aktiviert werden und welchen Ausgangsfrequenzbereich soll verwendet werden. Zwei Steuerpin-Paare steuern diese Einstellungen:
Frequenzskalierungskonfiguration (S0- und S1-Pins):
- S0=NIEDRIG, S1=NIEDRIG: Sensor ausgeschaltet
- S0=NIEDRIG, S1=HOCH: 2% Ausgabeskalierung
- S0=HOCH, S1=NIEDRIG: 20% Ausgabeskalierung
- S0=HOCH, S1=HOCH: 100% Ausgabeskalierung (volle Frequenz)
Farbfilter-Aktivierung (S2- und S3-Pins):
- S2=NIEDRIG, S3=NIEDRIG: rotes Photodioden-Array aktiv
- S2=NIEDRIG, S3=HOCH: blaues Photodioden-Array aktiv
- S2=HOCH, S3=NIEDRIG: klares Photodioden-Array aktiv (ungefiltert)
- S2=HOCH, S3=HOCH: grünes Photodioden-Array aktiv
Der OUT-Pin erzeugt Rechteckwellensignale im ungefähren Bereich von 2 Hz bis 500 kHz. Eine erhöhte Lichtintensität führt zu einer höheren Frequenzausgabe. Der pulseIn()-Befehl von Arduino misst die Pulsdauer, die eine inverse Beziehung aufweist — hellere Beleuchtung führt zu kürzeren Pulsdauern. Durch Kalibrierung werden diese Pulsmesswerte in die vertraute 0-255 RGB-Notation umgewandelt.
Maximierung der Messgenauigkeit
- Stellen Sie einen festen Abstand zwischen Sensor und Objekt her (optimal: 1–3 cm) mit stabiler Winkelposition.
- Aktivieren Sie die integrierte weiße LED-Beleuchtung für reproduzierbare Ergebnisse.
- Schirmen Sie das System vor schwankenden externen Lichtquellen ab, um die Genauigkeit zu verbessern.
Verdrahtungsdiagramm
Schließe den TCS3200-Farbsensor gemäß dieser Konfiguration an den Arduino Nano ESP32 an:
| TCS3200 Color Sensor | Arduino Nano ESP32 |
|---|---|
| VCC | 5V |
| GND | GND |
| S0 | D4 |
| S1 | D3 |
| S2 | D6 |
| S3 | D5 |
| OUT | D7 |

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Arduino Nano ESP32 Code - Sensor Kalibrierung
Kalibrierung neutralisiert Umweltfaktoren, die die Sensorleistung beeinflussen. Variablen wie LED-Intensität, Objektnähe, Oberflächenbeschaffenheit und Umgebungsbeleuchtung beeinflussen alle Rohmesswerte. Dieser Kalibrierungsworkflow bestimmt die minimalen und maximalen Impulsdauern für jeden Farbkanal, erstellt Referenzgrenzen, die die Rohmesswerte des Sensors in standardisierte RGB-Werte von 0 bis 255 übersetzen, optimiert für Ihre Einsatzbedingungen.
Schnelle Schritte
Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:
- Wenn Sie neu bei Arduino Nano ESP32 sind, sehen Sie sich das Tutorial dazu an: wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
- Verdrahten Sie die Komponenten gemäß dem Schaltplan.
- Schließen Sie das Arduino Nano ESP32-Board mit einem USB-Kabel an Ihren Computer an.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das Arduino Nano ESP32-Board und seinen entsprechenden COM-Port aus.
- Kopieren Sie den Kalibrierungscode und fügen Sie ihn in die Arduino IDE ein.
- Klicken Sie auf die Hochladen-Schaltfläche, um den Code zu kompilieren und hochzuladen.
- Öffnen Sie den Seriellen Monitor, um den Kalibrierungsfortschritt zu beobachten.
- Richten Sie den Sensor auf unterschiedlich farbige Oberflächen: weiße Materialien (Papier), schwarze Oberflächen und verschiedene farbige Objekte.
- Überwachen Sie die Min- und Max-Werte, während sie sich in Echtzeit aktualisieren.
- Wenn die Werte stabil werden (in der Regel 10–20 Sekunden), notieren Sie alle sechs Kalibrierungswerte.
Kalibrierparameter aus der Beispielausgabe extrahiert:
- RotMin = 42, rotMax = 210
- GruenMin = 55, gruenMax = 185
- BlauMin = 60, blauMax = 172
Arduino Nano ESP32 Code - RGB-Farbwerte auslesen
Schnelle Schritte
- Finde die Deklarationen der Kalibrierungsvariablen nahe dem Anfang des Codes:
Please provide the English text to translate.
int redMin = 0; // Minimale Pulsbreite des Rotkanals
int redMax = 0; // rote maximale Pulsbreite
int greenMin = 0; // grüne minimale Pulsweite
int greenMax = 0; // grüne maximale Pulsbreite
int blueMin = 0; // blaue Mindestpulsbreite
int blueMax = 0; // Maximale Pulsbreite des blauen Kanals
Bitte geben Sie den Text zum Übersetzen an.
- Geben Sie Ihre aufgezeichneten Kalibrierwerte anstelle von Nullen ein. Beispielhafte Ersetzung mit redMin = 42, redMax = 210, greenMin = 55, greenMax = 185, blueMin = 60, blueMax = 172:
Bitte den englischen Text zum Übersetzen bereitstellen.
int rotMin = 42;
int rotMax = 210;
int gruenMin = 55;
int gruenMax = 185;
int blauMin = 60;
int blauMax = 172;
No content provided inside the code block to translate.
- Lade den aktualisierten Code auf den Arduino Nano ESP32 hoch.
- Platziere vor dem Sensor ein farbiges Ziel.
- Öffne den Serial Monitor, um RGB-Messwerte anzuzeigen.
Die RGB-Ausgabewerte entsprechen der Standard-Skala von 0 bis 255. Kürzere Pulsbreiten (starke Reflexionen) führen zu höheren RGB-Werten; längere Pulsbreiten (schwache Reflexionen) führen zu niedrigeren Werten.
Projektanträge
Mit funktionsfähigem RGB-Farbsensor können Sie Folgendes bauen:
- Automatisierter Farbsortierer: Gegenstände basierend auf chromatischen Eigenschaften klassifizieren (Rot-, Grün- und Blau-Kategorisierung)
- Farbvergleichswerkzeug: Farbkonstanz über mehrere Proben hinweg überprüfen
- Farbgesteuerte Navigation: Roboter, die farbige Pfade folgen
- Fertigungsprüfung: Produktfehler durch Farbabweichungen identifizieren
- Farbbasierte Steuerung: Bestimmte Verhaltensweisen auslösen, wenn bestimmte Farben erscheinen
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.