sábado, 3 de abril de 2021

EX36 - Detector de cores usando Arduino Uno

Figura 01 - Módulo Sensor TCS3200


    
Neste projeto, faremos a interface do sensor de cores TCS3200 com o Arduino UNO. O TCS3200 é um sensor de cores que pode detectar qualquer número de cores com a programação correta. TCS3200 contém matrizes RGB (Red Green Blue). Conforme mostrado na figura em nível microscópico, pode-se ver as caixas quadradas dentro do olho no sensor. Essas caixas quadradas são matrizes RGB.  
    Cada uma dessas caixas contém três sensores, um para detectar a intensidade da luz VERMELHA, um para detectar a intensidade da luz VERDE e o último para detectar a intensidade da luz AZUL.
    Cada uma das matrizes de sensores nessas três matrizes é selecionada separadamente, dependendo do requisito. Por isso é conhecido como  sensor programável. O módulo pode ser caracterizado para detectar a cor específica e deixar as outras. Ele contém filtros para esse propósito de seleção. 

Há um quarto modo que não é um modo de filtro. Sem modo de filtro, o sensor detecta luz branca. 

    
Componentes necessários
: Hardware e Software:  
  • ARDUINO UNO, 
  • Fonte de alimentação (5v), 
  • LED's vermelho, verde e azul, 
  • Display JHD_162A LCD (16 * 2LCD), 
  • Sensor de cores TCS3200.
  • Software: ARDUINO IDE.
    Diagrama de circuito e explicação do trabalho
    No LCD 16x2 existem 16 pinos ao todo, se houver uma luz de fundo, se não houver luz de fundo, haverá 14 pinos. Pode-se ligar ou deixar os pinos da luz de fundo. Agora, nos 14 pinos, há 8 pinos de dados (7-14 ou D0-D7), 2 pinos de fonte de alimentação (1 e 2 ou VSS e VDD ou GND e + 5v), 3º pino para controle de contraste (VEE-controla a espessura dos caracteres mostrado), e 3 pinos de controle (RS & RW & E)
Figura 02 - Detector de cores com Sensor TCS3200
    No circuito, você pode observar que tirei apenas dois pinos de controle. O bit de contraste e READ / WRITE não são usados ​​com frequência, portanto, podem ser colocados em curto com o aterramento. Isso coloca o LCD no mais alto contraste e modo de leitura. Precisamos apenas controlar os pinos ENABLE e RS para enviar caracteres e dados de acordo. As conexões que são feitas para LCD são fornecidas abaixo:
  • PIN1 ou VSS para aterrar;
  • PIN2 ou VDD ou VCC para alimentação de + 5v;
  • PIN3 ou VEE para aterrar (oferece contraste máximo ou mínimo);
  • PIN4 ou RS (Registrar Seleção) para o PIN8 do ARDUINO UNO;
  • PIN5 ou RW (leitura / gravação) para aterrar (coloca o LCD no modo de leitura e facilita a comunicação para o usuário);
  • PIN6 ou EN (Ativar) para PIN9 do ARDUINO UNO;
  • PIN11 ou D4 a PIN4 do ARDUINO UNO;
  • PIN12 ou D5 a PIN5 do ARDUINO UNO;
  • PIN13 ou D6 a PIN6 do ARDUINO UNO;
  • PIN14 ou D7 a PIN7 do ARDUINO UNO
    As conexões que são feitas para o sensor de cores são fornecidas abaixo:
  • VDD para + 5V
  • GND para GROUND
  • OE (habilitação de saída) para GND
  • S0 para PIN0 do ARDUINO UNO;
  • S1 para PIN1 do ARDUINO UNO;
  • S2 para PIN2 do ARDUINO UNO;
  • S3 para PIN3 do ARDUINO UNO;
  • OUT para PIN A1 do ARDUINO UNO;
    As conexões que são feitas para os LED's são fornecidas abaixo:
  • LED Vermelho na saída A3
  • LED Verde da saída A4
  • LED Azul da saída A5
 
Figura 03 - Sensor TCS3200

   
A cor que precisa ser detectada pelo sensor de cores é selecionada por dois pinos S2 e S3. Com esses dois pinos de controle lógico, podemos dizer ao sensor qual cor de intensidade de luz deve ser medida.
    Digamos que precisamos sentir a intensidade da cor VERMELHA de que precisamos definir os dois pinos como BAIXO. Feito isso, o sensor detecta a intensidade e envia o valor para o sistema de controle dentro do módulo.
  • S2 S3 Tipo de Fotodiodo;
  • L L Vermelho;
  • L H Azul;
  • H L Branco (sem filtro);
  • H H Verde;

Figura 04 - Diagrama funcional do
Sensor TCS3200
    O sistema de controle dentro do módulo é mostrado na figura. A intensidade da luz medida pela matriz é enviada à corrente para o conversor de frequência. O que ele faz é, ele emite uma onda quadrada cuja frequência é em relação à corrente enviada por ARRAY.
    Portanto, temos um sistema que envia uma onda quadrada cuja frequência depende da intensidade da luz da cor que é selecionada por S2 e S3.
Figura 05 - Resposta de frequência do
Sensor TCS3200

    
A frequência do sinal enviada pelo módulo pode ser modulada dependendo do uso. Podemos alterar a largura de banda da frequência do sinal de saída.
  • S0 S1 Escala de frequência de saída (f 0 )
  • L L Desligar
  • L H 2%
  • H L 20%
  • H H 100%
    A escala de frequência é feita por dois bits S0 e S1. Por conveniência, vamos limitar a escala de frequência a 20%. Isso é feito configurando S0 para alto e S1 para BAIXO. Este recurso é útil quando estamos usando o módulo em um sistema com clock baixo. A sensibilidade da matriz à cor é mostrada na figura 04.
    Embora cores diferentes tenham sensibilidade diferente, para um uso normal não fará muita diferença.
Figura 06 - Detector de cores com Arduino e
Sensor TCS3200
    
O Arduino UNO aqui envia sinal ao módulo para detectar cores e os dados recebidos pelo módulo são mostrados no LCD 16 * 2 conectado a ele. O Arduino UNO detecta três intensidades de cor separadamente e as mostra no LCD.
    O Arduino UNO pode detectar a duração do pulso do sinal pelo qual podemos obter a frequência da onda quadrada enviada pelo módulo. Com a frequência disponível, podemos combiná-la com a cor do sensor.
  • Frequência interna = pulseIn (A1, LOW);
    Como por condição acima o Arduino UNO  lê duração do impulso no pino A1 e armazena-o em valor inteiro “frequência”.
    Faremos isso para todas as três cores para reconhecimento de cores . Todas as três intensidades de cor são mostradas por frequências no LCD 16x2.

O manual com diagrama elétrico da placa do Color Sensor TCS3200 está disponìvel em:  Color Sensor TCS3200.

O arquivo do código fonte Detector de cores  está disponível em: 21_03_27_Detector_de_cores_SRG (PDF).

O arquivo do diagrama elétrico Detector de cores estará disponível em: 21_03_27_Circuito_Detector_de_cores_SRG (PDF).

© Direitos de autor. 2021: Gomes; Sinésio Raimundo. Última atualização: 01/04/2021 

Nenhum comentário:

Postar um comentário