با سلام و احترام
بنده فردا براي داده برداري به كارگاه ميرم لطفا كدي را كه نوشتم نگاهي كنيد اگر مشكلي داره يا براي افزايش دقت بايد تنظيمات كد اصلاح بشه بفرماييد. باتشكر
#include <MPU9250_WE.h> #include <Wire.h> #define MPU9250_ADDR 0x68MPU9250_WE myMPU9250 = MPU9250_WE(MPU9250_ADDR);
void setup() {
Serial.begin(115200);
Wire.begin();
if(!myMPU9250.init()){
Serial.println(“MPU9250 does not respond”);
}
else{
Serial.println(“MPU9250 is connected”);
}Serial.println(“Position you MPU9250 flat and don’t move it - calibrating…”);
delay(1000);
myMPU9250.autoOffsets();
Serial.println(“Done!”);myMPU9250.setSampleRateDivider(5);
/* MPU9250_ACC_RANGE_2G 2 g
- MPU9250_ACC_RANGE_4G 4 g
- MPU9250_ACC_RANGE_8G 8 g
- MPU9250_ACC_RANGE_16G 16 g
*/
myMPU9250.setAccRange(MPU9250_ACC_RANGE_16G);myMPU9250.enableAccDLPF(true);
/* Digital low pass filter (DLPF) for the accelerometer, if enabled
- MPU9250_DPLF_0, MPU9250_DPLF_2, … MPU9250_DPLF_7
- DLPF Bandwidth [Hz] Delay [ms] Output rate [kHz]
0 460 1.94 11 184 5.80 12 92 7.80 13 41 11.80 14 20 19.80 15 10 35.70 16 5 66.96 17 460 1.94 1*/
myMPU9250.setAccDLPF(MPU9250_DLPF_6);/* Set accelerometer output data rate in low power mode (cycle enabled)
- MPU9250_LP_ACC_ODR_0_24 0.24 Hz
- MPU9250_LP_ACC_ODR_0_49 0.49 Hz
- MPU9250_LP_ACC_ODR_0_98 0.98 Hz
- MPU9250_LP_ACC_ODR_1_95 1.95 Hz
- MPU9250_LP_ACC_ODR_3_91 3.91 Hz
- MPU9250_LP_ACC_ODR_7_81 7.81 Hz
- MPU9250_LP_ACC_ODR_15_63 15.63 Hz
- MPU9250_LP_ACC_ODR_31_25 31.25 Hz
- MPU9250_LP_ACC_ODR_62_5 62.5 Hz
- MPU9250_LP_ACC_ODR_125 125 Hz
- MPU9250_LP_ACC_ODR_250 250 Hz
- MPU9250_LP_ACC_ODR_500 500 Hz
*/
//myMPU9250.setLowPowerAccDataRate(MPU9250_LP_ACC_ODR_500);/* sleep() sends the MPU9250 to sleep or wakes it up.
- Please note that the gyroscope needs 35 milliseconds to wake up.
*/
//myMPU9250.sleep(true);/* If cycle is set, and standby or sleep are not set, the module will cycle between
- sleep and taking a sample at a rate determined by setLowPowerAccDataRate().
*/
//myMPU9250.enableCycle(true);/* You can enable or disable the axes for gyroscope and/or accelerometer measurements.
- By default all axes are enabled. Parameters are:
- MPU9250_ENABLE_XYZ //all axes are enabled (default)
- MPU9250_ENABLE_XY0 // X, Y enabled, Z disabled
- MPU9250_ENABLE_X0Z
- MPU9250_ENABLE_X00
- MPU9250_ENABLE_0YZ
- MPU9250_ENABLE_0Y0
- MPU9250_ENABLE_00Z
- MPU9250_ENABLE_000 // all axes disabled
*/
//myMPU9250.enableAccAxes(MPU9250_ENABLE_XYZ);}
void loop() {
xyzFloat accRaw = myMPU9250.getAccRawValues();
xyzFloat accCorrRaw = myMPU9250.getCorrectedAccRawValues();
xyzFloat gValue = myMPU9250.getGValues();
float resultantG = myMPU9250.getResultantG(gValue);
/*
Serial.println(“Raw acceleration values (x,y,z):”);
Serial.print(accRaw.x);
Serial.print(" “);
Serial.print(accRaw.y);
Serial.print(” “);
Serial.println(accRaw.z);
/*
Serial.println(“Corrected (‘calibrated’) acceleration values (x,y,z):”);
Serial.print(accCorrRaw.x);
Serial.print(” “);
Serial.print(accCorrRaw.y);
Serial.print(” ");
Serial.println(accCorrRaw.z);
*/
Serial.print("x= “);
Serial.print(gValue.x);
Serial.print(” y= “);
Serial.print(gValue.y);
Serial.print(” z= ");
Serial.println(gValue.z);// Serial.print("Resultant g: “);
// Serial.println(resultantG); // should always be 1 g if only gravity acts on the sensor.
// Serial.println(” ");
delay(200);
}