Created
February 11, 2021 17:06
-
-
Save ch3ll0v3k/e8a0f531b97658b4a3e3d0d4bd025fd3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
MPU6050 Triple Axis Gyroscope & Accelerometer. Simple Accelerometer Example. | |
Read more: http://www.jarzebski.pl/arduino/czujniki-i-sensory/3-osiowy-zyroskop-i-akcelerometr-mpu6050.html | |
GIT: https://github.com/jarzebski/Arduino-MPU6050 | |
Web: http://www.jarzebski.pl | |
(c) 2014 by Korneliusz Jarzebski | |
*/ | |
#include <Wire.h> | |
#include <MPU6050.h> | |
MPU6050 mpu; | |
void setup() | |
{ | |
Serial.begin(115200); | |
Serial.println("Initialize MPU6050"); | |
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) | |
{ | |
Serial.println("Could not find a valid MPU6050 sensor, check wiring!"); | |
delay(500); | |
} | |
// If you want, you can set accelerometer offsets | |
// mpu.setAccelOffsetX(); | |
// mpu.setAccelOffsetY(); | |
// mpu.setAccelOffsetZ(); | |
// checkSettings(); | |
} | |
void checkSettings() | |
{ | |
Serial.println(); | |
Serial.print(" * Sleep Mode: "); | |
Serial.println(mpu.getSleepEnabled() ? "Enabled" : "Disabled"); | |
Serial.print(" * Clock Source: "); | |
switch(mpu.getClockSource()) | |
{ | |
case MPU6050_CLOCK_KEEP_RESET: Serial.println("Stops the clock and keeps the timing generator in reset"); break; | |
case MPU6050_CLOCK_EXTERNAL_19MHZ: Serial.println("PLL with external 19.2MHz reference"); break; | |
case MPU6050_CLOCK_EXTERNAL_32KHZ: Serial.println("PLL with external 32.768kHz reference"); break; | |
case MPU6050_CLOCK_PLL_ZGYRO: Serial.println("PLL with Z axis gyroscope reference"); break; | |
case MPU6050_CLOCK_PLL_YGYRO: Serial.println("PLL with Y axis gyroscope reference"); break; | |
case MPU6050_CLOCK_PLL_XGYRO: Serial.println("PLL with X axis gyroscope reference"); break; | |
case MPU6050_CLOCK_INTERNAL_8MHZ: Serial.println("Internal 8MHz oscillator"); break; | |
} | |
Serial.print(" * Accelerometer: "); | |
switch(mpu.getRange()) | |
{ | |
case MPU6050_RANGE_16G: Serial.println("+/- 16 g"); break; | |
case MPU6050_RANGE_8G: Serial.println("+/- 8 g"); break; | |
case MPU6050_RANGE_4G: Serial.println("+/- 4 g"); break; | |
case MPU6050_RANGE_2G: Serial.println("+/- 2 g"); break; | |
} | |
Serial.print(" * Accelerometer offsets: "); | |
Serial.print(mpu.getAccelOffsetX()); | |
Serial.print(" / "); | |
Serial.print(mpu.getAccelOffsetY()); | |
Serial.print(" / "); | |
Serial.println(mpu.getAccelOffsetZ()); | |
Serial.println(); | |
} | |
void loop() | |
{ | |
Vector rawAccel = mpu.readRawAccel(); | |
Vector normAccel = mpu.readNormalizeAccel(); | |
// Serial.print(" Xraw = "); | |
// Serial.print(rawAccel.XAxis); | |
// Serial.print(" Yraw = "); | |
// Serial.print(rawAccel.YAxis); | |
// Serial.print(" Zraw = "); | |
// Serial.println(rawAccel.ZAxis); | |
Serial.print("GS:"); Serial.print(-50); | |
Serial.print(" X:"); | |
Serial.print(normAccel.XAxis); | |
Serial.print(" Y:"); | |
Serial.print(normAccel.YAxis); | |
Serial.print(" Z:"); | |
Serial.print(normAccel.ZAxis); | |
Serial.print(" GE:"); Serial.print(50); | |
Serial.println(""); | |
delay(5); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment