What's wrong with my code?
Hello everyone,
I was just wondering why this piece of code is not working.
The code get uploaded normally to arduino
But when I move the gyroscope it just give me random values of X & Y & Z
Im expecting 0,0, variable...
I checked the connection and it was correct
I thought either the sensor is broken or the code is wrong,
I'm using it to measure the acceleration of a moving object
Any ideas??
`
I was just wondering why this piece of code is not working.
The code get uploaded normally to arduino
But when I move the gyroscope it just give me random values of X & Y & Z
Im expecting 0,0, variable...
I checked the connection and it was correct
I thought either the sensor is broken or the code is wrong,
I'm using it to measure the acceleration of a moving object
Any ideas??
`
#include "MPU9250.h"
MPU9250 mpu;
void setup() {
Serial.begin(115200);
Wire.begin();
delay(2000);
if (!mpu.setup(0x68)) {
while (1) {
Serial.println("MPU connection failed. Please check your connection with connection_check example.");
delay(5000);
}
}
Serial.println("Accel Gyro calibration will start in 5sec.");
Serial.println("Please leave the device still on the flat plane.");
mpu.verbose(true);
delay(5000);
mpu.calibrateAccelGyro();
Serial.println("Mag calibration will start in 5sec.");
Serial.println("Please Wave device in a figure eight until done.");
delay(5000);
mpu.calibrateMag();
print_calibration();
mpu.verbose(false);
}
void loop() {
}
void print_calibration() {
Serial.println("< calibration parameters >");
Serial.println("accel bias [g]: ");
Serial.print(mpu.getAccBiasX() * 1000.f / (float)MPU9250::CALIB_ACCEL_SENSITIVITY);
Serial.print(", ");
Serial.print(mpu.getAccBiasY() * 1000.f / (float)MPU9250::CALIB_ACCEL_SENSITIVITY);
Serial.print(", ");
Serial.print(mpu.getAccBiasZ() * 1000.f / (float)MPU9250::CALIB_ACCEL_SENSITIVITY);
Serial.println();
Serial.println("gyro bias [deg/s]: ");
Serial.print(mpu.getGyroBiasX() / (float)MPU9250::CALIB_GYRO_SENSITIVITY);
Serial.print(", ");
Serial.print(mpu.getGyroBiasY() / (float)MPU9250::CALIB_GYRO_SENSITIVITY);
Serial.print(", ");
Serial.print(mpu.getGyroBiasZ() / (float)MPU9250::CALIB_GYRO_SENSITIVITY);
}`
#include "MPU9250.h"
MPU9250 mpu;
void setup() {
Serial.begin(115200);
Wire.begin();
delay(2000);
if (!mpu.setup(0x68)) {
while (1) {
Serial.println("MPU connection failed. Please check your connection with connection_check example.");
delay(5000);
}
}
Serial.println("Accel Gyro calibration will start in 5sec.");
Serial.println("Please leave the device still on the flat plane.");
mpu.verbose(true);
delay(5000);
mpu.calibrateAccelGyro();
Serial.println("Mag calibration will start in 5sec.");
Serial.println("Please Wave device in a figure eight until done.");
delay(5000);
mpu.calibrateMag();
print_calibration();
mpu.verbose(false);
}
void loop() {
}
void print_calibration() {
Serial.println("< calibration parameters >");
Serial.println("accel bias [g]: ");
Serial.print(mpu.getAccBiasX() * 1000.f / (float)MPU9250::CALIB_ACCEL_SENSITIVITY);
Serial.print(", ");
Serial.print(mpu.getAccBiasY() * 1000.f / (float)MPU9250::CALIB_ACCEL_SENSITIVITY);
Serial.print(", ");
Serial.print(mpu.getAccBiasZ() * 1000.f / (float)MPU9250::CALIB_ACCEL_SENSITIVITY);
Serial.println();
Serial.println("gyro bias [deg/s]: ");
Serial.print(mpu.getGyroBiasX() / (float)MPU9250::CALIB_GYRO_SENSITIVITY);
Serial.print(", ");
Serial.print(mpu.getGyroBiasY() / (float)MPU9250::CALIB_GYRO_SENSITIVITY);
Serial.print(", ");
Serial.print(mpu.getGyroBiasZ() / (float)MPU9250::CALIB_GYRO_SENSITIVITY);
}