Manual
do
Maker
.
com
Como usar o Sensor de movimento infravermelho com Arduino - Sabe esse sensor que liga a luz no corredor quando você passa, lá no edificío que você mora? Ele é chamado sensor PIR, ou sensor de presença infra-vermelho, ou sensor de movimento infravermelho com Arduino, PIC ou qualquer outra MCU. Ele retorna um sinal digital quando detecta alteração na espectro infra-vemelho mapeado.PIR significa Passive Infrared, ou seja, ele detecta o infravermelho emitido pelo ambiente e nosso corpo tende a emitir essa luz com mais intensidade. Como você já deve ter percebido (e passado raiva), ele pode estar mal calibrado e reagir somente em um ângulo muito pequeno em relação à sua posição; também o delay entre as checagens pode ser muito alto, por isso é necessário fazer os ajustes de sensibilidade do dispositivo.
As cores são:
Preto: sinal
Bege: ground
Vermelho: +5V
Repare no código a simplicidade de operação, para Arduino UNO:
short unsigned int PIR = 7; //leitura
short unsigned int LED = 6; //PWM
short unsigned int valor; //armazena o valor da leitura
void setup(){
Serial.begin(9600);// Para exibir na serial
pinMode(PIR, INPUT); //READ
pinMode(LED,OUTPUT); //WRITE
}
void loop(){
valor = digitalRead(PIR);
//Quando o valor for 1, não há movimento
if (valor){
digitalWrite(LED,LOW);
}
//Se for 0, então há movimento. Acender o LED.
else{
digitalWrite(LED,HIGH);
delay(1000);
}
}
Pra variar, não tenho o desenho do sensor de movimento infravermelho, então utilizei um sensor de proximidade infra-vermelho para exemplo. O esquema na protoboard ficou assim:
Para acender uma lâmpada o circuito deverá acionar um relê. Existem alguns shields prontos com relês para arduino e também pequenos relês em circuitos montados, mas se quiser fazer seu próprio circuito para acionar relê, recomendo a leitura deste outro post.
Repare no video que o sensor leva um tempo para estabilizar novamente e dessa proximidade ele é um pouco inconstante. Ou seja; após fazer uma leitura, siga fazendo algumas novas amostragens quando seu estado mudar e dentro do intervalo de 1s tome uma ação, invés de agir a cada leitura u utilizar um delay muito alto. Veja o vídeo.
Simples demais, não? Então aguarde o próximo post; vamos brincar com display de 8 seguimentos para um byte.
Se gostou, não deixe de compartilhar; dê seu like no video e inscreva-se no nosso canal Manual do Maker Brasil no YouTube.
Próximo post a caminho!
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.