#include <Wire.h>
#define MPU 0x68
int16_t AcX, AcY, AcZ;
int ledPin = 33;
void setup() {
Serial.begin(115200);
Wire.begin(21,22);
pinMode(ledPin, OUTPUT);
// Wake MPU6050
Wire.beginTransmission(MPU);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
Serial.println("MPU6050 Tilt Detection Started");
}
void loop() {
Wire.beginTransmission(MPU);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU, 6, true);
AcX = Wire.read()<<8 | Wire.read();
AcY = Wire.read()<<8 | Wire.read();
AcZ = Wire.read()<<8 | Wire.read();
Serial.print("X: ");
Serial.print(AcX);
Serial.print(" Y: ");
Serial.print(AcY);
Serial.print(" Z: ");
Serial.println(AcZ);
if(abs(AcX) > 8000 || abs(AcY) > 8000) {
digitalWrite(ledPin, HIGH);
Serial.println("Tilt Detected - LED ON");
}
else {
digitalWrite(ledPin, LOW);
Serial.println("Normal - LED OFF");
}
delay(500);
}