Escolar Documentos
Profissional Documentos
Cultura Documentos
Início Arduino Identi que cores com o Sensor de Cor TCS3200 e Arduino
Utilize o sensor de cor TCS3200 e um led RGB para montar facilmente um sistema de reconhecimento de
cores com Arduino.
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 1/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
O sensor de cor TCS3200 (datasheet) utiliza o chip TCS3200 para detectar o nível de cor RGB (Red, Green e
Blue, ou Vermelho, Verde e Azul) do objeto que for colocado em frente ao sensor.
O chip TCS3200 tem 64 fotodiodos: 16 com ltro para a cor vermelha, 16 para a verde, 16 para a azul e 16
sem ltro. Esses fotodiodos captam a intensidade da luz, ltrando as cores e gerando a informação
correspondente no pino OUT, que vai enviar os dados para o microcontrolador.
Os pinos S0 e S1 determinam a frequência de saída, e os pinos S2 e S3 determinam qual nível de cor será
detectado no momento, segundo a tabela abaixo:
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 2/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
O pino LED serve para ligar (nível 0 – LOW) ou desligar (nível 1 – HIGH), os leds brancos em volta do sensor.
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 3/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Você pode fazer a ligação com 3 resistores, conforme a imagem acima, ou utilizar, para efeitos de testes,
apenas um resistor no anodo (pino maior). No nosso circuito utilizamos apenas um resistor de 10K.
A cada ciclo do loop é efetuada uma leitura das cores, e os valores lidos são mostrados no serial monitor.
Esses valores também são utilizados para determinar qual das três cores do led serão acesas.
r m n
13 int pinoledverd = 3;
14 int pinoledazul = 4;
15 0 0
Pesquisar no blog por ...
16 //Variaveis cores
17 int red = 0;
18 int green = 0;
19 int blue = 0;
20
21 void setup()
22 {
23 pinMode(s0, OUTPUT);
24 pinMode(s1, OUTPUT);
25 pinMode(s2, OUTPUT);
26 pinMode(s3, OUTPUT);
27 pinMode(out, INPUT);
28 pinMode(pinoledverm, OUTPUT);
29 pinMode(pinoledverd, OUTPUT);
30 pinMode(pinoledazul, OUTPUT);
31 Serial.begin(9600);
32 digitalWrite(s0, HIGH);
33 digitalWrite(s1, LOW);
34 }
35
36 void loop()
37 {
38 //Detecta a cor
39 color();
40 //Mostra valores no serial monitor
41 Serial.print("Vermelho :");
42 Serial.print(red, DEC);
43 Serial.print(" Verde : ");
44 Serial.print(green, DEC);
45 Serial.print(" Azul : ");
46 Serial.print(blue, DEC);
47 Serial.println();
48
49 //Verifica se a cor vermelha foi detectada
50 if (red < blue && red < green && red < 100)
51 {
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 4/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
52 Serial.println("Vermelho");
53 digitalWrite(pinoledverm, LOW); //Acende o led vermelho
54 digitalWrite(pinoledverd, HIGH);
55 digitalWrite(pinoledazul, HIGH);
56 }
57
58 //Verifica se a cor azul foi detectada
59 else if (blue < red && blue < green && blue < 1000)
60 {
61 Serial.println("Azul");
62 digitalWrite(pinoledverm, HIGH);
63 digitalWrite(pinoledverd, HIGH);
64 digitalWrite(pinoledazul, LOW); //Acende o led azul
65 }
66
67 //Verifica se a cor verde foi detectada
68 else if (green < red && green < blue)
69 {
70 Serial.println("Verde");
71 digitalWrite(pinoledverm, HIGH);
72 digitalWrite(pinoledverd, LOW); //Acende o led verde
73 digitalWrite(pinoledazul, HIGH);
74 }
75 Serial.println();
76
77 //Delay para apagar os leds e reiniciar o processo
78 delay(50);
79 digitalWrite(pinoledverm, HIGH);
80 digitalWrite(pinoledverd, HIGH);
81 digitalWrite(pinoledazul, HIGH);
82 }
83
84 void color()
85 {
86 //Rotina que le o valor das cores
87 digitalWrite(s2, LOW);
88 digitalWrite(s3, LOW);
89 //count OUT, pRed, RED
90 red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
91 digitalWrite(s3, HIGH);
92 //count OUT, pBLUE, BLUE
93 blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
94 digitalWrite(s2, HIGH);
95 //count OUT, pGreen, GREEN
96 green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
97 }
O programa lê as cores primárias (RGB), mas você pode con gurar o programa para detectar outras cores.
Nas imagens abaixo, temos o sensor detectando a cor azul….
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 5/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
e também a verde….
Gostou? Deixe seu comentário logo abaixo. Em caso de dúvidas, caso queira trocar uma ideia, ou até
mesmo dividir seu projeto, acesse nosso Fórum!
Posts Relacionados
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 6/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Micro Servo Motor 9g Sensor de chuva YL- Comunicação pela Aprenda a usar o
SG90 com Arduino 83 rede com o Módulo Sensor de frequência
Uno Ethernet ENC28J60 cardíaca
Adilson Thomsen
Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável
pelo departamento técnico da FILIPEFLOP.
Conectar com:
O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *
Comentário
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 7/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Nome * E-mail *
Site
Publicar comentário
23 Comentários
Existe a possibilidade de ao invés de enviar o comando para acender um LED RBG, enviar a um alto falante
programado com certos áudios para certas cores.
Olá, tenho uma dúvida, como imprime os valores em RGB? Porque os valores que aparecem não é em RGB
eu acho…
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 8/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Alguém sabe me dizer se o pino do LED deve ser ligado diretamente ou necessita de um resistor? Coloquei
um resistor, mas acho que o LED perdeu um pouco a intensidade, mas tenho receio de ligar diretamente e
queimar.
Abraço!
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 9/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Prezado Adilson,
Sou estudante de Engenharia Mecatrônica vou iniciar o 2o. período. Como faço pra programar para
identi car qualquer cor e suas nuances? Da pra você me enviar a programação pra que o microcontrolador
faça dessa forma.
Olá! Tenho uma dúvida referente ao módulo TCS230 sensor de cor, usei o programa abaixo para fazer a
leitura RBG, porém notei para mesma cor houve uma variação extrema, exemplo: objeto azul primeira
medição (43,43,43 ) segunda medição (103; 56; 155); terceira medição com mesmo objeto (205;155;33) e
por nas medições seguintes variando, em algumas vez o valor se manteve por 3 medições até alterar
novamente. Basicamente a unica cor que não variou foi a branca que se manteve (255;255;255);
Gostaria de saber o que posso estar fazendo para diminuir esta variação e identi car corretamente as
cores, ou se módulo esta apresentando falhas e este seria uma forma de sinal que a identi cação da cor
não está sendo reconhecida; ou se até mesmo seja algum procedimento de setup que deveria ter feito no
primeiro uso.
Segue abaixo o programa:
#include
#include
// Pinos
#de ne S0_OUT 8
#de ne S1_OUT 9
#de ne S2_OUT 12
#de ne S3_OUT 13
#de ne OE_OUT 2
colorData rgb;
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 10/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
void setup()
{
Serial.begin(57600);
CS.begin();
}
int readSensor(int i)
{
static bool waiting;
if (!waiting)
{
CS.read();
waiting = true;
}
else
{
if (CS.available())
{
CS.getRGB(&rgb);
waiting = false;
}
}
return rgb.value[i];
}
void loop()
{
Serial.print(readSensor(TCS230_RGB_R));
Serial.print(“;”);
Serial.print(readSensor(TCS230_RGB_G));
Serial.print(“;”);
Serial.println(readSensor(TCS230_RGB_B));
delay(1000);
}
Olá, montei o sensor de cor tcs3200 da mesma maneira que está no post, entretanto, o sensor mesmo sem
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 11/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
encostar nenhum objeto sobre ele, ele ca retornando valores R, G, B no serial monitor muito rápido,
mesmo sem eu clocar um objeto sobre o sensor. Por que será que isto está ocorrendo?
Olá, como vocês desenham esses esquemáticos? É pelo fritzing? Que bilbiotecas são essas?
Sim, utilizamos o Fritzing. Alguns componentes não existem no Fritzing e inserimos posteriormente.
Abraço.
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 12/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Olá…
bom dia. eu comprei um sensor tcs 3200 e utilizei a sua programação para testa o mesmo, porem ele não
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 13/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
esta identi cando as cores ele ate acende os ledes do sensor mas não identi ca as cores. eu queria saber
se vc tem ideia do que pode ser???
Olá comprei o sensor tcs3200 um lcd12x2 e um i2C, realizei o esquema acima indicado e deu tudo certo,
mas gostaria de saber como posso informar a cor em texto no LCD, gostaria também se fosse informado
outra cor ele escrever no LCD é possível ?
Amigos, vocês conhecem algum tutorial ensinando como desenvolver um calibrador para monitores? sei
que alguns modelos utilizam o TCS3200 da keystudio, mas não encontrei nada a respeito
É preciso con gurar o timer pra pegar o pulso da frequencia no caso de utilizar o pic?sou novo na
eletronica e gostaria de tirrar essa dúvida.
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 14/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Bom dia. Excelente matéria. Me tire uma dúvida: esse sensor detecta qualquer cor? Qual seria o código
para detectar a cor amarela?
Bom dia, poderia disponbilizar a biblioteca fritzing para esse sensor de cor?
Att.
Boa Tarde!
Gostaria de Saber se é possível conectar dois sensores de cor ao mesmo tempo no Arduino. Tipo, aqui na
escola estamos fazendo um robô seguidor de linha e ele precisa se orientar pela cor preta, virar quando ver
cor verde, etc.
É possível ligar dois sensores?
Att
fabricio
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 15/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Categorias
Arduino (86)
Display (7)
Embarcados (43)
ESP8266 (16)
Módulos (15)
News (37)
Outros (11)
Raspberry Pi (57)
Sensores (23)
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 16/18
27/03/2018 Identifique cores com o Sensor de Cor TCS3200 e Arduino - FilipeFlop
Shield (2)
Wearable (4)
Wireless (51)
v Assine a Newsletter
...e junte-se à maior comunidade maker do Brasil
Dúvidas Frequentes
Como comprar
Frete Grátis
Retirada em mãos
Pagamento e envio
Trocas e devoluções
Institucional
Quem Somos
Termos de Uso
Trabalhe Conosco
o
Atendimento Online
Alguma dúvida? Entre em contato!
(48) 3307-3495
https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ 18/18