40 lines
895 B
C++
40 lines
895 B
C++
#include <Wire.h>
|
|
#include <ICM20948_WE.h>
|
|
#define ICM20948_ADDR 0x68
|
|
|
|
ICM20948_WE myIMU = ICM20948_WE(ICM20948_ADDR);
|
|
|
|
void setup() {
|
|
Wire.begin();
|
|
Serial.begin(115200);
|
|
while(!Serial) {}
|
|
|
|
if(!myIMU.init()){
|
|
//Serial.println("ICM20948 does not respond");
|
|
}
|
|
else{
|
|
//Serial.println("ICM20948 is connected");
|
|
}
|
|
|
|
//Serial.println("Position your ICM20948 flat and don't move it - calibrating...");
|
|
delay(1000);
|
|
myIMU.autoOffsets();
|
|
//Serial.println("Done!");
|
|
|
|
myIMU.setAccRange(ICM20948_ACC_RANGE_16G);
|
|
myIMU.setAccDLPF(ICM20948_DLPF_6);
|
|
myIMU.setAccSampleRateDivider(10);
|
|
|
|
Serial.println("X, Y, Z");
|
|
}
|
|
|
|
void loop() {
|
|
myIMU.readSensor();
|
|
xyzFloat gVal = myIMU.getGValues();
|
|
|
|
Serial.print(gVal.z*9.81-9.81); Serial.print(",");
|
|
Serial.print(gVal.y*9.81); Serial.print(",");
|
|
Serial.print(gVal.x*9.81); Serial.print(",");
|
|
Serial.println();
|
|
}
|