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??
#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);

}
`
attachment 0
11 Replies
Nayel
Nayel•3mo ago
HI 👋 can you try this :
Nayel
Nayel•3mo ago
the problem is that you didn't call your function on the loop
techielew
techielew•3mo ago
@aymen ammari ^^
aymen ammari
aymen ammari•3mo ago
Oh! I didn't notice it.
Nayel
Nayel•3mo ago
you call it on your setup function
aymen ammari
aymen ammari•3mo ago
I will try this one as it is
Nayel
Nayel•3mo ago
yep
aymen ammari
aymen ammari•3mo ago
Could you tag me next time, I didn't see the message 😅
Nayel
Nayel•3mo ago
yes sure sorry
aymen ammari
aymen ammari•3mo ago
Thank you so much @Nayel
Nayel
Nayel•3mo ago
no problem
Want results from more Discord servers?
Add your server