Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate 5 de setembro de 2023

Introdução

O sensor de cor RGB TCS34725 pode detectar cores como Vermelho, Verde e Azul (RGB é do nome respectivo dessas cores em inglês) e, também, luz clara. O sensor possui um filtro IR embutido na placa, que minimiza o espectro Infravermelho. Este funciona através do protocolo de comunicação I₂C, que facilita o uso do sensor por se tratar apenas de dois fios para a comunicação. Segundo a fabricante, esse sensor é bom para projetos de: medição da temperatura de luz clara, classificação de cores de produtos ou até controle de luzes ambientes.

 


Circuito

O circuito será o seguinte:


Código

O código será o seguinte:

//Incluindo as bibliotecas
#include <Adafruit_SSD1306.h>
#include "Adafruit_TCS34725.h"

//Configurando o endereço do sensor e do display
Adafruit_TCS34725 sensTCS = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_300MS, TCS34725_GAIN_1X);
Adafruit_SSD1306 display(-1);

void setup() {
 //Inicia o display
 display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
 Serial.begin(9600);
 //Inicia o sensor e diz se ele conectou ou não
  if (sensTCS.begin()) {
    Serial.println("Sensor conectado");
  } else { //Se o sensor não conectou , mostra a mensagem de erro
    Serial.println("Sensor com problema");
  } 
  //Limpa o display antes de começar
  display.clearDisplay();
}

void loop() {
  //declaramos as variáveis
  uint16_t r, g, b, c, TempCor, LUX;

  //O sensor lê os valores do Vermelho (R), Verde(G), Azul(B)
  sensTCS.getRawData(&r, &g, &b, &c);
  
  //Calcula a temperatura da cor 
  TempCor = sensTCS.calculateColorTemperature(r, g, b);
  
  //Calcula a luminosidade 
  LUX = sensTCS.calculateLux(r, g, b);

  Serial.print("Vermelho(R): ");
  Serial.print(r); //escreve no monitor serial o valor do Vermelho

  Serial.print("   Verde(G): ");
  Serial.print(g);//escreve no monitor serial o valor do Verde

  Serial.print("   Azul(B): ");
  Serial.print(b);//escreve no monitor serial o valor do Azul

  Serial.print("   Temperatura: ");
  Serial.print(TempCor); //escreve no monitor serial o valor da Temperatura da Cor

  Serial.print("   Intensidade: ");
  Serial.println(LUX); //escreve no monitor serial o valor da intensidade luminosa


//escreve no display a cor referente a leitura do sensor
  if (c < 5000) {
    if (r > b && r > g && r > 100) { // faz a comparação dos valores para ver se é vermelho
      display.clearDisplay();
      display.setTextSize(2);
      display.setTextColor(WHITE); 
      display.setCursor(20,8); 
      display.println("Vermelho"); 
      display.display();
      delay(100);
    }
    else if (g > r && g > b && g > 100 ) { // faz a comparação dos valores para ver se é verde
      display.clearDisplay();
      display.setTextSize(2);
      display.setTextColor(WHITE); 
      display.setCursor(30,8); 
      display.println("Verde"); 
      display.display();
      delay(100);
    }
    else if (b > r && b > g && b > 100) { // faz a comparação dos valores para ver se é azul
      display.clearDisplay();
      display.setTextSize(2);
      display.setTextColor(WHITE); 
      display.setCursor(30,8); 
      display.println("Azul"); 
      display.display();
      delay(100);
    }

  }
  

}

Considerações


Nesse exemplo, ele compara se o Verde(G) é maior do que o Vermelho(R), compara se o Verde(G) é maior que o Azul(B), e se o valor dado é maior do que 100.


Testes

Caso precise de fazer algum ajuste, é possível ver os valores lidos em tempo real ao abrir o monitor serial.


Sobre o Autor


Arthur Almeida

Estudante do Ensino médio , aficionado por criar novos projetos eletrônicos e automações, principalmente com o Arduino. No meu tempo livre eu gosto de pesquisar sobre novas tecnologias e tento criar projetos com elas.


Eletrogate

5 de setembro de 2023

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!