PIR motion sensors
PIR sensors allow you to sense motion, almost
always used to detect whether a human has moved in or out of the sensors range.
They are small, inexpensive, low-power, easy to use and don't wear out. For
that reason they are commonly found in appliances and gadgets used in homes or
businesses. They are often referred to as PIR, "Passive Infrared",
"Pyroelectric", or "IR motion" sensors.
PIRs are basically made
of a pyroelectric sensor (which you can see above as the round metal can
with a rectangular crystal in the center), which can detect levels of infrared
radiation. Everything emits some low level radiation, and the hotter something
is, the more radiation is emitted. The sensor in a motion detector is actually
split in two halves. The reason for that is that we are looking to detect
motion (change) not average IR levels. The two halves 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.
Along with the
pyroelectic sensor is a bunch of supporting circuitry, resistors and
capacitors. It seems that most small hobbyist sensors use the BISS0001 ("Micro Power PIR
Motion Detector IC") , undoubtedly a very inexpensive chip. This chip takes the output
of the sensor and does some minor processing on it to emit a digital output
pulse from the analog sensor.
For many basic projects or products that need to
detect when a person has left or entered the area, or has approached, PIR
sensors are great. They are low power and low cost, pretty rugged, have a wide
lens range, and are easy to interface with. Note that PIRs won't tell you how
many people are around or how close they are to the sensor, the lens is often
fixed to a certain sweep and distance (although it can be hacked somewhere) and
they are also sometimes set off by housepets. Experimentation is key!
These stats are for the
PIR sensor in the Adafruit shop which is very much like the Parallax one . Nearly all PIRs will have slightly different
specifications, although they all pretty much work the same. If there's a
datasheet, you'll want to refer to it
·
Size: Rectangular
·
Output: Digital
pulse high (3V) when triggered (motion detected) digital low when idle (no
motion detected). Pulse lengths are determined by resistors and capacitors on
the PCB and differ from sensor to sensor.
·
Sensitivity range: up to 20 feet (6 meters) 110° x 70° detection range
·
Power supply: 5V-9V input voltage,
More links!
PIR sensors are more complicated than many of
the other sensors explained in these tutorials (like photocells, FSRs and tilt
switches) because there are multiple variables that affect the sensors input
and output. To begin explaining how a basic sensor works, we'll use this rather
nice diagram (if anyone knows where it originates plz let me know).
The PIR sensor itself
has two slots in it, each slot is made of a special material that is sensitive
to IR. The lens used here is not really doing much and so we see that the two
slots can 'see' out past some distance (basically the sensitivity of the
sensor). When the sensor is idle, both slots detect the same amount of IR, the
ambient amount radiated from the room or walls or outdoors. 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. These change pulses are what is detected.
[Citation
needed]
The IR sensor itself is housed in a hermetically
sealed metal can to improve noise/temperature/humidity immunity. There is a
window made of IR-transmissive material (typically coated silicon since that is
very easy to come by) that protects the sensing element. Behind the window are
the two balanced sensors.
You can see above the diagram showing the
element window, the two pieces of sensing material
This image shows the internal schematic. There
is actually a JFET inside (a type of transistor) which is very low-noise and
buffers the extremely high impedence of the sensors into something a low-cost
chip (like the BIS0001) can sense.
PIR sensors are rather generic and for the most
part vary only in price and sensitivity. Most of the real magic happens with
the optics. This is a pretty good idea for manufacturing: the PIR sensor and
circuitry is fixed and costs a few dollars. The lens costs only a few cents and
can change the breadth, range, sensing pattern, very easily.
In the diagram up top,
the lens is just a piece of plastic, but that means that the detection area is
just two rectangles. Usually we'd like to have a detection area that is much
larger. To do that, we use a simple lens such as those found in a camera: they condenses a large area (such
as a landscape) into a small one (on film or a CCD sensor). For reasons that
will be apparent soon, we would like to make the PIR lenses small and thin and
moldable from cheap plastic, even though it may add distortion. For this reason
the sensors are actually Fresnel lenses :
The Fresnel lens condenses light, providing a
larger range of IR to the sensor.
OK, so now we have a much larger range. However,
remember that we actually have two sensors, and more importantly we dont want
two really big sensing-area rectangles, but rather a scattering of multiple
small areas. So what we do is split up the lens into multiple section, each
section of which is a fresnel lens
Here you
can see the multiple facet-sections
This
macro shot shows the different Frenel lenses in each facet!
The different faceting and sub-lenses create a
range of detection areas, interleaved with each other. Thats why the lens
centers in the facets above are 'inconsistant' - every other one points to a
different half of the PIR sensing element
Here is another image, more qualitative but not
as quantitative. (Note that the sensor in the Adafruit shop is 110° not 90°)
Most PIR modules have a 3-pin connection at the
side or bottom. The pinout may vary between modules so triple-check the pinout!
It's often silkscreened on right next to the connection. One pin will be
ground, another will be signal and the final one will be power. Power is usually
3-5VDC input but may be as high as 12V. Sometimes larger modules dont have
direct output and instead just operate a relay in which case there is ground,
power and the two switch connections.
The output of some relays may be 'open
collector' - that means it requires a pullup resistor. If you're not getting a
variable output be sure to try attaching a 10K pullup between the signal and
power pins.
An easy way of prototyping with PIR sensors is
to connect it to a breadboard since the connection port is 0.1" spacing.
Some PIRs come with header on them already, the ones from Adafruit don't as
usually the header is useless to plug into a breadboard.
By soldering in 0.1" right angle header, a
PIR is easily installed into a breadboard!
Most people want to position PIRs in a particular
location and often times thats far from the other electronics, in which case
wires will work just fine.
Once you have your PIR
wired up its a good idea to do a simple test to verify that it works the way
you expect. This test is also good for range testing. Simply connect 3-4
alkaline batteries (make sure you have more than 3.5VDC out but less than 6V by
checking with your multimeter!) and connect ground to the - pin on your PIR. Power goes to the + pin. Then connect a basic red LED (red LEDs have
lower forward voltages than green or blue so they work better with only the
3.3v output) and a 220Ω resistor (any value from 100Ω to 1.0KΩ will do fine) to
the out pin as shown. Of course, the LED and resistor
can swap locations as long as the LED is oriented connection and connects
between out and ground
Now when the PIR detects motion, the output pin
will go "high" to 3.3V and light up the LED!
Once you have the breadboard wired up, insert
batteries and wait 30-60 seconds for the PIR to 'stabilize'. 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!
Once you have the LED
blinking, look on the back of the PIR sensor and make sure that the jumper is
placed in the L position as shown above.
Now set up the testing board again. You may
notice that when connecting up the PIR sensor as above, the LED does not stay
on when moving in front of it but actually turns on and off every second or so.
That is called "non-retriggering".
Now change the jumper so
that it is in the H position.
If you set up the test, you will notice that now the LED does stay on the entire time that something is
moving. That is called "retriggering"
(The graphs above are from the BISS0001
datasheet, they kinda suck)
For most applications, "retriggering"
(jumper in H position) mode is a little nicer. If you need to connect the
sensor to something edge-triggered, you'll want to set it to
"non-retriggering" (jumper in L position).
There are two 'timeouts'
associated with the PIR sensor. One is the "Tx" timeout: how long the LED is lit after it
detects movement. The second is the "Ti" timeout which is how long the LED is guaranteed to be off
when there is no movement. These are not easily changed but if you're handy with a soldering iron it is within
reason.
First, lets take a look at the BISS datasheet
again
Determining R10 and R9 isnt too tough.
Unfortunately this PIR sensor is mislabeled (it looks like they swapped R9
R17). You can trace the pins by looking at the BISS001 datasheet and figuring
out what pins they are - R10 connects to pin 3 and R9 connects to pin 7. the
capacitors are a little tougher to determine, but you can 'reverse engineer'
them from timing the sensor and solving!
For the sensor in the Adafruit shop:
Tx is = 24576 * R10 * C6 = ~1.2 seconds
R10 = 4.7K and C6 = 10nF
Likewise,
Ti = 24 * R9 * C7 = ~1.2 seconds
R9 = 470K and C7 = 0.1uF
You can change the
timing by swapping different resistors or capacitors.
for documentation of the pir