Arduino Nano - TCS3200D/TCS230 Color Sensor
Este guia completo mostra como conectar o sensor de cor TCS3200D/TCS230 ao Arduino Nano para medir cores com precisão e extrair valores RGB. Domine os procedimentos de calibração e desenvolva recursos de reconhecimento de cores nos seus projetos.
Objetivos de aprendizado:
- Estabelecer as conexões entre o TCS3200D/TCS230 e o Arduino Nano
- Executar a calibração do sensor para eliminar o ruído do ambiente
- Desenvolver programas para o Arduino Nano que medem cores 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 sensor TCS3200D/TCS230 usa uma matriz de fotodiodos organizada em uma grade 8×8 para detectar cores por meio de filtragem óptica. Nesse conjunto de 64 elementos, 16 fotodiodos têm filtros espectrais vermelhos, outros 16 usam filtros verdes, 16 empregam filtros azuis e os 16 restantes operam sem filtros (resposta clara). A medição de cor acontece ativando conjuntos de filtros específicos e analisando a onda quadrada modulada em frequência da saída.
Os arranjos de LEDs brancos embutidos nos módulos típicos fornecem iluminação constante aos objetos, mantendo a estabilidade da leitura apesar das variações da luz externa e melhorando o desempenho em ambientes escuros.
Pinagem
Conexões disponíveis na placa do sensor TCS3200D/TCS230:
- Pino VCC: Entrada da tensão de alimentação (+5V).
- Pino GND: Referência de terra (0V).
- Pinos S0, S1: Seletores de escala da frequência de saída.
- Pinos S2, S3: Seletores do filtro do canal de cor.
- Pino OUT: Saída de onda quadrada modulada em frequência.
- Pino OE: Entrada de habilitação da saída (habilita em LOW). Os módulos padrão normalmente ligam este pino ao GND internamente. Se ele não estiver conectado, ligue-o manualmente ao GND.

Como Funciona
Duas configurações críticas controlam o comportamento do sensor: qual canal de cor ativar e qual intensidade de sinal de saída gerar. Dois pares de entradas de controle gerenciam essas funções:
Controle da escala de frequência (pinos S0 e S1):
- S0=LOW, S1=LOW: Estado desligado
- S0=LOW, S1=HIGH: Fator de escala de 2%
- S0=HIGH, S1=LOW: Fator de escala de 20%
- S0=HIGH, S1=HIGH: Fator de escala de 100% (velocidade total)
Seleção do canal de cor (pinos S2 e S3):
- S2=LOW, S3=LOW: Fotodiodos vermelhos ativos
- S2=LOW, S3=HIGH: Fotodiodos azuis ativos
- S2=HIGH, S3=LOW: Fotodiodos claros ativos (sem filtragem)
- S2=HIGH, S3=HIGH: Fotodiodos verdes ativos
O pino OUT fornece ondas quadradas com frequências na faixa aproximada de 2 Hz a 500 kHz. A frequência aumenta com a intensidade da luz: uma iluminação mais forte produz uma saída de frequência mais alta. A função pulseIn() mede a duração do pulso, que tem correlação inversa: durações mais curtas indicam luz mais forte. As medições calibradas são convertidas para o formato RGB convencional de 0-255.
Como Obter a Melhor Precisão
- Mantenha o sensor a 1-3 cm do objeto a ser medido, com alinhamento angular estável.
- Use a iluminação de LED branco integrada para ter uma luz repetível.
- Proteja o sensor da luz ambiente variável para melhorar a consistência da medição.
Diagrama de Ligação
Configuração de ligação do sensor de cor TCS3200 ao Arduino Nano:
| Sensor de Cor TCS3200 | Arduino Nano |
|---|---|
| VCC | 5V |
| GND | GND |
| S0 | D4 |
| S1 | D3 |
| S2 | D6 |
| S3 | D5 |
| OUT | D7 |

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Nano e outros componentes.
Código Arduino Nano - Calibração da Largura de Pulso
A calibração elimina a interferência do ambiente nas medições brutas. Variáveis como a intensidade do LED, a distância do objeto, a refletividade do material e a iluminação da sala afetam as leituras. Pense nelas como erros sistemáticos que precisam ser medidos. A rotina de calibração identifica as larguras de pulso mínima e máxima em todos os canais de cor, estabelecendo limites de referência para converter os dados brutos em valores RGB precisos de 0–255, ajustados ao seu ambiente de uso.
Passos Rápidos
- Carregue o sketch de calibração no Arduino IDE
- Conecte o Arduino Nano via USB e faça o upload usando o botão Upload
- Abra o Serial Monitor para observar o acompanhamento de Min/Max em tempo real
- Exponha o sensor a superfícies variadas: materiais brancos (papel de impressora), objetos pretos e itens de várias cores
- Veja os limites Min/Max serem atualizados automaticamente conforme os extremos são detectados
- Quando os valores estabilizarem (geralmente em 10-20 segundos), anote os seis parâmetros de calibração
Exemplo de parâmetros de calibração extraídos da saída acima:
- RedMin = 42, redMax = 210
- GreenMin = 55, greenMax = 185
- BlueMin = 60, blueMax = 172
Código Arduino Nano - Medição de Valores RGB
Passos Rápidos
- Identifique as variáveis de calibração no início do código:
- Substitua os seis valores zero pelos dados de calibração medidos. Exemplo usando os valores redMin = 42, redMax = 210, greenMin = 55, greenMax = 185, blueMin = 60, blueMax = 172:
- Transfira o código atualizado para o Arduino Nano
- Coloque uma amostra colorida na frente do sensor
- Veja a saída RGB no Serial Monitor
Os valores RGB exibidos seguem a escala padrão de 0-255. Larguras de pulso menores (indicando reflexos mais brilhantes) geram saídas RGB maiores; larguras de pulso maiores (reflexos mais fracos) geram valores menores.
Aplicações do Projeto
Com a medição RGB funcionando, você pode desenvolver:
- Sistema de separação por cores: Classificar objetos por cor (diferenciação entre vermelho/verde/azul)
- Dispositivo de verificação de cor: Confirmar a consistência de cor entre amostras
- Seguidor de trajeto colorido: Robôs que navegam seguindo marcas coloridas
- Inspeção visual de qualidade: Detectar defeitos de produção por meio da análise de cor
- Automação acionada por cor: Executar ações quando tons específicos são detectados