关于#物联网#的问题:使用Arduino NANO 33 IOT 编写计步器程序

想不通。
只更改第一个通信部分的设置部分,则可以在不附加外部加速模块的情况下进行实验。
 因为Arduino Nano 33物联网已经有了一个加速计。

//Call .beginCore() to configure the IMU
if( myIMU.beginCore() != 0 )
{
    Serial.print("Error at beginCore().\n");
}
else
{
    Serial.print("\nbeginCore() passed.\n");
}

//Error accumulation variable
uint8_t errorAccumulator = 0;

uint8_t dataToWrite = 0;  //Temporary variable

//Setup the accelerometer******************************
dataToWrite = 0; //Start Fresh!
//  dataToWrite |= LSM6DS3_ACC_GYRO_BW_XL_200Hz;
dataToWrite |= LSM6DS3_ACC_GYRO_FS_XL_2g;
dataToWrite |= LSM6DS3_ACC_GYRO_ODR_XL_26Hz;

// //Now, write the patched together data
errorAccumulator += myIMU.writeRegister(LSM6DS3_ACC_GYRO_CTRL1_XL, dataToWrite);

//Set the ODR bit
errorAccumulator += myIMU.readRegister(&dataToWrite, LSM6DS3_ACC_GYRO_CTRL4_C);
dataToWrite &= ~((uint8_t)LSM6DS3_ACC_GYRO_BW_SCAL_ODR_ENABLED);


// Enable embedded functions -- ALSO clears the pdeo step count
errorAccumulator += myIMU.writeRegister(LSM6DS3_ACC_GYRO_CTRL10_C, 0x3E);
// Enable pedometer algorithm
errorAccumulator += myIMU.writeRegister(LSM6DS3_ACC_GYRO_TAP_CFG1, 0x40);
// Step Detector interrupt driven to INT1 pin
errorAccumulator += myIMU.writeRegister( LSM6DS3_ACC_GYRO_INT1_CTRL, 0x10 );

if( errorAccumulator )
{
    Serial.println("Problem configuring the device.");
}
else
{
    Serial.println("Device O.K.");
}    
delay(200);



myIMU.readRegister(&readDataByte, LSM6DS3_ACC_GYRO_STEP_COUNTER_L);
stepsTaken |= readDataByte;

//Display steps taken
Serial.print("Steps taken: ");
Serial.println(stepsTaken);

//Wait 1 second
delay(1000);

使用Arduino和加速度计自制计步器
https://blog.csdn.net/acktomas/article/details/115937795