Manual
do
Maker
.
com
Sempre dou preferência a dispositivos I2C pela simplicidade de uso. Ainda mais se for com Arduino; ainda mais se for com UNO. E esse sensor de cores TCS32725 é realmente interessante, uma plaquinha com driver da Adafruit, extremamente simples de usar, com sketches prontinhos.
Seguindo pelo menu Sketch > Incluir biblioteca > Gerenciar bibliotecas
bastará digitar TCS34725 e lá estará a biblioteca da Adafruit. Depois é só reiniciar a IDE do Arduino e seguir para File > Exemplos > Adafruit TCS32725 > Colorview
.
Devemos utilizar pinos que tenham PWM. O sketch usa por padrão os pinos e resistores descritos na tabela abaixo:
COR | PINO | RESISTOR |
Red | 3 | 560 ohms |
Green | 5 | 1K ohms |
Blue | 6 | 560 ohms |
Vou deixar a tabela de wiring do I2C para o caso de você escolher outro Arduino para a tarefa.
Board | I2C/TWI |
Uno, ethernet | A4 (SDA), A5 (SCL) |
Mega2560 | 20 (SDA), 21 (SCL) |
Leonardo | 2 (SDA), 3 (SCL), SDA, SCL |
Due | 20 (SDA), 21 (SCL), SDA1, SCL1 |
Não tem segredo, está escrito sobre a board VCC, GND, SDA, SCL. Tudo o que precisamos fazer é conectá-los os respectivos pontos, conforme a tabela acima.
Não vou colar o código aqui porque esse primeiro artigo estou utilizando o padrão de exemplo. Mas tem algo que gostaria de citar.
Existem LEDs RGB que possuem anodo comum e LEDs RGB que possuem cathodo comum. Isto é, quando o anodo for comum, significa que cada um dos pinos de cores acendem a respectiva cor quando forem a GND. O PWM ora fará isso, é como uma lógica invertida. Para 1 LED, não tem problema que ele seja cathodo comum, uma vez que cada pino do Arduino suporta até 40mA de drenagem de corrente e o LED consumirá no máximo 25mA. Atente-se a isso, conforme o comportamento do seu LED RGB, mude a variável:
#define commonAnode true
Caso contrário o reconhecimento de cores ocorrerá normalmente, mas a representação no LED não corresponderá.
Com esse sketch você já conseguirá fazer seu teste inicial e é fundamental que o faça para não ter dúvidas do funcionamento do dispositivo em sua implementação. Eu farei em breve uma implementação bacana, vou ver se consigo fazê-la com LEDs RGB endereçáveis, é só aguardar!
A saída do monitor serial nesse print exibe a variação na cor vermelha, que utilizei para esse propósito:
Na coluna da direita os valores são exibidos em hexadecimal, 2 Bytes para cada cor (que representam valores entre 0 e 255). Vou aproveitar alguns parâmetros desse sketch para minha implementação e esse é um deles, pois podemos criar uma representação gráfica da cor que está sendo capturada. Será divertido, acompanhe!
Acho que nem é necessário citar, mas cometi a estupidez de soldar o slot para cima, como você vê na imagem de destaque. O LED do sensor também está desse lado e o slot está atrapalhando a aproximação, então, quando for soldar, coloque o slot do lado debaixo da placa.
Minha recomendação é que pegue essa placa da Adafruit no Baú da eletrônica (clique). É um hardware de excelente qualidade, vale cada centavo! E já deixe-a pronta para brincarmos juntos no próximo artigo relacionado!
Espero que tenha sido uma leitura agradável.
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.