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:

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():

 

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 newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Projetos Arduino e Eletrônica – https://www.facebook.com/groups/projetosarduinoeletronica/

ESP8266 BR – https://www.facebook.com/groups/ESP8266BR/

Próximo post a caminho!

 

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.