#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
const int ledPin = 9; // Pin untuk LED
const int buzzerPin = 10; // Pin untuk buzzer
const float threshold = 1.5; // Ambang batas akselerasi (g)
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
if (mpu.testConnection()) {
Serial.println("MPU6050 connected!");
} else {
Serial.println("Failed to connect to MPU6050!");
while (1);
}
}
void loop() {
int16_t ax, ay, az;
mpu.getAcceleration(&ax, &ay, &az);
// Konversi nilai akselerasi menjadi g
float accelX = ax / 16384.0;
float accelY = ay / 16384.0;
float accelZ = az / 16384.0;
// Hitung magnitudo akselerasi
float magnitude = sqrt(accelX * accelX + accelY * accelY + accelZ * accelZ);
Serial.print("Magnitude: ");
Serial.println(magnitude);
if (magnitude > threshold) {
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
}
delay(100);
}