Using A PIR W/Arduino | PIR Motion Sensor - Adafruit Learning System

Skip to main content PIR Motion Sensor Using a PIR w/Arduino
  • Overview
  • How PIRs Work
  • Connecting to a PIR
  • Testing a PIR
  • Using a PIR w/Arduino
  • CircuitPython Code
  • Example Projects
  • Buy a PIR Motion Sensor
  • Single page
  • Feedback? Corrections?
  • Text View
Primary Products
  • PIR (motion) sensor with a cable around it. PIR (motion) sensor $9.95 Add to Cart
200 Intermediate Product guide 💕 2

Using a PIR w/Arduino

Reading PIR Sensors

Connecting PIR sensors to a microcontroller is really simple. The PIR acts as a digital output, it can be high voltage or low voltage, so all you need to do is listen for the pin to flip high (detected) or low (not detected) by listening on a digital input on your Arduino

Its likely that you'll want retriggering, so be sure to put the jumper in the H position!

Power the PIR with 5V and connect ground to ground. Then connect the output to a digital pin. In this example we'll use pin 2.

proximity_pirardbb.gif The code is very simple, and is basically just keeps track of whether the input to pin 2 is high or low. It also tracks the state of the pin, so that it prints out a message when motion has started and stopped. Download File Copy Code /* * PIR sensor tester */ int ledPin = 13; // choose the pin for the LED int inputPin = 2; // choose the input pin (for PIR sensor) int pirState = LOW; // we start, assuming no motion detected int val = 0; // variable for reading the pin status void setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin, INPUT); // declare sensor as input Serial.begin(9600); } void loop(){ val = digitalRead(inputPin); // read input value if (val == HIGH) { // check if the input is HIGH digitalWrite(ledPin, HIGH); // turn LED ON if (pirState == LOW) { // we have just turned on Serial.println("Motion detected!"); // We only want to print on the output change, not state pirState = HIGH; } } else { digitalWrite(ledPin, LOW); // turn LED OFF if (pirState == HIGH){ // we have just turned of Serial.println("Motion ended!"); // We only want to print on the output change, not state pirState = LOW; } } } /* * PIR sensor tester */ int ledPin = 13; // choose the pin for the LED int inputPin = 2; // choose the input pin (for PIR sensor) int pirState = LOW; // we start, assuming no motion detected int val = 0; // variable for reading the pin status void setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin, INPUT); // declare sensor as input Serial.begin(9600); } void loop(){ val = digitalRead(inputPin); // read input value if (val == HIGH) { // check if the input is HIGH digitalWrite(ledPin, HIGH); // turn LED ON if (pirState == LOW) { // we have just turned on Serial.println("Motion detected!"); // We only want to print on the output change, not state pirState = HIGH; } } else { digitalWrite(ledPin, LOW); // turn LED OFF if (pirState == HIGH){ // we have just turned of Serial.println("Motion ended!"); // We only want to print on the output change, not state pirState = LOW; } } } Don't forget that there are some times when you don't need a microcontroller. A PIR sensor can be connected to a relay (perhaps with a transistor buffer) without a micro!

Page last edited March 08, 2024

Text editor powered by tinymce.

Testing a PIR CircuitPython Code Related Guides Adafruit VL53L4CD Time of Flight Distance Sensor By Liz Clark beginner Your browser does not support the video tag. This links to the guide Haunted Air Blaster. Haunted Air Blaster By John Park intermediate Ultrasonic Ruler By Ruiz Brothers beginner LPC824 NeoPixel IR Distance Sensor By Kevin Townsend beginner Adafruit VCNL4200 Long Distance IR Proximity and... By Liz Clark beginner Your browser does not support the video tag. This links to the guide FunHouse Motion Detecting Lights with LIFX Bulbs. FunHouse Motion Detecting Lights with LIFX Bulbs By John Park beginner Wireless Security Camera with the Arduino Yun By M. Schwartz advanced Your browser does not support the video tag. This links to the guide Track a Turtle with WipperSnapper. Track a Turtle with WipperSnapper By Isaac Wellish beginner Adafruit VCNL4020 Proximity and Light Sensor By Liz Clark beginner Adafruit VL6180X Time of Flight Micro-LIDAR Distance... By lady ada intermediate Quadcopter Spray Can Mod By Becky Stern beginner No-Code WipperSnapper Summoning Horn By Tyeth Gundry beginner Your browser does not support the video tag. This links to the guide MIDI Laser Harp with Time of Flight Distance Sensors. MIDI Laser Harp with Time of Flight Distance Sensors By Liz Clark intermediate Your browser does not support the video tag. This links to the guide Magic Mirror with Glowing Secret Messages. Magic Mirror with Glowing Secret Messages By Erin St Blaine intermediate New Your browser does not support the video tag. This links to the guide Tree with Animated Eyes and Motion Sensor. Tree with Animated Eyes and Motion Sensor By Erin St Blaine intermediate
Create Wishlist
× Title Description Close Search Search
Categories

Tag » Arduino Pir Motion Sensor Sketch