0. Componentes e programação necessários para a instalação do sensor de reconhecimento de cores GY-31 TCS230 TCS3200 e Arduino UNO

Componentes necessários:

{Produto: 2.000} {Produto: 1281}

I. Como usar um sensor de reconhecimento de cores GY-31

Este breve tutorial explica como detectar o movimento de indivíduos quando eles passam pelo sensor, graças à nossa placa Arduino e um sensor de movimento HC-SR501. Usando o código de exemplo abaixo, você pode ler o sensor e controlar o LED integrado do Arduino (conectado ao pino 13). Este código também pode ser usado para controlar relés simples para ligar ou desligar uma luz maior.

Para obter mais informações sobre os produtos ou suas descrições técnicas, entre em nosso site Solectro Shop.

II. Procedimentos experimentais

Conexão

O módulo é alimentado diretamente por Arduino , portanto, não precisamos de uma fonte de alimentação externa. Os pinos são conectados de acordo com a tabela:

Pino do sensor

Arduino por Arduino UNO

VCC

5V

S1

D4

S0

D3

Liderado

5V

GND

GND

S3

D6

S2

D5

Fora

D2

Os outros dois pinos do módulo do sensor são conectados à sonda de medição usando os cabos fornecidos, conforme mostrado no diagrama a seguir, usando cabos duplos diretamente ou através de uma placa de ensaio:


Operação

O TCS3200 é um sensor óptico que permite detectar a cor que capta na frente dele do objeto. Internamente, o TCS3200 consiste em uma matriz de fotodiodo de silício junto com um conversor de frequência, em um único chip CMOS. Podemos usá-lo para reconhecer a cor de uma carta ou objeto e guiar um robô em uma jornada. No exemplo a seguir, lemos o TCS3200. Para isso, usamos a função PulseIn para determinar a duração do pulso recebido pelo sensor.

Realizamos o processo para cada cor e utilizamos os valores obtidos para classificá-la em vermelho, azul ou verde.

Abra um novo esboço e cole o seguinte código:

// VCC —— 5V

// GND —— GND

// S0 —— D3

// S1 —— D4

// S2 —— D5

// S3 —— D6

// OUT —— D2

const int s0 = 8;

const int s1 = 9;

const int s2 = 12;

const int s3 = 11;

const int out = 10;

byte countRed = 0;

byte countGreen = 0;

byte countBlue = 0;

void setup () {

Serial.begin (9600);

pinMode (s0, OUTPUT);

pinMode (s1, OUTPUT);

pinMode (s2, OUTPUT);

pinMode (s3, OUTPUT);

pinMode (out, INPUT);

digitalWrite (s0, HIGH);

digitalWrite (s1, HIGH);

}

void loop () {

getColor ();

Serial.print ("Vermelho:");

Serial.print (countRed, DEC);

Serial.print ("Verde:");

Serial.print (countGreen, DEC);

Serial.print ("Azul:");

Serial.print (countBlue, DEC);

if (countRed <countBlue && countGreen> 100 && countRed <80)

{

Serial.println ("- Vermelho");

}

else if (countBlue <countRed && countBlue <countGreen)

{

Serial.println ("- Azul");

}

else if (countGreen <countRed && countGreen <countBlue)

{

Serial.println ("- Verde");

}

outro {

Serial.println ("-");

}

atraso (300);

}

void getColor ()

{

digitalWrite (s2, LOW);

digitalWrite (s3, LOW);

countRed = pulseIn (out, digitalRead (out) == HIGH? LOW: HIGH);

digitalWrite (s3, HIGH);

countBlue = pulseIn (out, digitalRead (out) == HIGH? LOW: HIGH);

digitalWrite (s2, HIGH);

countGreen = pulseIn (out, digitalRead (out) == HIGH? LOW: HIGH);

}