PIR Motion Sensor Hookup Guide

Contributors: jimblom
Favorited Favorite 7

Example Code

Note: This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino, please review our tutorial on installing the Arduino IDE.

Here is a simple Arduino example based on the circuit above. Copy and paste this into your Arduino IDE, then upload!

Example sketch for SparkFun's PIR Motion Detector
Jim Lindblom @ SparkFun Electronics
May 2, 2016

The PIR motion sensor has a three-pin JST connector terminating it. Connect
the wire colors like this:
- Black: D2 - signal output (pulled up internally)
- White: GND
- Red: 5V

Connect an LED to pin 13 (if your Arduino doesn't already have an LED there).

Whenever the PIR sensor detects movement, it'll write the alarm pin LOW.

Development environment specifics:
Arduino 1.6.7
const int MOTION_PIN = 2; // Pin connected to motion detector
const int LED_PIN = 13; // LED pin - active-high

void setup() 
  // The PIR sensor's output signal is an open-collector, 
  // so a pull-up resistor is required:
  pinMode(LED_PIN, OUTPUT);

void loop() 
  int proximity = digitalRead(MOTION_PIN);
  if (proximity == LOW) // If the sensor's output goes low, motion is detected
    digitalWrite(LED_PIN, HIGH);
    Serial.println("Motion detected!");
    digitalWrite(LED_PIN, LOW);

After uploading, have a look at your Arduino's pin 13 LED. You can also open your serial monitor, and set the baud rate to 9600 bps.

The PIR sensor requires approximately 15 seconds of motion-free activity, while it gets a "snapshot" of it's viewing area. Try not to move until the pin 13 LED turns off, then wave your hands, jump in the air, go crazy!