Manual

do

Maker

.

com

Sensor de cores TCS230 com Arduino

Sensor de cores TCS230 com Arduino

Existem algumas possibilidades de fazer detecção de cores de baixo custo utilizando Arduino. Atualmente existem alguns módulos bastante baratos, dentre eles, o TCS230. Esse dispositivo (conjunto com o CI) tem sugestão de formato especificada no datasheet, por isso é muito comum encontrar o mesmo formato de diversos integradores. Já escrevi um artigo de deteção de cores com um modelo que eu mesmo desenvolvi, sem considerar as curvas das cores. Se tiver interesse, eis o artigo escrito para utilização com PIC e Arduino.

Biblioteca

Não é complicado escrever tudo diretamente no sketch principal, mas uma biblioteca vem bem a calhar. Para isso, uma boa opção é essa biblioteca, que possui um exemplo bastante simples de utilização. Clone a biblioteca com o git ou baixe o zip, então descomprima-a no diretório do Arduino, dentro de Libraries; apenas isso. Essa biblioteca tem uma dependência da TimerOne, utilizada para fazer interrupções de forma fácil. Se não conhece a TimerOne ou não tem noção de timers e interrupções, leia esse outro artigo, onde falo a respeito. Pela própria IDE do Arduino, em Library Manager você encontra a TimerOne para instalação.

Código de exemplo

O sketch de exemplo se chama "simple read" e estará disponível no menu File--Examples--TCS320. Abra-o e troque os pinos definidos na inicialização do dispositivo:

tcs230->initialize(3, 12, 11);

O primeiro pino deve ser o 2 ou 3 no Arduino UNO e é o pino de OUTPUT, devido à necessidade de manipulação de interrupções. Depois são os pinos S2 e S3, cujo pinos você pode definir conforme sua necessidade ou disponibilidade. Só preste atenção no pinout da board. Nela se encontram silkados os nomes de cada um dos pinos, portanto não é necessário um wiring de exemplo. O outro detalhe que deve ser notado; o pino OE (Output Enabled) deve ir a GND.

Pra finalizar, você precisa adicionar ao código os pinos S0 e S1, configurados a uma frequência de 2%. Pelo datasheet, 2% é equivalente a LOW e HIGH respectivamente, então eu adicionei da seguinte maneira em setup():

  ...
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  
  tcs230->initialize(3, 12, 11);

  digitalWrite(8,LOW);
  digitalWrite(9,HIGH);
...

 

Feito conforme descrito anteriormente, agora basta subir o sketch. Coloque algo branco sobre o sensor e então abra o terminal serial e aguarde a calibração, onde deverá aparecer 255 para Red, Green e Blue. A partir daí, comece a brincar com o que quiser tirar amostra. Testei rapidamente com um azul água em tom pastel e por incrível que pareça o sensor tentou imitar o fosco da cor, escurecendo-a com acinzentamento.

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.