blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Materiais Necessários para o Projeto Utilizando Sensores I₂C com o Mesmo Endereço
  • Circuito
  • Código
  • Explicação da Função
  • Testes Finais
  • Sobre o Autor
Projetos

Utilizando Sensores I₂C com o Mesmo Endereço

Eletrogate 26 de setembro de 2023

Introdução

O protocolo I2C foi criado pela Philips Semicondutors com o intuito de conectar dispositivos de baixa velocidade. Ele funciona utilizando apenas dois fios para a comunicação: o SCL (Serial Clock) e o SDA (Serial Data). Para fazer essa comunicação, o Microcontrolador é declarado Master (Mestre), e os demais sensores como Slaves (Escravos). E isso é alcançável graças ao uso dos endereços, que são únicos. Como todos os TCS34725 têm o mesmo endereço, surge a ideia de conectar dois sensores I₂C na mesma placa Arduino Uno, utilizando o CI Demultiplexador CD4051.


Materiais Necessários para o Projeto Utilizando Sensores I₂C com o Mesmo Endereço

  • CI Decodificador CD4051 – Multiplexador/Demultiplexador
  • Uno R3 SMD CH340
  • Jumpers – Macho/Macho – 65 Unidades
  • Protoboard 400 Pontos
  • 2x Módulo Sensor de Cor RGB TCS34725 com Filtro IR

Circuito

O circuito será o seguinte:


Código

O código será o seguinte:

//inclui as bibliotecas
#include <Wire.h>
#include "Adafruit_TCS34725.h"

//indica o endereço dos sensores
Adafruit_TCS34725 sensTCS1 = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_300MS, TCS34725_GAIN_1X);
Adafruit_TCS34725 sensTCS2 = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_300MS, TCS34725_GAIN_1X);

//Configura os pinos que irão se conectar ao Chip CD4051
const int pinAddA = 5;
const int pinAddB = 6;
const int pinAddC = 7;

void setup() {

  Serial.begin(9600);
  pinMode(pinAddA, OUTPUT); //define as portas como saída
  pinMode(pinAddB, OUTPUT);
  pinMode(pinAddC, OUTPUT);

  selSens1(); //chama a função para escolher o sensor 1 
    if (sensTCS1.begin()) {
    Serial.println("Sensor1 conectado"); // verifica se o sensor se conectou com sucesso
  } else { 
    Serial.println("Sensor1 com problema");
  } 

  selSens2(); //chama a função para escolher o sensor 2
    if (sensTCS2.begin()) {
    Serial.println("Sensor2 conectado"); // verifica se o sensor se conectou com sucesso
  } else { 
    Serial.println("Sensor2 com problema");
  }

}

void loop() {
  //declara os variáveis locais 
  uint16_t r1, g1, b1, c1, TemperaturaDaCor1, LUX1; 
  uint16_t r2, g2, b2, c2, TemperaturaDaCor2, LUX2;

  selSens1(); //chama a função para selecionar o sensor 1 
  sensTCS1.getRawData(&r1, &g1, &b1, &c1); //recebe os valores de R,G,B e luminosidade
  TemperaturaDaCor1 = sensTCS1.calculateColorTemperature(r1, g1, b1); //calcula a temperatura da cor 
  LUX1 = sensTCS1.calculateLux(r1, g1, b1);
  
    if (c1 < 5000) { //se a luminosidade for menor do que 5000 
    if (r1 > b1 && r1 > g1 && r1 > 100) { //compara os valores de R , G e B para mostrar qual cor está na frente do sensor
      Serial.println("Sens1 : Vermelho");
      delay(100);
    }
    else if (g1 > r1 && g1 > b1 && g1 > 100 ) { 
      Serial.println("Sens1 : Verde");
      delay(100);
    }
    else if (b1 > r1 && b1 > g1 && b1 > 100) { 
      Serial.println("Sens1 : Azul");
      delay(100);
    }
  }
 
  selSens2(); //chama a função para selecionar o sensor 2
  sensTCS2.getRawData(&r2, &g2, &b2, &c2); //recebe os valores de R,G,B e luminosidade
  TemperaturaDaCor2 = sensTCS1.calculateColorTemperature(r2, g2, b2);
  LUX2 = sensTCS2.calculateLux(r2, g2, b2);
  
    if (c2 < 5000) { //se a luminosidade for menor do que 5000 
    if (r2 > b2 && r2 > g2 && r2 > 100) { //compara os valores de R , G e B para mostrar qual cor está na frente do sensor
      Serial.println("Sens2 : Vermelho");
      delay(100);
    }
    else if (g2 > r2 && g2 > b2 && g2 > 100 ) { 
      Serial.println("Sens2 : Verde");
      delay(100);
    }
    else if (b2 > r2 && b2 > g2 && b2 > 100) { 
      Serial.println("Sens2 : Azul");
      delay(100);
    }
  }

}

