LIS2DH12作为MESH里面最重要的3轴加速度传感器之一,除了有较好的低功耗的功能外,它的一个加速度精度有正负2g,正负4g,正负8g,正负16g。高速的I2C/SPI数字输出,能够测量输出速率为1HZ到5.3kHZ。内置FIFO和高性能加速度传感器。下面是它在应用上的一些简单功能。
加速度原始数据读取计算
rang范围可设定为±2g、±4g、±8g、±16g (1g=9.8N/kg,正常不动,三轴的向量和为1g)
ADC可设置成8bit、10bit、12bit。
数据读取
sensor用了16bit来表示一个轴的值。即读取出来的原始寄存器数据为一个int16_t格式的数值。
lis2dhReadReg(LIS2DH_OUT_Y_L, buf, 4);
tempAccY=(int16_t)((buf[1]<<8)+buf[0])>>6;
tempAccZ=(int16_t)((buf[3]<<8)+buf[2])>>6;
temp_f_y=(int32_t)(tempAccYx38.28);
temp_f_z=(int32_t)(tempAccZx38.28); //±2G,256LBS/g 放大1000倍 9800/256 = 38.28 mg
举例以配置为±8g,10bit为例:
10bit的数值范围为-512到+512,不管rang设置多大,输出的范围是固定的。
range设置成±8g是,测量范围为-8g ~ +8g,数字化后,即为64LSB/g,即1g的加速度对应的输出是64。同理:1个数字代表的加速度为8/512=15.6mg
数据连续读取
连续读取多个数据,和普通的I2C读取有一定区别,需要地址最高位置1,注意Datasheet有如下一句话:
“In order to read multiple bytes, it is necessary to assert the most significant bit of the subaddress field. In other words, SUB(7) must be equal to 1 while SUB(6-0) represents the
Address of the first register to be read.”
评论