大家好: 我在使用LIS2HH12: 3 轴“pico”加速度计时遇到了 读数不准的问题,请大家看一下。 首先我的应用场景:安装在设备上,FPGA通过IIC时刻读出当前的位置,不会有突发的振动情况,不需要中断的情况 我的测试环境:我把装有加速度计的板子安装在三轴云台上,首先水平,读出的X 是7.4° 然后三轴台绕X轴旋转三十度(三轴台的精度是0.01°)此时读出的角度是38.56°。但是在此位置从新上下电后,读出的角度是37.66度。 我的问题是,每次从新上下电,读出的角度是正常的,为什么随着转台转动,他的角度会有偏差。 排除几个问题:1.转台转动非常缓慢,停下来的读数,也是过了好久,排除转台的加速度造成的影响; 2.我在程序里面也采用均值滤波,应该不会有偏差; 我的加速计配置(1)CTRL1=3Fh(XYZ使能,ODR100Hz) (2)CTRL4_DATA=8'h00; (3)读STATUS( 4)读X低位 (5)读X高位 ( 6)读Y低位 (7)读Y高位 (8)读Z低位 (9)读Z高位 |
IIS3DHHCTR,这个料 温度从寄存器读取出来之后,把读取的数值转换成实际温度,有没有公式?
L9663如何使用上行缓冲区发送同步脉冲
STM32H750的AD采样问题
加速度计非线性度参数
LSM6DSR是左手坐标系吗?
比LIS3DH更稳定的超低功耗加速度计有哪些可选择?
STM32H750使能内存保护后DMA异常问题。
LSM6DS3TR-C有没有windows下的测试工具
LSM6DS3TR-C使用时工作电流比datasheet上大很多可能是什么原因?
lsm6dsl的sensor hub驱动LIS2MDL问题
配置方面,"CTRL4_DATA=8'h00;"是什么?为了得到稳定性比较好的数据,可以适当降低滤波器的带宽频率。另外,建议使用high resolution mode,也就是 CTRL1=BFH。
读取数据时,建议用多字节读取的方式,一个数据包将加速度计六个字节数据全部读出。
角度偏差有几个方面可能造成:
1。 芯片修改过配置后,会有一段非常短暂的时间可能数据不稳定,ODR=100Hz时第一组数据需要丢弃;
2。温度改变会造成一定的温飘,温飘也会导致加速度值的变化;
3。角度是怎样计算的?最好是从加速度计的原始数据着手分析,看看测试过程中,什么数据发生了变化。
[md]首先感谢您的回复。
1.纠正一下 CTRL4 配置的是00h;读取数据是一次全部读出,只是IIC的过程中是一个一个配置;
我是参考AN4662 3.1章节
2.高分辨模式我会试试,这个带宽如何判断呢?
3.ODR=100KHz 第一个数据会在平均滤波后去除;
4.温度应该不会变化到1°偏差
5.角度是根据手册计算的,计算过程没问题
我看了AN4662 怀疑是 高通滤波器没有配置,我自己没有配置高通滤波器,
“当传感器方向未知时,可在静态条件下使用参考模式。此模式允许在不应用任何滤波器架构的情况下移除传感器输出上存在的DC分量,该方法适用于需要删除DC分量,并受低于HP滤波器截止频率的加速度变化(缓慢运动)影响的应用。用作参考的程序应如下:
[md]角度计算也有很多公式,所以建议将原始数据和计算出来的角度记录下来,再比对不同工作状态下的数据差异。
做倾角计算一般不用高通滤波器,只需要做校准,根据精度要求可以分一点校准,三点校准和六点校准。具体可以参考ST官网上DT0105和DT0053
关于滤波器带宽频率设置,可以参考AN4662中的2.5 System bandwidth,里面有详细的介绍
[md]谢谢您的回答。
首先我的角度在第一次上电的静止情况下是正确的,在不同的角度下 同理。
但是问题是在上电的情况下在云台上 快速和慢速转动后,停在某个角度。问题就出现了。
假设。第一组实验,水平仪0度时,测量出来是0.3。断电后 ,转到30度,测出是29.8.这组数据误差正常。
第二组实验,水平仪0度时,测量出来是0.3。带电测,快速转到30度,停下30s后,测出来角度是32.1
为什么数据没法降到29.8.这个时候把电断了,在上电,测出来就是29.8.
感觉有个偏量累计在里面没法消除。
您说的校准,软件测试过没问题,使用的也是您提到的手册。
按时校准的前提是 每次在一个位置 必须要断电后重新上电测量,要不然不准。
目前定位是旋转测量的问题。