Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

12个月前关闭。



Improve this question




目前,我正在使用LSM303DLHC加速度计/磁力计/温度计。

这是它的数据表:http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00027543.pdf

一切工作都很好,但是我不知道如何解释输出值。数据表(第9页)对我的配置中的线性加速度敏感度说“1 mg / LSB”(不,不是毫克:D)。这到底是什么意思?与温度传感器的输出变化(8 LSB /°C)和磁增益设置(1100 LSB /高斯)相同,反之亦然。

例如,如何处理此加速度计输出:16384?那是我测得的重力加速度。

最佳答案

现在我明白了。您必须了解此MEMS上的几件事,但数据表中未提及:

  • 加速度计的输出寄存器只有12位而不是16位,因此您需要将值右移4并将其乘以0,001G。
  • 磁力计的输出寄存器为16位,但为big-endian。此外, vector 顺序是(X | Z | Y)而不是(X | Y | Z)。要计算正确的值,您需要将X和Y分别除以980高斯⁻¹,而对于Z则为1100高斯⁻¹。
  • 温度传感器正常工作,但未校准。因此,您可以使用它来测量温度变化,但不能测量绝对温度。它也只有12位,但是使用big-endian,您必须将输出分配8C⁻¹。

  • 有了该信息,就可以使用LSM303DLHC。但是到底是谁发明了这个呢? “让我们在一个封装中构建一个新的加速度计,磁力计和温度计,并通过混合字长和字节序来使用户搞砸,而无需在数据表中提及。”

    关于math - “LSB/Unit”和 “Unit/LSB”的含义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19161872/

    10-12 22:10