1. Introduction
An Arduino-Based Fall Detection System is a safety device that detects sudden falls using motion sensing and gives an immediate buzzer alert. This simple version is ideal for learning, prototyping, and classroom demonstrations.
The system uses an MPU6050 accelerometer sensor to monitor movement and detect abnormal conditions like sudden impact or tilt, then activates a buzzer.
2. Components
- Arduino UNO / Nano
- MPU6050 Accelerometer Sensor
- Buzzer
- LED (optional)
- Jumper Wires
- Breadboard
- Power Supply / Battery
3. Circuit and Connections
| MPU6050 Pinout Diagram |
MPU6050 Sensor
- VCC → 5V
- GND → GND
- SDA → A4
- SCL → A5
Buzzer
- Positive → Pin 8
- Negative → GND
LED (Optional)
- Anode → Pin 7 (via 220Ω resistor)
- Cathode → GND
4. Detailed Step By Step Circuit Working
- The MPU6050 sensor continuously measures acceleration along X, Y, and Z axes.
- Under normal conditions, acceleration remains around 1g (gravity).
-
When a fall occurs:
- Sudden impact → acceleration spike
- Body tilt → change in orientation
- Arduino reads this data via I2C communication.
-
If acceleration exceeds a preset threshold:
- Fall is detected
-
Arduino immediately:
- Activates buzzer (alarm sound)
- Turns ON LED (optional)
- After a few seconds, system resets automatically
5. Code
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
int buzzer = 8;
int led = 7;
int16_t ax, ay, az;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
pinMode(buzzer, OUTPUT);
pinMode(led, OUTPUT);
}
void loop() {
mpu.getAcceleration(&ax, &ay, &az);
float axg = ax / 16384.0;
float ayg = ay / 16384.0;
float azg = az / 16384.0;
float totalAccel = sqrt(axg * axg + ayg * ayg + azg * azg);
Serial.println(totalAccel);
if (totalAccel > 2.5) { // Fall threshold
digitalWrite(buzzer, HIGH);
digitalWrite(led, HIGH);
delay(5000); // Alarm duration
digitalWrite(buzzer, LOW);
digitalWrite(led, LOW);
}
delay(200);
}
6. Detailed Step By Step Code Working
-
Libraries Used
-
Wire.h→ I2C communication -
MPU6050.h→ sensor interface
-
-
Sensor Initialization
-
mpu.initialize()starts MPU6050
-
-
Reading Acceleration
- Raw values (ax, ay, az) are read
- Converted into g-force units
-
Total Acceleration Calculation
-
Uses formula:
√(ax² + ay² + az²)
-
-
Fall Detection Logic
-
If acceleration > 2.5g
→ sudden impact detected
-
If acceleration > 2.5g
-
Alert Action
- Buzzer ON
- LED ON
-
Reset
- After 5 seconds → system returns to normal
7. Tips
- Adjust threshold between 2.0 to 3.0g
- Fix sensor firmly to avoid false triggers
- Add switch for manual reset
- Use battery pack for wearable design
- Test with different fall conditions
8. Uses
- Elderly safety monitoring
- Patient fall detection
- Worker safety systems
- Smart wearable devices
- Educational demonstration
9. Conclusion
This buzzer-based fall detection system is a simple and effective safety solution. It is ideal for beginners and can be upgraded later with GSM, IoT, or mobile alerts for real-world applications.