O Sensor de Movimento PIR HC-SR501 funciona detetando o calor emitido em forma de radiação infravermelha por pessoas, animais ou objetos. Está formado por um sensor piroelétrico dividido em duas zonas sensíveis; a radiação infravermelha e uma lente especial chamada “lente fresnel” que multiplica a zona de deteção, é essa tampa branca em forma de cúpula a cima do sensor piroelétrico.
Quando o sensor piroelétrico deteta que uma destas zonas se encontra em diferente estado da outra, por exemplo, quando uma pessoa ou um objeto entra na zona de deteção, este emite-nos sinal.
Ajustes do sensor
No circuito impresso do sensor estão soldados 2 potenciómetros e um jumper que nos permitem modificar o seu comportamento e adaptá-lo às nossas necessidades ajustando o alcance de deteção, tempo de rearmado, comportamento, deteção repetitiva, etc….
#1: Modo de trabalho: Através deste jumper, selecionamos se queremos que o sensor funcione de modo contínuo, ou seja, se o sensor detetar movimento de maneira continuada vai manter um sinal continuo, ou em modo repetição. Neste modo, o sensor ativa ao detetar movimento e volta a seguir ao estado de repouso, não vai funcionar de maneira contínua ainda que detete movimento. Na fotografia, podem-se ver ligados os pinos 1 e 2, neste caso o modo de trabalho seria contínuo, para ativar o modo repetição temos que ligar os pinos 2 e 3.
#2: Sensibilidade do sensor: Com este potenciómetro aumenta ou diminui a sensibilidade do sensor piroeléctrico para ajustar a distância e a quantidade de movimento necessário para activar, por exemplo, para distinguir entre uma pessoa e um mascote.
#3: Temporizador: Com este potenciómetro ajustamos o tempo que se activará o sensor una vez que se dispare, o alcance está entre 3 segundos e 5 minutos. Se o sensor está configurado em modo continuo, o valor deste potenciómetro é irrelevante.
Montagem e ligações
As ligações do sensor HC-SR501 são muito simples, ligamos o pino VCC do sensor à saída de 5V do Arduino, o pino OUT do sensor ao pino analógico A5 do Arduino e o pino GND do sensor a qualquer pino GND do Arduino.
O negativo do LED é conectado a um GND do Arduino e o pino positivo do LED é ligado ao pino 9 do Arduino com uma resistência de no mínimo 220 Ohms intercalada para não quimar. Para mais detalhes, veja a seguinte imagem:
Sketch de ensaio
//Declaramos os pinos que vamos a usar int analogPin = A5; //Analogico A5 para o sensor int ledPin = 9; //Digital 9 para o LED //Declaramos uma variável para armazenar o valor que nos devolve o sensor int val = 0; void setup() { Serial.begin(9600); //Iniciamos a comunicação serial pinMode(ledPin, OUTPUT); //Configuramos o pino digital 9 como saída pinMode(analogPin, INPUT); //Configuramos o pino analogico A5 como entrada } void loop() { val = analogRead(analogPin); //Lemos o valor analogico que nos devolve o sensor if(val > 100) //Si o valor é maior que 100 { Serial.println(val); //Sacamos o valor do sensor por serial digitalWrite(ledPin,HIGH); //Acendemos o LED delay(3000); //Fazemos uma pausa de 3 segundos } else //Se o valor é menor que 100 { Serial.println(val); //Obtemos o valor do sensor por serial digitalWrite(ledPin,LOW); //Apagamos o LED } }
O sensor vai estar a funcionar e ao enviar um valor baixo, quando uma pessoa ou objeto cruze a zona de deteção, o sensor vai disparar enviando um valor alto, superando o limite estabelecido em código e ativando o LED. Quando o objeto sair da zona de deteção a leitura do sensor voltará a baixar ao seu valor normal e o LED vai-se apagar.
Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.
Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.
Não se esqueçam de fazer like na nossa Página no Facebook.
Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?