Create a motion detection alarm using a PIR sensor and Arduino Uno. Learn how to build a real-world security system with step-by-step code, circuit diagram, and troubleshooting tips. Ideal for students and DIY tech enthusiasts.
Introduction
🔍 What is HC-SR501?
The HC-SR501 is a widely used Passive Infrared (PIR) motion sensor module designed for detecting movement from humans or animals by sensing infrared (IR) radiation. It is known for its low cost, high sensitivity, and ease of integration with micro controllers like Arduino, Raspberry Pi, ESP32, and others.
This sensor module is ideal for motion-based automation and security systems, such as automatic lighting, home security alarms, and presence detection in smart environments.
⚙️ Key Features of HC-SR501:
- Operating Voltage: 5V to 20V DC
- Detection Range: ~3 to 7 meters (adjustable)
- Detection Angle: ~120° cone
- Output: Digital (High = Motion detected, Low = No motion)
- Adjustable Settings:
- Sensitivity: Controls range
- Time Delay: Determines how long output remains HIGH after motion
📦 Applications:
- Motion-activated lights
- Intruder detection systems
- Smart home automation
- Energy-efficient office equipment
What the Project Does
This project demonstrates how to build a basic motion detection alarm using a PIR (Passive Infrared) sensor, an Arduino Uno, and a buzzer or LED indicator. The system activates an alarm when it detects movement in its vicinity, simulating a security system commonly used in smart homes and commercial environments.
Real-World Use Cases
- Home intrusion detection systems
- Automatic lighting control
- Office and warehouse security
- Motion-based automation systems
Skill Level
Beginner to Intermediate
Expected Outcome
After completing this project, you will:
- Understand how PIR sensors detect motion
- Learn to read digital input from sensors using Arduino
- Create a real-world alarm triggering mechanism
- Be able to expand the system into a full-fledged IoT-based security solution
Components Required
Quantity | Parts | Description | Buy Link |
---|---|---|---|
1 | Arduino UNO | Micro controller Board | Buy on Elecsynergy |
1 | PIR Sensor Module | Motion detection sensor | Buy on Elecsynergy |
1 | Buzzer or LED | Alarm indicator (can use both) | Buy on Elecsynergy |
1 | Breadboard | For circuit connections | Buy on Elecsynergy |
5 | Jumper Wires | Male-to-male jumper wires | Buy on Elecsynergy |
1 | USB Cable for Arduino | For powering and programming the board | Buy on Elecsynergy |
Circuit Diagram + Explanation
PIR Sensor Pin Connections:
- VCC → 5V on Arduino
- GND → GND on Arduino
- OUT → Digital Pin 2
Buzzer/LED Connections:
- Positive (Anode or + of buzzer/LED) → Digital Pin 8
- Negative (Cathode or -) → GND via 220Ω resistor for LED
Visual Schematic:
Arduino Code – Commented
// Motion Detection Alarm using PIR Sensor and Arduino
int pirPin = 2; // PIR sensor OUT pin
int alarmPin = 8; // Buzzer or LED pin
int pirState = LOW; // Initial state
void setup() {
pinMode(pirPin, INPUT); // PIR sensor as input
pinMode(alarmPin, OUTPUT); // Alarm pin as output
Serial.begin(9600); // Start serial monitor for debug
}
void loop() {
int sensorValue = digitalRead(pirPin);
if (sensorValue == HIGH) {
digitalWrite(alarmPin, HIGH); // Activate alarm
if (pirState == LOW) {
Serial.println("Motion detected!");
pirState = HIGH;
}
} else {
digitalWrite(alarmPin, LOW); // Turn off alarm
if (pirState == HIGH) {
Serial.println("Motion ended");
pirState = LOW;
}
}
delay(100); // Short delay to debounce sensor
}
Working Explanation
How the PIR Sensor Works:
PIR sensors detect infrared radiation emitted by moving objects like humans and animals. When the sensor senses a sudden change in infrared levels (motion), it outputs a HIGH signal, which the Arduino reads.
How the System Interacts:
- When motion is detected: PIR sensor sends HIGH to Arduino → Arduino activates buzzer or LED
- When no motion: PIR sensor sends LOW → Arduino deactivates alarm
Application Extension:
- You can easily replace the buzzer with a relay module to trigger lights or sirens.
- Adding a delay mechanism can control how long the alarm stays on.
Demo / Output Preview
You’ll observe:
- LED or buzzer turns on when motion is detected
- Serial Monitor logs “Motion detected!” and “Motion ended”
Troubleshooting & Tips
- Sensor not detecting motion?
- Check sensor orientation (lens should face area of detection)
- Ensure the sensor is powered with 5V
- Alarm always on or off?
- Double-check pin mappings
- Verify PIR sensor jumpers are in correct mode (repeatable/non-repeatable)
- False alarms?
- Avoid direct sunlight or heat sources
- Use delay to minimize noise
Project Expansion Ideas
1. SMS Alert Integration
Use a GSM module (SIM800L) to send SMS when motion is detected.
2. Wi-Fi Notification System
Replace Arduino UNO with ESP8266/ESP32 to send alerts via Blynk or email.
3. Camera Snap Trigger
Control a camera module to take photos or record video on motion detection.
4. Relay-Based Light Control
Instead of buzzer, use PIR to activate relay switch for lights or appliances.
5. Battery Backup & Enclosure
Package the circuit in an enclosure with rechargeable battery for field use.
Conclusion
You’ve successfully created a basic yet effective Motion Detection Alarm System using an Arduino and PIR sensor. This project lays the foundation for building home automation and security systems.
✅ What You’ve Learned:
- How PIR sensors detect motion
- How to interface sensors with Arduino
- Alarm system implementation
- Real-world automation use cases
👣 Next Steps:
Expand the project with wireless communication, camera modules, and web-based alerts to build a complete smart surveillance system.