我正在做一款产品叫试验机,就是给比如钢筋混凝土等做破坏性试验的机器。
用的是STM32F767,有压力传感器、编码器、步进电机驱动器等。
现在正在搞传感器的程序。硬件电路差不多了,做软件。使用传感器要先标定。
标定界面如下:
第一步、传感器空载,什么都不放,点击打点,标定第一个值。采样值就是码值,记下来A
第二步、加500g的砝码,再次点击打点,标定第二个值,记下第二个码值B
第三步、再加500g砝码,再次点击打点,标定第三个值,记下第三个码值C。
标定完,上位机接收下位机发上来的采样值,根据标定的码值和砝码对应的重量计算出实时
压力值并显示出来。
现在问题是,显示出的压力值不稳,跳动有点大。上图右上角那个标有"0.0"的按钮是清零按钮。我是这样做的,点一下清零按钮,把当前的采样值代替原来标定的码值A,压力值暂时显示为0.可是不一会就变成一个比较小的值,比如上面的0.1512.老板要求,显示0.0要至少能维持3分钟,而且小数点后一位也要是0.我上面显示的0.1512最前面以为小数是1,不符合要求。我想不出办法来了,请高手指点,如何才能达到要求。谢谢!
此帖出自小平头技术问答
需要做一个合适的算法,消除干扰
估计你的传感器中放大器存在零点漂移,而且比较大。
漂移发生在你的传感器内的放大器上。莫非你要把传感器内放大器芯片换成你另外购买的芯片?那可不大容易。
你能够做到的,只有你写的STM32F767的程序。
你的传感器加上砝码,转换值不会变化很小,必定比温度漂移产生的变化要大。那么你可以每隔一小段时间读一次传感器,若是和上次读数比较有微小变化,则以上次读数为零点,若是变化比较大,则认为传感器承受了负载。
一周热门 更多>