Projeto de sensor de proximidade utilizando infravermelho


O vídeo mostra o Arduino com um sensor Infra-vermelho detectando a entrada e saída de pessoas no LdG.

A ligação dos componentes com o Arduino está demonstrada abaixo:

Os fios do Infravermelho são: amarelo – dados(pino analogico A0), vermelho – 5V e preto – GND. Os pinos do buzzer são: preto - GND e vermelho – VCC(configurado para o pino digital 8 para quando o buzzer apitar, este será 5V).

Os LEDs foi configurado para as portas 2 e 3. Quando alguém chega, o Led verde acende e toca duas notas em uma sequência e quando alguém sai, o Led vermelho acende e toca duas notas em outra sequência. Para tocar notas diferentes, foi utilizada a biblioteca Tone para Arduino.

A programação que foi utilizada está abaixo:

#include <Tone.h> //Include the library 

int IRpin= A0; //IR's pin

int Irval=0; //The value of IR

int threshold=100; //The threshold to activate the IR

int error = 10; //The error of IR

int temp[20]={0}; //Store the samples

int x=0; //Counter to temp

int y=0; //Counter to approaching

int z=0; //Counter to go away

int last = 0; //The last sample

int derivative = 0; //The derivative of samples

Tone player; //To play different tones

int note[]={NOTE_A3,NOTE_G4}; //The notes to play

void setup()

{

Serial.begin(9600);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

player.begin(11);

}

void loop()

{

x=0;

y=0;

z=0;

if(analogRead(IRpin)>=threshold)

{

do

{

IRval=analogRead(IRpin);

derivative = IRval - last;

last = IRval;

temp[x]=derivative;

Serial.println(temp[x]);

//Serial.println(IRval);

x++;

delay(75);

}while(x<20);

x=0;

for(x=0;x<20;x++)

{

if(temp[x]>=error)

{

y=y+1;

}

if(temp[x]<-error)

{

z=z+1;

}

}

Serial.print("approaching y=");

Serial.println(y);

Serial.print("go away z=");

Serial.println(z);

if(y>z && y>3)

{

Serial.println("Approaching");

digitalWrite(2, HIGH);

player.play(note[0]);

delay(200);

player.play(note[1]);

delay(200);

player.stop();

}

else if(z>y && z>3)

{

Serial.println("Go away");

digitalWrite(3, HIGH);

player.play(note[1]);

delay(200);

player.play(note[0]);

delay(200);

player.stop();

}

delay(200);

digitalWrite(2, LOW);

digitalWrite(3, LOW);

}

}


Referências:

http://www.arduino.cc/

http://arduino.cc/playground/

http://labdegaragem.com/


Exibições: 27385

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de ciede junior em 24 junho 2015 às 23:19

Olá eu consigo fazer ele acionar uma porta automatica na hora que a pessoa fica na frente do sensor? e fazer ela fechar.

Comentário de otavio augusto d souza em 14 julho 2013 às 22:56

bom projeto, gostaria de fazer algo parecido, mas no meu projeto o buzer só pode tocar, se o sensor captar entrada ou saida(no caso o movmento)3 vezes no intervalo de uma hora.alguem pode ajudaar

Comentário de Claudio Gularte Junior em 17 maio 2013 às 1:44

Paulo,

Tenta com este código aqui!  -> http://pastebin.com/6U1ka5Mi

É o mesmo código que esta aqui postado.

O detalhe e que tem que estar com a versão 0.23 e a biblioteca do Tone instalada.

Qualquer duvida pergunta ai, depois fala se deu tudo certo. 

Comentário de paulo varella em 16 maio 2013 às 21:29

a minha Copilacao ta dando erro,mas nao informa oq [e

ja alterei essa variavel IRval

Comentário de Claudio Gularte Junior em 9 abril 2013 às 23:34

Pessoal,

O meu erro era muito simples, a variável era iniciada, mas com a letra em minusculo. Só arruma no inicio do programa o seguinte variável desta forma.

De "Irval" para "IRval".

Comentário de Claudio Gularte Junior em 3 abril 2013 às 16:10

Estou tendo erro na seguinte parte:

Alguma sugestão? 

Comentário de carlos peterson da silva em 16 outubro 2012 às 16:48

otimo projeto, estou querendo montar um parecido com esse. Mas em vez de utilizar um LED para identificar a entrada e saida de pessoas queria mandar um sinal para aumentar ou diminuir a temperatura de um ar condicionado de uma sala. Queria saber se você Achar se é possível essa ideia. aguardo resposta....

Comentário de Luiz Fernando Amaral Santos em 10 abril 2012 às 9:55

otimo projeto, estou querendo montar uma torneira inteligente.... com a sua idéia, estava querendo trocar o buzzer por uma chave com transistor que aciona uma solenoide que libera a valvula da agua, certo? e somente um led para informar que a mão está próxima ao sensor... se eu estiver correto, você acha que o sensor reconhece as mãos???

Comentário de ezequiel da silva daniel em 9 abril 2012 às 10:36

Bom projeto!, o sensor usado, que tipo de sensor é, qual seu sinal, sabe em qual loja posso comprar pela internet esse sensor?

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço