Mobile
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.
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
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);