Como usar um sensor de presença PIR com Arduino
Os sensores de presença mais comuns usam sensores PIR (Passive Infrared Sensor, ou Sensor Infravermelho Passivo) como detector de movimentos. No Arduino, temos o módulo PIR DYP-ME003, que une numa mesma estrutura o sensor PIR e também os circuitos necessários para ajuste e controle do sinal de saída. Vamos então ver como usar este sensor de presença com Arduino.
O módulo contém o sensor PIR propriamente dito, composto internamente por duas faixas com material sensível ao infravermelho. Na parte externa, uma espécie de capa/tampa que na verdade é uma lente fresnel.
Como funciona o sensor PIR
Quando há variação na detecção do sinal infravermelho entre essas duas faixas de material sensível, a saída é acionada por um determinado tempo. A lente fresnel tem a função de, vamos dizer assim, “ampliar” o campo de visão do sensor, condensando a luz em um único ponto.
Felizmente existem figuras para traduzir toda essa teoria e mostrar de uma forma mais clara como isso funciona.
Abaixo, o sensor PIR, a lente fresnel e as duas faixas de detecção, acionadas quando alguém passa em frente ao sensor:
Nessa outra figura, uma representação de como funciona uma lente fresnel:
Resumidamente, é assim que a coisa funciona. Uma explicação muito melhor e mais detalhada você encontra no datasheet do módulo, nesse link.
Vamos então para a parte boa, analisando o módulo e testando-o com um Arduino Uno. 🙂
No lado esquerdo da imagem, o módulo sem a lente, com o sensor exposto. No lado direito, a parte inferior do módulo, com os 2 pinos de alimentação (4.5 à 20 volts ) e sinal, os potenciômetros para ajuste da sensibilidade e tempo de acionamento da saída, e também o jumper que controla o modo de operação do trigger (gatilho):
Apenas preste atenção quando for ligar o seu módulo, pois alguns apresentam os pinos Vcc e GND invertidos. Na dúvida, consulte o datasheet do seu módulo ou verifique as indicações na placa.
Conexão do sensor de presença no arduino
Nesse módulo, praticamente não há necessidade de programação no Arduino, já que a saída é colocada em HIGH (ALTO), quando um objeto for detectado, e permanece assim pelo tempo que configurarmos no potenciômetro. Basta então definirmos o que será feito com as saídas do Arduino:
No loop do programa, o valor lido da porta 3 (ligada ao pino de sinal do sensor), é constantemente checado, e caso ocorra movimentação em frente ao sensor, o led vermelho ligado à porta 5 é acionado. Caso contrário, é o led azul ligado à porta 6 que permanece acionado.
// Programa : Sensor de presenca com modulo PIR // Autor : Arduino e Cia int pinoledverm = 5; //Pino ligado ao led vermelho int pinoledazul = 6; //Pino ligado ao led azul int pinopir = 3; //Pino ligado ao sensor PIR int acionamento; //Variavel para guardar valor do sensor void setup() { pinMode(pinoledverm, OUTPUT); //Define pino como saida pinMode(pinoledazul, OUTPUT); //Define pino como saida pinMode(pinopir, INPUT); //Define pino sensor como entrada } void loop() { acionamento = digitalRead(pinopir); //Le o valor do sensor PIR if (acionamento == LOW) //Sem movimento, mantem led azul ligado { digitalWrite(pinoledverm, LOW); digitalWrite(pinoledazul, HIGH); } else //Caso seja detectado um movimento, aciona o led vermelho { digitalWrite(pinoledverm, HIGH); digitalWrite(pinoledazul, LOW); } }
E o resultado desse experimento você confere no vídeo abaixo :
Por fim, se você planeja melhorar esse circuito e acionar um relé ou adicionar um buzzer, recomendo a leitura dos posts usando relés e também posts com buzzer.
Boas tardes , Como faço as ligaçoes no arduino /PIRSEN8630 – PIR MODULE/ e display1.0" SINGLE DIGIT ALPHANUMERIC DISPLAY, possivel amostrar em digrama ou esquema?
Cumprimentos
Bom dia João,
Estou preparando um post para ligação do PIR em um display 16×2. Você tem um link para esse display alfanumerico que você mencionou ?
Abraço e obrigado !
Sim tenho , um link do display alpha numerico,
http://www.ptrobotics.com/matrizes/1615-10-single-digit-alphanumeric-display.html
Cumprimentos
Boas novamente então e possivel mandar o diagrama desses componentes?
Cumpriemntos
Boa tarde João,
Ainda não tenho nada preparado com esse tipo de display.
Abraço !
Boas, mas e possivelq que tenhas amanha ou sabado ?
Cumprimentos
Boa tarde João,
Não tenho esse display, e tenho alguns artigos para publicar antes.
De qualquer forma, assim que possível farei algo nesse sentido.
Abraço !
Okey obrigado, mas se substituir o meu sensor PIR, por este que está no diagrama trabalha da mesma maneira ? CErto ?
Abraço
Boa tarde João,
Sim, apenas verifique a ordem de ligação dos pinos, mas o esquema é o mesmo.
Abraço !
Boas e possivel ligar duuas ventoinnas e um motor , se sim como e possivel?
Cumpriimentos
Boa tarde João,
Sim, é possível, você pode utilizar relés ligados às saídas do Arduino para acionar tudo isso.
Abraço !
Okey obrigado , em caso de resistencias do diagrama , tipo eu nao tenho daquelas , Dá para substituir por qual resistencia ?
Cumprimentos
Bom dia,
Aqui eu usei resistencias de 330 ohms… mas tenho também de 1,7 K, 10 K e outras.. Tente algumas de maior valor. O máximo que pode acontecer é o led ficar com pouco brilho.
Abraço !
Boas Noites, Substitui as resistencias por resistencias de 1O K , utilizei dos leds um vermelho outro alaranjado , e substitui por o tal sensor PIR 8630, só a programação é a mesma ,mas so da um led vermelho e fica sempre acesso, nunca muda para o outro , qual o problema aqui ?
Cumprimentos
Boa noite João,
O led vermelho deve acender quando for detectado algum movimento. Tente ajustar a sensibilidade do sensor PIR, se houver um potenciômetro para isso.
Abraço !
bom dia muito bom este material. Eu gostaria de saber se consigo ativar e desativar o sensor pir via bluetooth, simulando como se fosse um alarme residencial.
Obrigado
Boa tarde Rodrigo,
Sim, você pode fazer uma subrotina que habilita o módulo PIR somente enquanto uma determinada variável (setada via BT) não tiver o seu valor alterado. Ficaria mais ou menos assim :
Se (variavel_BT = false)
{
habilita_sensor_PIR();
}
senao
{
\comandos
}
Abraço !
Olá amigo boa noite, gostaria de saber se tem com usar um projeto igual a esse sem ter que usar resistor
Boa noite,
Você vai precisar dos resistores para não danificar os leds.
Abraço.
Desculpe a minha ignorância mas, se eu não utilizar os leds, não será preciso utilizar os resistores? Gostaria de enviar os estados para um arquivo xml,
Bom dia!
Sem leds, sem resistores.. pode ligar só o módulo PIR mesmo… 🙂
Abraço!
Não consigo copilar o programa, aparece o erro "Arduino: 1.6.5 (Windows 7), Placa:"Arduino/Genuino Uno"
Cannot run program "{runtime.tools.avr-gcc.path}binavr-g++" (in directory "."): CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
Este relatório deveria ter mais informações
"Mostrar saída verbosa durante a compilação"
habilitado em Arquivo > Preferências."
o que pode ser?
Boa noite…
por algum problema (que não sei qual) parece q o sensor está sempre ativado. não desativa nunca.
já fiz testes com outros sensores e a mesma coisa.
Será que é algum problema de fábrica do sensor?
E pra usar um potenciômetro, como q faço?
Atenciosamente,
Henrique
Bom dia Henrique,
Você já tentou ajustar a sensibilidade mexendo no potenciômetro do módulo ?
Abraço!
Boa noite… Henrique, no meu caso o VCC e GND estavam invertido, e acabava ocorrendo o mesmo problema que você está descrevendo. Verifica ai, abraço.
Boa Junior,
Eu tinha esquecido desse detalhe. Realmente alguns módulos vem com esses pinos invertidos.
Abraço!
Boa tarde. e se eu usar o mesmo esquema pra ligar tres LED. E possivel?
Boa tarde,
É sim, apenas adicione as portas necessárias no programa. 🙂
Abraço!
Boa noite, Rodrigo.
Gostaria de saber se tem como testar um sensor sem ter que aciona-lo no campo, apenas verificando através do software do arduino no notbook.
obrigado.
Boa noite existe a possibilidade de colocar Som conforme o acionamento dos sensores? existe um limite? existe placa menor ou é só deste tamanho para sensores? Obrigado…
Boa tarde, gostaria de saber se é possivel colocar determinado tipo de sons conforme o acionamento do sensor e até quantos sensores eu consigo colocar na placa!! Obrigado!!
Boa noite,
É possível sim, utilize o comando Tone ou a biblioteca Newtone para fazer isso. Quanto à quantidade de sensores, vai depender da sua placa, mas como o sensor PIR usa apenas um pino de sinal, você pode ligar vários sensores ao mesmo tempo.
Abraço!
Boa noite, fiz a pratica e varios outros teste modificando o potenciometro da sensibilidade, mas fica sempre acionado o sensor, mesmo sem nada na frente.
Sabe oq pode ser?
Oi Diego,
Alguns módulos estão vindo com os pinos Vcc e GND invertidos, em relação ao que eu usei no post. Seria isso ?
Abraço!
qual o valor dos resistores q tem q usar ?
Boa tarde,
Eu usei resistores de 330ohms, mas use os valores adequados aos leds que você tem.
Abraço!
Boa noite.
Gostaria de saber se o módulo só detecta o movimento ou se detecta a presença de algo dentro de um campo de distância, ou seja, no caso de colocar a mão na frente e continuar com ela no mesmo lugar o sensor entrará em HIGH e depois em LOW ou permanecerá em HIGH?
Agradeço desde já
Boa noite
Gostaria de saber se os sensores funcionam apenas como sensor de movimento ou de presença momentânea, ou seja, se colocar um objeto na frente dele ele irá para alto e depois para baixo ou ficará em alto até tirar o objeto? Tenho quase certeza que deve ser a primeira opção, porém preciso de algo que funcione igual a segunda.
Agradeço desde já
Como acrescentar o sensor PIR ao modulo relé para acender uma lâmpada ?
Dá pra fazer sem arduíno. Uma fonte de 5v pra alimentar os componentes e ligar a saída do módulo PIR direto na entrada do módulo de relê. As regulagens de tempo faz direto pelo potenciômetro do PIR
Boa tarde!! Da pra fazer um dector de presença com o sensor de luminosidade
Oi Elias,
Até dá.. mas eu usaria um PIR mesmo… 🙂
Abraço!
Olá, é possível unir este sensor de presença com o sensor de temperatura ds18b20 proposto em http://www.arduinoecia.com.br/2013/04/sensor-de-temperatura-ds18b20-arduino.html
Olá
Poderia me informar a distância que este sensor alcança e se ele pode ser mais viável para substituir um sensor ultrassônico?
Boa noite Wadson,
Segundo informações do fabricante ele alcança até 10 metros. Depende da sua aplicação, mas o sensor ultrassônico é mais fácil de utilizar e medir distâncias, por exemplo.
Abraço!
Fiz todo o processo corretamente.. porém só um led se mantém acesso.. o pir não ativa a outra led.. o que poderá está acontecendo
Parabéns, muito bom o material, me ajuda com uma dúvida, eu liguei o PIR em um nodemcu com a seguinte ligação vcc do PIR no 3.3v do nodemcu, GND do PIR no GND do node e o sinal do PIR na GPIO 13 do nodemcu.
Ate que funcionou bem por um tempo, mais logo o nodemcu fritou que cheirou queimado. O nodemcu estava na usb do notebook e eu estava mexendo no potenciometro do PIR quando senti o cheiro de queimado.
O que eu fiz de errado? Pode me ajudar a fazer da forma correta?
Segui esse tutorial:
https://www.youtube.com/watch?v=wA10w_zZ-Mo&t=1s
olá, como faço para que o sensor ao detectar o movimento ele abra a porta e permaneça assim enquanto estiver detectando um movimento e ao parar de detectar o mesmo o motor feche a porta?
ola estou querendo fazer um joystick no formato de um volante para jogar via bluetooth no celular e afins no uso de VR mas não consigo achar um sensor de movimento que pareça que tem em alguns controles , não quero por tipo desde post alguém sabe me indicar qual o mode e onde vende desde já agradeço !
olá , como faço para acrescentar mais um sensor de presença nesse código ?
será que podes me explicar?
Meu sensor chegou hoje, e fui testar conforme mostrado no post, e o mesmo não estava funcionando corretamente, retornando apenas HIGH. Quando tirei aquela capinha de plastico, notei que a ligação era invertida em relação a ligação do site, agora ligando certo o sensor fica oscilando entre LOW e HIGH, mesmo sem nada pra detectar. Existe alguma maneira de consertar?
Oi Guilherme,
Pois é, isso acontece com frequencia e alguns módulos vem com os pinos invertidos, por isso é bom checar antes de ligar. Na maioria dos casos que eu vi ligar de forma invertida danifica o módulo.
Abraço!
Adilson
Olá, gostaria de saber se é possível montar essa estrutura usando arduíno com sensor de presença para ativação de um vídeo sempre que o sensor for acionado. Você venderia esse mini pc? Obrigado
Bom dia Victor,
Nesse caso, eu recomendo para você um projeto usando Raspberry Pi. Se houver interesse, entre em contato utilizando o formulário de contato no lado direito da página.
Abraço!
Adilson
Eu tenho o ensor de movimento pir dyp-me003 raspberry pi 3 le preciso saber se consigou usa-lo em ligação em serieserie, pois qtenho um projeto qe vou usar 4 sensores em um retangulo e quando um sensor detectar um objeto automaticamento o outro tem que desconsiderar (desligado).
Obrigada e fico no aguardo
Oi Silvia,
Acho que você não precisa nem ligar em série. Pode controlar o acionamento pela própria Raspberry (quando um sensor for acionado, você “desliga” os outros).
Abraço!
Adilson
voce poderia ter declarado a variavel acionamento como bool e ter usado true e false, o que facilita o programa
Boa, Pedro!
Abraço.
Adilson
Consigo mandar algum comando para o PC via usb do arduino?
Oi Alexandre!
Tudo bem? Procure sobre o protocolo Firmata para Arduino. Creio que tenha o que você precisa.
Abraço!
Adilson
[…] saber mais sobre a funcionalidade do sensor PIR motion? Veja este excelente post do nosso parceiro Arduino e […]
Dica: retire a capa de plástico do sensor para ver a pinagem correta do seu sensor: VCC, GND e OUT
😉
De fato, existem sensores nos quais o VCC e Terra estão invertidos, como no meu caso.