Situatie
A PIR (Passive Infrared) sensor detects motion by measuring changes in infrared radiation emitted by objects (like humans or animals) within its field of view.
PIR sensors are commonly used for:
| Component | Quantity | Notes |
|---|---|---|
| Arduino Uno (or Nano, Mega, etc.) | 1 | Any compatible board |
| PIR Motion Sensor (HC-SR501 or similar) | 1 | Adjustable sensitivity and delay |
| Breadboard | 1 | For easy connections |
| Jumper wires | ~5 | Male-to-male recommended |
| LED | 1 | Optional for visual indication |
| 220Ω resistor | 1 | For LED current limiting |
| USB cable | 1 | For programming and power |
Understanding the PIR Sensor
Typical PIR module (e.g., HC-SR501) has 3 pins:
| Pin | Label | Function |
|---|---|---|
| 1 | VCC | Power (connect to +5V) |
| 2 | OUT | Sends HIGH when motion is detected |
| 3 | GND | Connects to Ground |
Adjustable knobs (optional):
- Sensitivity: changes detection range (typically 3–7 meters)
- Time delay: how long output stays HIGH after motion (usually 0.3s–5min)
Wiring Diagram
| PIR Sensor | Arduino | Notes |
|---|---|---|
| VCC | 5V | Power supply |
| OUT | D2 | Digital input pin |
| GND | GND | Common ground |
| LED (+) | D13 | Visual output (optional) |
| LED (–) | GND (via 220Ω resistor) | Current limit |
Connect VCC → 5V, GND → GND, OUT → D2, LED → D13 (optional)
Arduino Code Example
// PIR Motion Sensor with LED Example
int pirPin = 2; // PIR sensor output pin
int ledPin = 13; // LED pin
int pirState = LOW; // Default state
int val = 0; // Variable for reading the pin status
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("PIR Motion Sensor Active");
}
void loop() {
val = digitalRead(pirPin); // Read input value from PIR
if (val == HIGH) {
digitalWrite(ledPin, HIGH); // Turn LED ON
if (pirState == LOW) {
Serial.println("Motion detected!");
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // Turn LED OFF
if (pirState == HIGH) {
Serial.println("Motion ended!");
pirState = LOW;
}
}
}
Explanation: The PIR output goes HIGH when motion is detected. The LED turns on and a message is printed to the Serial Monitor.
How It works
- Warm-up time: After powering up, the PIR sensor takes ~30–60 seconds to stabilize.
- Detection: When an object moves, the sensor’s output pin goes HIGH.
- Reset: After the set delay, the output returns LOW until new motion is detected.
1. Control a Relay
Use motion detection to control a light or appliance:
int relayPin = 8; // connect to relay module IN pin
// Replace ledPin with relayPin in code
2. Buzzer Alarm
Add a buzzer that sounds when motion is detected:
int buzzerPin = 9;
digitalWrite(buzzerPin, HIGH);
3. Serial Logging
Send motion logs to a computer or IoT platform for analysis.
4. Automation
Combine PIR with an LDR (light sensor) so it only triggers lights at night.
Leave A Comment?