PIR Detector SR505

pir-sr505

This tiny PIR, movement detector is simple to use and only has three pins, +, Рand OUT. it works with 5 volts. Connect the Рto the Arduino Gnd, the + to the Arduino 5 volts and the OUT to any digital pin ( I have used pin 8) set as an input. At rest, with no movement the OUT pin is 0 volts (LOW), movement within two to three feet will trigger the SR505 and the OUT pin will rise to 5 volts (HIGH).

There is about a five second ‘latch’ after the movement has stopped, the output staying HIGH, before going LOW again. I have used an LED connected to Arduino pin 7 to show when the SR505 has detected movement, the Arduino’s LED on pin 13 will be ON when there is no movement and OFF during movement and this LED could be used to show the detector is waiting for movement.

The simple sketch is shown below and sits in a loop waiting for the SR505 to trigger. One improvement could be to connect the OUT to an Arduino Interrupt pin this would allow another sketch to run until movement is detected. One application could be to run a display when a visitor is within range etc.

/*******************************************************
* SR505 PIR Detector
*
* by Chris Rouse December 2016
*
* SR505
* + to Arduino 5v
* – to Arduino Gnd
* OUT to Arduino Pin 8
*
* LED connect to pin 7 through a 220R resistor
*
* Once triggered the OUTPUT will stay HIGH for about 5 seconds
*
* Maximum range is about 2 to three feet
*/

#define PIR 8 // the PIR output
#define LED 7 // indicator LED
#define LED13 13 // onboard LED

void setup() {
pinMode(PIR, INPUT);
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
pinMode(LED13, OUTPUT);
digitalWrite(LED13, LOW);
}

void loop() {
// the output from the SR505 will go HIGH if movement is detected
if(digitalRead(PIR) == HIGH){
digitalWrite(LED, HIGH);
digitalWrite(LED13, LOW);
}
else{
digitalWrite(LED, LOW);
digitalWrite(LED13, HIGH);
}

} // END