PIR Motion Sensor 

 

The PIR motion sensor is ideal to detect movement. PIR stand for “Passive Infrared”. Basically, the PIR motion sensor measures infrared light from objects in its field of view.

So, it can detect motion based on changes in infrared light in the environment. It is ideal to detect if a human has moved in or out of the sensor range.

 

Pir motion sensor2

 

 

The sensor in the figure above has two built-in potentiometers to adjust the delay time (the potentiometer at the left) and the sensitivity (the potentiometer at the right).

 

Pinout

Wiring the PIR motion sensor to an Arduino is pretty straightforward – the sensor has only 3 pins.

 

  • GND – connect to ground
  • OUT – connect to an Arduino digital pin
  • 5V – connect to 5V
  •  

Parts required

 

Pir motion sensor1

 

Here’s the required parts for this project

  • 1x PIR Motion Sensor (HC-SR501)
  • Arduino UNO 
  • 1x LED
  • Jumper Cables

 

 

Schematics

 

Assemble all the parts by following the schematics below.

Pir motion sensor3

 

Code

 

Upload the following code.

DOWNLOAD FREE GUIDE: Ultimate Guide for Arduino Modules and Sensors

 

/*  

    Arduino with PIR motion sensor

    For complete project details, visit: http://RandomNerdTutorials.com/pirsensor

    Modified by Rui Santos based on PIR sensor by Limor Fried

*/

 

int led = 13;                // the pin that the LED is atteched to

int sensor = 2;              // the pin that the sensor is atteched to

int state = LOW;             // by default, no motion detected

int val = 0;                 // variable to store the sensor status (value)



void setup() {

  pinMode(led, OUTPUT);      // initalize LED as an output

  pinMode(sensor, INPUT);    // initialize sensor as an input

  Serial.begin(9600);        // initialize serial

}



void loop(){

  val = digitalRead(sensor);   // read sensor value

  if (val == HIGH) {           // check if the sensor is HIGH

    digitalWrite(led, HIGH);   // turn LED ON

    delay(100);                // delay 100 milliseconds 

    

    if (state == LOW) {

      Serial.println("Motion detected!"); 

      state = HIGH;       // update variable state to HIGH

    }

  } 

  else {

      digitalWrite(led, LOW); // turn LED OFF

      delay(200);             // delay 200 milliseconds 

      

      if (state == HIGH){

        Serial.println("Motion stopped!");

        state = LOW;       // update variable state to LOW

    }

  }

}

view raw   Projects/Arduino_with_PIR_motion_sensor.ino

 

 

Les commentaires sont clôturés