谁能告诉我剂量是什么意思 4/ 32768.0
can someone tell me what dose it mean 4/ 32768.0
我正在使用 arduino nano 33 Ble 并且正在使用 Lib Arduino_LSM9DS1
我试图理解方程式,但我不明白
说数据[0]*4/32768 lsb 32768。
它应该是一个 16 位的 rigester,其中 lsb 应该是 2^16 = 65536。或者他们使用 -+ 32768?
到底是什么 4 ?为什么使用这个铃声不是 8 或 16?
有人能给我解释一下吗?
以及如何准确地获得加速度和单位?
int LSM9DS1Class::readAcceleration(float& x, float& y, float& z)
{
int16_t data[3];
if (!readRegisters(LSM9DS1_ADDRESS, LSM9DS1_OUT_X_XL, (uint8_t*)data, sizeof(data))) {
x = NAN;
y = NAN;
z = NAN;
return 0;
}
x = data[0] * 4.0 / 32768.0;
y = data[1] * 4.0 / 32768.0;
z = data[2] * 4.0 / 32768.0;
return 1;
}
documentation 指出:
Accelerometer range is set at [-4,+4]g -/+0.122 mg
所以,函数readAcceleration
返回的值在[-4,4]范围内,代表-4g到4g
g 就是 gravitational acceleration = 9.81 m/s2
您显示的代码是函数 readAcceleration
的实现。据我了解,原始加速度数据表示为 16 位有符号整数(介于 -32,768 到 32,767 之间),然后对其进行归一化(除以 32,768)并乘以 4 以放入 [-4,4 的正确范围内].
我正在使用 arduino nano 33 Ble 并且正在使用 Lib Arduino_LSM9DS1 我试图理解方程式,但我不明白
说数据[0]*4/32768 lsb 32768。 它应该是一个 16 位的 rigester,其中 lsb 应该是 2^16 = 65536。或者他们使用 -+ 32768? 到底是什么 4 ?为什么使用这个铃声不是 8 或 16?
有人能给我解释一下吗? 以及如何准确地获得加速度和单位?
int LSM9DS1Class::readAcceleration(float& x, float& y, float& z)
{
int16_t data[3];
if (!readRegisters(LSM9DS1_ADDRESS, LSM9DS1_OUT_X_XL, (uint8_t*)data, sizeof(data))) {
x = NAN;
y = NAN;
z = NAN;
return 0;
}
x = data[0] * 4.0 / 32768.0;
y = data[1] * 4.0 / 32768.0;
z = data[2] * 4.0 / 32768.0;
return 1;
}
documentation 指出:
Accelerometer range is set at [-4,+4]g -/+0.122 mg
所以,函数readAcceleration
返回的值在[-4,4]范围内,代表-4g到4g
g 就是 gravitational acceleration = 9.81 m/s2
您显示的代码是函数 readAcceleration
的实现。据我了解,原始加速度数据表示为 16 位有符号整数(介于 -32,768 到 32,767 之间),然后对其进行归一化(除以 32,768)并乘以 4 以放入 [-4,4 的正确范围内].