#include <Wire.
h>
#include <hd44780.h>
#include <hd44780ioClass/hd44780_I2Cexp.h> // include i/o class header
hd44780_I2Cexp lcd; // declare lcd object: auto locate & config display for hd44780
chip
#include <MPU6050.h>
#define minval -5
#define maxval 3
MPU6050 mpu;
void setup()
{
[Link](16, 2);
[Link](115200);
pinMode(7,OUTPUT);
[Link](" EarthQuake ");
[Link](0, 1);
[Link](" Detector");
delay (2000);
[Link]();
// Initialize MPU6050
[Link]("Initialize MPU6050");
while()
{
[Link]("Could not find a valid MPU6050 sensor, check wiring!");
delay(500);
}
// If you want, you can set accelerometer offsets
// [Link]();
// [Link]();
// [Link]();
checkSettings();
}
void checkSettings()
{ [Link]();
[Link](" * Sleep Mode: ");
[Link]([Link]() ? "Enabled" : "Disabled");
[Link](" * Clock Source: ");
switch([Link]())
{
case MPU6050_CLOCK_KEEP_RESET: [Link]("Stops the clock and keeps
the timing generator in reset"); break;
case MPU6050_CLOCK_EXTERNAL_19MHZ: [Link]("PLL with external 19.2MHz
reference"); break;
case MPU6050_CLOCK_EXTERNAL_32KHZ: [Link]("PLL with external 32.768kHz
reference"); break;
case MPU6050_CLOCK_PLL_ZGYRO: [Link]("PLL with Z axis gyroscope
reference"); break;
case MPU6050_CLOCK_PLL_YGYRO: [Link]("PLL with Y axis gyroscope
reference"); break;
case MPU6050_CLOCK_PLL_XGYRO: [Link]("PLL with X axis gyroscope
reference"); break;
case MPU6050_CLOCK_INTERNAL_8MHZ: [Link]("Internal 8MHz oscillator");
break;
}
[Link](" * Accelerometer: ");
switch([Link]())
{
case MPU6050_RANGE_16G: [Link]("+/- 16 g"); break;
case MPU6050_RANGE_8G: [Link]("+/- 8 g"); break;
case MPU6050_RANGE_4G: [Link]("+/- 4 g"); break;
case MPU6050_RANGE_2G: [Link]("+/- 2 g"); break;
}
[Link](" * Accelerometer offsets: ");
[Link]([Link]());
[Link](" / ");
[Link]([Link]());
[Link](" / ");
[Link]([Link]());
[Link]();
}
void loop()
{
Vector rawAccel = [Link]();
Vector normAccel = [Link]();
[Link](" Xraw = ");
[Link]([Link]);
[Link](" Yraw = ");
[Link]([Link]);
[Link](" Zraw = ");
[Link]([Link]);
if([Link] > maxval || [Link] < minval && [Link] > maxval
|| [Link] < minval && [Link] > maxval || [Link] <
minval)
{ digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
delay(300);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
delay(100);
[Link]();
[Link]("***EarthQuake***");
[Link]("***DETECTED***");
delay (1000);
[Link]();}
else{digitalWrite(7,LOW);
digitalWrite(8,LOW);}
[Link](" Xnorm = ");
[Link]([Link]);
[Link](" Ynorm = ");
[Link]([Link]);
[Link](" Znorm = ");
[Link]([Link]);
delay(10);
}