Airbreaks-Low-Power/Programming/Arduino/Tests/ICM20948_Accelerometer/ICM20948_Accelerometer.ino
2023-12-19 18:30:36 -06:00

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();
}