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