void selSens1() { //função responsável por selecionar o sensor 1 
  digitalWrite(pinAddA, LOW);
  digitalWrite(pinAddB, LOW);
  digitalWrite(pinAddC, LOW);
}

void selSens2() { //função responsável por selecionar o sensor 2 
  digitalWrite(pinAddA, HIGH);
  digitalWrite(pinAddB, LOW);
  digitalWrite(pinAddC, LOW);
}

Explicação da Função

De acordo com os 3 pinos do chip que estão conectados, é possível selecionar qual sensor será lido naquele momento.


Testes Finais

https://blog.eletrogate.com/wp-content/uploads/2023/08/WhatsApp-Video-2023-08-18-at-02.33.36.mp4

 


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

26 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.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Blog

Rodando Doom na Uno

Eletrogate5 de dezembro de 2023

No post de hoje, faremos o clássico jogo DOOM na Arduino Uno. O jogo DOOM foi lançado inicialmente em 1994 pela empresa id Software, mas tem continuações até hoje.

Blog

Rodando Doom na Uno

Eletrogate5 de dezembro de 2023

No post de hoje, faremos o clássico jogo DOOM na Arduino Uno. O jogo DOOM foi lançado inicialmente em 1994 pela empresa id Software, mas tem continuações até hoje.

Automação Residencial

Sistema de Monitoramento de CPD

Eletrogate28 de novembro de 2023

Sistema para monitoramento de CPD ou algum tipo sala que exija cuidados com Temperatura, Umidade, Luminosidade, detector de presença, detecção de fogo e fumaça.

Automação Residencial

Sistema de Monitoramento de CPD

Eletrogate28 de novembro de 2023

Sistema para monitoramento de CPD ou algum tipo sala que exija cuidados com Temperatura, Umidade, Luminosidade, detector de presença, detecção de fogo e fumaça.

Projetos

Kit DIY Detector de metais

Eletrogate21 de novembro de 2023

Neste post, apresentaremos o passo a passo para a montagem de nosso kit Do-It-Yourself detector passivo de metais.

Projetos

Kit DIY Detector de metais

Eletrogate21 de novembro de 2023

Neste post, apresentaremos o passo a passo para a montagem de nosso kit Do-It-Yourself detector passivo de metais.

Automação Residencial

Detecção de Movimento com Sensor PIR e LDR

Eletrogate14 de novembro de 2023 Atualizado em: 17 nov 2023

Se você está em busca de maneiras de reduzir o consumo de energia e, ao mesmo tempo, adicionar um toque de automação à sua casa, este guia é para você. Vamos explorar como criar um detector de movimento que acende as luzes somente em condições de baixa luminosidade e detecão de movimentos no ambiiente, graças a um sensor PIR e um sensor de luz LDR.

Automação Residencial

Detecção de Movimento com Sensor PIR e LDR

Eletrogate14 de novembro de 2023 Atualizado em: 17 nov 2023

Se você está em busca de maneiras de reduzir o consumo de energia e, ao mesmo tempo, adicionar um toque de automação à sua casa, este guia é para você. Vamos explorar como criar um detector de movimento que acende as luzes somente em condições de baixa luminosidade e detecão de movimentos no ambiiente, graças a um sensor PIR e um sensor de luz LDR.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

[email protected]


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.