ESP32 - TCS3200D/TCS230 Kleurensensor
Deze handleiding begeleidt u bij het aansluiten van een TCS3200D/TCS230 kleurensensor op een ESP32 voor accurate RGB-kleurdetectie en -meting. Leer hoe u de sensor kalibreert en de ESP32 programmeert om kleurwaarden van objecten te lezen.
Wat u leert:
- Het aansluiten van de TCS3200D/TCS230 kleurensensor op ESP32
- Het kalibreren van de sensor om omgevingsfactoren te compenseren
- Het schrijven van ESP32-code om RGB-waarden te meten en uit te lezen

Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables ESP32 Starterskit (ESP32 inbegrepen) | |
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de TCS3200D/TCS230 Kleurensensor
De TCS3200D/TCS230 gebruikt een matrix van 64 fotodiodes in een 8×8 opstelling voor kleuridentificatie. Deze array bestaat uit 16 fotodiodes met rode optische filters, 16 met groene filters, 16 met blauwe filters en 16 zonder filters (clear). De sensor werkt door een specifieke filter te selecteren en de gedetecteerde lichtintensiteit om te zetten in een frequentiegemoduleerd vierkantgolf-signaal.
De meeste sensormodules bevatten geïntegreerde witte LED-verlichting, die zorgt voor consistente metingen door een gecontroleerde lichtbron te bieden onafhankelijk van de omgevingslichtomstandigheden.
Pinout
De TCS3200D/TCS230 sensormodule biedt deze aansluitpunten:
- VCC pin: Verbind met 3.3V of 5V voeding
- GND pin: Verbind met aarde (0V)
- S0, S1 pinnen: Instellingen voor frequentieschaalverdeling van de output
- S2, S3 pinnen: Selecteren het actieve kleurfilter
- OUT pin: Vierkantgolf frequentie-uitgangssignaal
- OE pin: Output enable (actief LOW). Vaak intern verbonden met GND op commerciële modules. Indien blootliggend, verbind met GND.

Hoe het Werkt
De werking van de sensor hangt af van twee configureerbare parameters: de actieve kleurfilter en de sterkte van het uitgangssignaal. Twee paar besturingspinnen bepalen deze instellingen:
S0/S1 pinnen configureren frequentieschaalverdeling van de uitgang:
- S0=LOW, S1=LOW: Sensor uitgeschakeld
- S0=LOW, S1=HIGH: Output op 2% van basisfrequentie
- S0=HIGH, S1=LOW: Output op 20% van basisfrequentie
- S0=HIGH, S1=HIGH: Output op 100% van basisfrequentie
S2/S3 pinnen selecteren het actieve kleurfilter:
- S2=LOW, S3=LOW: Rode filter actief
- S2=LOW, S3=HIGH: Blauwe filter actief
- S2=HIGH, S3=LOW: Geen filter (clear/onbewerkt)
- S2=HIGH, S3=HIGH: Groene filter actief
De OUT pin geeft een frequentie-uitgangssignaal tussen ongeveer 2 Hz en 500 kHz. De frequentiegrootte correleert met lichtintensiteit — meer licht betekent een hogere frequentie. Met de functie pulseIn() kan de pulsduur worden gemeten; een kortere pulsduur betekent helderder licht. Na kalibratie worden deze metingen omgezet naar standaard 0-255 RGB-waarden.
Optimaliseren van Meetstabiliteit
- Plaats de sensor 1-3 cm van het doeloppervlak met een vaste oriëntatie.
- Zet de ingebouwde witte LEDs aan voor gestandaardiseerde verlichting.
- Vermijd invallend extern licht om meetvariabiliteit te verminderen.
Bekabelingsschema
Aansluitschema ESP32 naar TCS3200 kleurensensor:
| TCS3200 Kleurensensor | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| S0 | GPIO 17 |
| S1 | GPIO 16 |
| S2 | GPIO 18 |
| S3 | GPIO 5 |
| OUT | GPIO 19 |

This image is created using Fritzing. Click to enlarge image
Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.
ESP32 Code - Sensor Kalibratie via Pulsbreedte
Kalibratie compenseert omgevingsvariabelen die ruwe sensormetingen beïnvloeden: variaties in LED-helderheid, afstand tot het object, verschillen in oppervlakreflectiviteit en omgevingslicht. Deze factoren zorgen voor meetfouten die gekwantificeerd moeten worden. Het kalibratieproces registreert minimale en maximale pulsbreedtes voor elk kleurkanaal, waarmee grenzen worden ingesteld voor een accurate 0–255 RGB-mapping in uw specifieke omgeving.
Snelle Stappen
- Als dit de eerste keer is dat u de ESP32 gebruikt, bekijk dan hoe u de ESP32 omgeving instelt in Arduino IDE.
- Kopieer de kalibratiecode in Arduino IDE
- Klik op de Upload-knop in Arduino IDE om de code naar ESP32 te uploaden
- Open de Seriële Monitor (baudrate op 9600 instellen)
- Richt de sensor op verschillende gekleurde objecten: wit papier, zwart oppervlak en diverse kleuren
- Houd de Min/Max waarden in de gaten terwijl ze automatisch worden bijgewerkt
- Zodra de waarden stabiel zijn (10-20 seconden), noteer dan alle zes kalibratiewaarden
Voorbeeld kalibratieresultaten uit de output:
- RedMin = 42, redMax = 210
- GreenMin = 55, greenMax = 185
- BlueMin = 60, blueMax = 172
ESP32 Code - RGB Kleurwaarden Lezen
Snelle Stappen
- Zoek de kalibratieconstanten bovenaan in de code:
- Vervang alle zes nullen door uw daadwerkelijke kalibratiewaarden. Bijvoorbeeld (met redMin = 42, redMax = 210, greenMin = 55, greenMax = 185, blueMin = 60, blueMax = 172):
- Kopieer de bovenstaande code en open deze in Arduino IDE
- Klik op de Upload-knop in Arduino IDE om de code naar ESP32 te uploaden
- Plaats een gekleurd object voor de sensor
- Bekijk het resultaat op de Seriële Monitor
De uitvoer toont nu standaard 0-255 RGB-waarden. Kortere pulsbreedtes (helderder licht) leveren hogere RGB-waarden; langere pulsbreedtes (donkerdere omstandigheden) lagere waarden.
Project Toepassingen
Met de mogelijkheid om RGB-waarden functioneel te lezen, kunt u deze projectideeën verkennen:
- Gekleurde automatische sortering: Items categoriseren op kleurtoon (rood, groen, blauw identificatie)
- Kleurvergelijkingssysteem: Controleer of kleuren van objecten overeenkomen
- Chromatisch lijnvolg-robotica: Robots bouwen die gekleurde paden volgen
- Kwaliteitscontrole in productie: Defecte eenheden identificeren via kleurafwijkingen
- Kleurgestuurde activering: Buzzers of indicatoren activeren bij detectie van specifieke kleuren
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.
Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt bij het begrijpen van de stappen en code.