Hi, I am building a quadcopter and I'm trying to use the module MPU6050 with my Arduino pro mini 5v.
The code I am using :
/* 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(" Xnorm = "); Serial.print(normAccel.XAxis); Serial.print(" Ynorm = "); Serial.print(normAccel.YAxis); Serial.print(" Znorm = "); Serial.println(normAccel.ZAxis); delay(10);}
But what I get in the serial monitor is this:
⸮⸮⸮0⸮0!t⸮⸮h⸮⸮⸮t⸮ll⸮ ⸮⸮⸮⸮e⸮}}$$⸮d_⸮d⸮__$ ⸮⸮}}$$⸮}}$d⸮l`⸮
I have tried different codes but I just can't get it to work, the MPU6050 is connected to the Arduino board through A4 and A5 or otherwise known as SDL and SDA.
Any help is much-appreciated thanks!