我正在使用 nrf52832 和 LIS3DH 开发可穿戴智能设备。为了在设备未佩戴时关闭 MCU,我想使用带有中断的 LIS3DH 的运动检测功能,因此如果传感器在 n 分钟内未触发中断事件,则 MCU 关闭(进入非常低的功率模式)。
用户可以设置中断阈值和满量程作为配置选项。
这是我当前的配置
CTRL_REG1 = 0x2F //10Hz,低功耗模式,ZXY使能
CTRL_REG2 = 0x0 // 无 HP 过滤器
CTRL_REG3 = 0x40 //IA1使能
CTRL_REG4 = 0x00 //2g默认值,用户可配置
CTRL_REG5 = 0x00
CTRL_REG6 = 0x0
INT1_THS = 0x3A // 58 * 16 毫克 = 928 毫克
INT1_DURA
tiON = 0x02
INT1_CFG = 0x2A
第一个问题是:为了根据用户偏好更新传感器的配置,MCU 是否可以在初始配置后写入 INT1_THS 和 CTRL_REG4 寄存器,而无需物理重启 LIS3DH?我必须先清洁它们吗?
问题:使用上面的配置和满量程 +/-2G 和阈值 = 58,传感器也会针对非常小的运动触发中断(当智能设备放在桌子上时我也可以看到中断),但是如果我将阈值设置为 22,我必须剧烈摇动设备才能产生中断。根据阈值为 22 的数据表,我应该对所有大于 16 * 22 = 352 mg 且小于 928 mg 的运动进行中断,因此我应该检测到非常小的运动。我哪里错了?