Every mad scientist’s lab, or teenager’s secret room, needs advanced protection against intrusion by rogue agents or siblings. you are one of them, you should probably consider getting a Passive infrared (PIR) sensor for you. PIR sensors allow you to detect when someone is in your room when they shouldn’t be.Though it may seem like something out of a spy movie, you likely use PIR sensors every day.This sensor is the same you will find in most modern security systems, automatic light switches, garage door openers, and similar applications where the operation of some electrical device is necessary only in the presence of humans.
How does PIR Motion Sensor work?
If you didn’t know, all objects with a temperature above Absolute Zero (0 Kelvin / -273.15 °C) emit heat energy in the form of infrared radiation, including human bodies. The hotter an object is, the more radiation it emits.PIR sensor is specially designed to detect such levels of infrared radiation. It basically consists of two main parts: A Pyroelectric Sensor and A special lens called the Fresnel lens which focuses the infrared signals onto the pyroelectric sensor.
A Pyroelectric Sensor actually has two rectangular slots in it made of a material that allows the infrared radiation to pass.Behind these, are two separate infrared sensor electrodes, one responsible for producing a positive output and the other a negative output. The reason for that is that we are looking for a change in IR levels and not ambient IR levels. The two electrodes are wired up so that they cancel each other out. If one half sees more or less IR radiation than the other, the output will swing high or low.
When the sensor is idle, i.e. there is no movement around the sensor; both slots detect the same amount of infrared radiation, resulting in a zero output signal.But when a warm body like a human or animal passes by; it first intercepts one half of the PIR sensor, which causes a positive differential change between the two halves. When the warm body leaves the sensing area, the reverse happens, whereby the sensor generates a negative differential change. The corresponding pulse of signals results in the sensor setting its output pin high.
HC-SR501 PIR Motion Detector
For most of our Arduino projects that need to detect when a person has left or entered the area or has approached, HC-SR501 P I R sensors are a great choice. They are low power and low cost, pretty rugged, have a wide lens range, easy to interface with, and are insanely popular among hobbyists.
HC-SR501 PIR sensor has three output pins VCC, Output, and Ground as shown in the diagram below. It has a built-in voltage regulator so it can be powered by any DC voltage from 4.5 to 12 volts, typically 5V is used. Other than this, there are a couple of options you have with your PIR. Let’s check them out.
There are two potentiometers on the board to adjust a couple of parameters:
Sensitivity– This sets the maximum distance that motion can be detected. It ranges from 3 meters to approximately 7 meters. The topology of your room can affect the actual range you achieve.
Time– This sets how long that the output will remain HIGH after detection. At minimum it is 3 seconds, at maximum, it is 300 seconds or 5 minutes.
Finally, the board has a jumper (on some models the jumper is not soldered in). It has two settings:
H– This is the Hold/Repeat/Retriggering In this position the HC-SR501 will continue to output a HIGH signal as long as it continues to detect movement.
L– This is the Intermittent or No-Repeat/Non-Retriggering In this position the output will stay HIGH for the period set by the TIME potentiometer adjustment.
Making HC-SR501 PIR Sensor more versatile
The HC-SR501 circuit board has solder pads for two additional components. These are usually labeled as ‘RT’ and ‘RL’. Note that on some boards the labels may be covered by the “dome” lens on the side opposite the components.
RT– This is meant for a thermistor or temperature-sensitive resistor. Adding this allows the HC-SR501 to be used in extreme temperatures, it also increases the accuracy of the detector to some degree.
RL– This connection is for a Light Dependent Resistor (LDR) or Photoresistor. By adding this component the HC-SR501 will only operate in darkness, a common application for motion-sensitive lighting systems.
The additional components can be soldered directly to the board or extended to remote locations using wires and connectors.
HC-SR501 PIR Sensor Pinout
The HC-SR501 has a 3-pin connector that interfaces it to the outside world. The connections are as follows:
VCC is the power supply for HC-SR501 PIR sensor which we connect the 5V pin on the Arduino.
Output pin is a 3.3V TTL logic output. LOW indicates no motion is detected, HIGH means some motion has been detected.
GND should be connected to the ground of Arduino.
Using PIR Sensor as a standalone unit
One of the reasons of the HC-SR501 PIR sensor is extremely popular is the fact that HC-SR501 is a very versatile sensor that is pretty capable all on its own. And by interfacing it to some microcontrollers like an Arduino you can expand upon its versatility even further. For our first experiment, we will use the HC-SR501 on its own to illustrate how useful it is by itself.
Using PIR Sensor as a standalone unit
One of the reasons the HC-SR501 PIR sensor is extremely popular is the fact that HC-SR501 is a very versatile sensor that is pretty capable all on its own. And by interfacing it to some microcontrollers like an Arduino you can expand upon its versatility even further. For our first experiment, we will use the HC-SR501 on its own to illustrate how useful it is by itself.
The wiring for this experiment is very simple. Batteries are connected across the VCC and GND of the sensor and a small Red LED is connected to the output pin through a 220Ω current limiting resistor. That’s it!
Now when the PIR detects motion, the output pin will go “high” and light up the LED!
Remember once you power up the circuit you need to wait 30-60 seconds for the PIR to acclimatize to the infrared energy in the room. During that time the LED may blink a little. Wait until the LED is off and then move around in front of it, waving a hand, etc, to see the LED light up!
Wiring – Connecting PIR Sensor to Arduino UNO
Now that we have a complete understanding of how PIR sensor works, we can begin hooking it up to our Arduino!
Connecting PIR sensors to a microcontroller is really simple. The PIR acts as a digital output so all you need to do is listen for the output pin to flip HIGH (Motion Detected) or LOW (Not Detected). Power the PIR with 5V and connect ground to ground. Then connect the output to a digital pin #2.
You will want to set the jumper on the HC-SR501 to the H (Retriggering) position for this to work correctly. You’ll also need to set the TIME to a minimum of 3 seconds and turn the TIME potentiometer as far counterclockwise as it will go. Set the sensitivity anywhere you like, set it to midpoint if you are not sure.
With that, you’re now ready to upload some code and get the PIR working.
The code is very simple and basically just keeps track of whether the input to pin#2 is HIGH or LOW.
At the end, we will print a message on the serial monitor when motion is detected.
Things to consider before designing PIR-based applications
As with most PIR sensors, the HC-SR501 requires some time to acclimatize to the infrared energy in the room. This takes from 30 to 60 seconds when the sensor is first powered up.
In addition, the sensor has a “reset” period of about 5 or 6 seconds after making a reading. During this time it will not detect any motion.
When designing a system based upon the HC-SR501 you will need to take these delay periods into account.