ESTUDANDO O MUNDO ARDUINO:E ANTECIPANDO O FUTURO: | ||
SENSOR DE PRESENÇA P.I.R. | ||
acessar com www.ebanataw.com.br/arduino/expPIR.htm |
O sensor de presença tipo PIR
(Passive Infrared Sensor, ou Sensor Infravermelho Passivo) serve para detectar
movimentos no ambiente. Instalado dentro de uma capa protetora, uma lente
fresnel que melhora a sensibilidade do sensor.
Ele fica o tempo todo
“vendo” os objetos e quando ocorre uma variação no sinal infravermelho a saída é
acionada por um determinado tempo. A lente fresnel tem a função de "ampliar" o
campo de visão do sensor, condensando a luz.
Na parte de baixo
encontramos os 2 pinos de alimentação (4,5 a 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).
Atenção quando for fazer as
conexões pois alguns módulos apresentam os pinos Vcc e GND invertidos. Na
dúvida, consulte o datasheet do módulo ou verifique as indicações na placa.
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, isto é, se vai acionar algum alarme.
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);
}
}
|
NOTA: Este site é mantido pela equipe do engenheiro Roberto Massaru Watanabe e se destina principalmente para adolecentes e estudantes. Pelo caráter pedagógico do site, seu conteúdo pode ser livremente copiado, impresso e distribuido. Só não pode piratear, isto é, copiar e depois divulgar como se fosse de sua autoria.
ET-18\RMW\arduino\mascara.htm em 08/02/2018, atualizado em 02/01/2020 .