Arduino Nano ESP32 - Sensor de Cor TCS3200D/TCS230
Neste tutorial, vamos explorar como conectar o sensor de cor TCS3200D/TCS230 ao Arduino Nano ESP32 para uma detecção de cores precisa e a medição de valores RGB.
O que você vai realizar:
- Conectar o sensor TCS3200D/TCS230 ao Arduino Nano ESP32
- Calibrar o sensor para medições de cor precisas
- Ler e exibir valores de cor RGB

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Sensor de Cor TCS3200D/TCS230
O TCS3200D/TCS230 emprega uma matriz estruturada de 64 fotodiodos em uma configuração 8×8 para a detecção óptica de cores. A matriz é composta por 16 fotodiodos com filtros ópticos vermelhos, 16 com filtros verdes, 16 com filtros azuis e 16 sem filtros (transparentes). A detecção de cores funciona ativando grupos de filtros específicos e analisando a frequência da forma de onda de saída.
Os módulos de sensor TCS3200D padrão incorporam matrizes de LEDs brancos que fornecem iluminação consistente ao alvo da medição, entregando leituras estáveis em diferentes ambientes de iluminação e permitindo a operação em condições de pouca luz.
Pinagem
Terminais de conexão do módulo do sensor TCS3200D/TCS230:
- Pino VCC: Alimentação positiva (+5V).
- Pino GND: Referência de terra (0V).
- Pinos S0, S1: Pinos de configuração da escala de frequência.
- Pinos S2, S3: Pinos de ativação do filtro de cor.
- Pino OUT: Saída de onda quadrada codificada em frequência.
- Pino OE: Pino de ativação da saída (ativo quando LOW). Os módulos padrão ligam este pino ao GND internamente. Se estiver flutuando, conecte-o manualmente ao GND.

Como Funciona
O funcionamento do sensor depende de dois parâmetros configuráveis: qual filtro de cor ativar e qual faixa de frequência de saída usar. Dois pares de pinos de controle gerenciam essas configurações:
Configuração da escala de frequência (pinos S0 e S1):
- S0=LOW, S1=LOW: Sensor desligado
- S0=LOW, S1=HIGH: Escala de saída de 2%
- S0=HIGH, S1=LOW: Escala de saída de 20%
- S0=HIGH, S1=HIGH: Escala de saída de 100% (frequência total)
Ativação do filtro de cor (pinos S2 e S3):
- S2=LOW, S3=LOW: Matriz de fotodiodos vermelhos ativa
- S2=LOW, S3=HIGH: Matriz de fotodiodos azuis ativa
- S2=HIGH, S3=LOW: Matriz de fotodiodos transparentes ativa (sem filtro)
- S2=HIGH, S3=HIGH: Matriz de fotodiodos verdes ativa
O pino OUT gera frequências de onda quadrada dentro da faixa aproximada de 2 Hz a 500 kHz. Quanto maior a intensidade da luz, maior a frequência de saída. A função pulseIn() do Arduino mede a duração do pulso, que apresenta comportamento inverso: quanto mais brilhante a iluminação, menor a duração do pulso. Por meio da calibração, essas medições de pulso se transformam na já conhecida notação RGB de 0-255.
Maximizando a Precisão da Medição
- Estabeleça uma distância fixa entre o sensor e o objeto (ideal: 1-3 cm) com posicionamento angular estável.
- Ative a iluminação por LED branco integrada para obter resultados reproduzíveis.
- Proteja de fontes de luz externas oscilantes para obter maior precisão.
Diagrama de Ligação
Ligue o sensor de cor TCS3200 ao Arduino Nano ESP32 de acordo com esta configuração:
| Sensor de Cor TCS3200 | Arduino Nano ESP32 |
|---|---|
| VCC | 5V |
| GND | GND |
| S0 | D4 |
| S1 | D3 |
| S2 | D6 |
| S3 | D5 |
| OUT | D7 |

This image is created using Fritzing. Click to enlarge image
Código Arduino Nano ESP32 - Calibração do Sensor
A calibração neutraliza os fatores ambientais que afetam o desempenho do sensor. Variáveis como a intensidade do LED, a proximidade do objeto, as características da superfície e a iluminação ao redor impactam as medições brutas. Este fluxo de calibração determina as durações mínima e máxima de pulso para cada canal de cor, criando limites de referência que traduzem a saída bruta do sensor em valores RGB padronizados de 0–255, otimizados para as suas condições de uso.
Passos Rápidos
Para começar com o Arduino Nano ESP32, siga estes passos:
- Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
- Ligue os componentes de acordo com o diagrama de ligação.
- Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
- Copie o código de calibração e cole-o no Arduino IDE.
- Clique no botão Upload para compilar e fazer upload do código.
- Abra o Serial Monitor para observar o progresso da calibração.
- Aponte o sensor para superfícies de cores diferentes: materiais brancos (papel), superfícies pretas e vários objetos coloridos.
- Acompanhe os parâmetros Mín/Máx conforme eles são atualizados em tempo real.
- Quando os valores se estabilizarem (geralmente em 10-20 segundos), anote todos os seis números de calibração.
Parâmetros de calibração extraídos da saída de exemplo:
- RedMin = 42, redMax = 210
- GreenMin = 55, greenMax = 185
- BlueMin = 60, blueMax = 172
Código Arduino Nano ESP32 - Leitura de Cor RGB
Passos Rápidos
- Encontre as declarações das variáveis de calibração perto do início do código:
- Insira os valores de calibração que você anotou no lugar dos zeros. Exemplo de substituição com redMin = 42, redMax = 210, greenMin = 55, greenMax = 185, blueMin = 60, blueMax = 172:
- Faça upload do código atualizado para o Arduino Nano ESP32.
- Coloque um alvo colorido na frente do sensor.
- Abra o Serial Monitor para ver as medições RGB.
Os valores RGB de saída seguem a escala padrão de 0-255. Larguras de pulso menores (reflexões intensas) correspondem a números RGB maiores; larguras de pulso maiores (reflexões fracas) correspondem a valores menores.
Aplicações do Projeto
Com a detecção de cor RGB funcionando, você pode construir:
- Separador de cores automatizado: Classifique itens com base em propriedades cromáticas (categorização em vermelho/verde/azul)
- Ferramenta de comparação de cores: Verifique a consistência de cor entre várias amostras
- Navegação guiada por cores: Robôs que seguem caminhos coloridos
- Inspeção na fabricação: Identifique defeitos de produtos por meio do desvio de cor
- Controle ativado por cor: Acione comportamentos específicos quando determinadas cores aparecerem