基于均值滑动滤波算法和STM32电子秤的设计

周继裕 陈思露 符少文
摘 要: 为了提高电子秤的抗干扰性和数据的准确性,介绍基于均值滑动滤波算法和STM32电子秤的设计。选用电阻应变片构成的惠斯通电桥传感器采集重物信号,24位HX711 A/D模块完成电信号的放大和转换,在STM32内实现软件滤波,采用滑动均值滤波算法,减小误差,提高数据的准确度。通过软硬件结合的方法进行校正。矩阵键盘输入控制指令实现设置单价、计算物品金额并实现金额累加和去皮等功能。实验测试表明,该电子秤测量范围是0~500 g,误差不超过±1 g,称重反应灵敏,5 s左右读数稳定。
关键词: 滑动均值滤波; 电阻应变片; HX711; STM32
中图分类号: TN99?34 文献标识码: A 文章编号: 1004?373X(2017)10?0010?03
Abstract: In order to improve the anti?jamming and data accuracy of electronic scale, the design of the electronic scale based on the mean sliding filter algorithm and STM32 is introduced in this paper. The Wheatstone bridge sensor with the structure of resistance strain gage is selected to collect weight signal. 24 bit HX711 A/D module is adopted to complete the signal amplification and conversion to realize software filtering in STM32.Tthe sliding men filtering algorithm is used to reduce the error and improve the data accuracy. The correction is executed with the method combining the software and hardware. Matrix keyboard input control instructions are employed to set the unit price, calculate the amount of item and achieve the money accumulation and peeling, and other functions. The experimental results show that the measurement range of the electronic scale is 0~500 g, its error is not more than ±1 g, and has sensitive weighing response and about 5 s stable reading.
Keywords: sliding mean filter; resistance strain gage; HX711; STM32
電子秤是一种通过作用在物体上的重力来测定该物体质量的一种计量仪器。因其操作简单、称量准确、体积小、称量速度快、读数方便,被广泛应用于商业贸易、医院、学校、企业等部门[1?2]。而悬臂式电子秤是一种铁质悬臂梁固定在支架上,悬臂梁上粘贴电阻应变片作为称重传感器进行感应相应重量变化的电子秤。提出一种在悬臂梁上粘贴电阻应变片构成惠斯通电桥[3]作为称重传感器采集数据,HX711作为A/D转换器,STM32为主控器的电子秤,采用滑动均值滤波算法[4],减小各种干扰和提高数据的准确性。
1 系统硬件设计
系统以STM32为控制核心,采用电阻应变片和精密电阻构成惠斯通电桥电路作为称重传感器,通过电子秤专用的HX711 A/D芯片转换成电信号并进行放大处理,处理后的数据送到STM32中进行处理,从数据中总结出,重量与电压或者电阻的关系。通过它们之间的关系可以根据电压变化得出相应的重量。TFT液晶屏用于显示各种参数,用矩阵键盘通过STM32主控系统设置的指令执行相应的命令。系统框图如图1所示。
1.1 电子秤的工作原理
设计选用电阻应变片粘贴在悬臂梁上作为称重传感器来进行重量信号的变换,把重量变换成电信号。当有重物放置到秤盘上时,悬臂梁发生弯曲,弯曲程度与放置物重量有对应关系。粘贴在上面的电阻应变片感应到相应的信号,输出微弱的电压信号。HX711对这个电压信号进行放大和A/D转换,转换后的数字信号送给 STM32控制核心进行处理,先对数字信号进行数字滤波等处理,在TFT液晶屏上显示出来。电子秤的结构图如图2所示。
1.2 称重传感器
将电阻应变片贴在铁质悬臂梁适当的位置上,使它里面的金属箔材随着尺子的弯曲一起伸缩,这样电阻应变片的电阻就会随着应变片的伸缩按一定的规律变化。应变片就是应用这个原理[5?6],通过测量电阻的变化而对应变进行测定。其电阻变化率为常数,与应变成正比例关系,即:
电阻的变化率可以通过惠斯通电桥间接测量。先对测量数据进行统计、分析,然后用公式进行计算。最终得出[R]与[ΔR]的比例系数。使用惠斯通电桥[3]电路,将电阻应变片的电阻变化转换为电压信号的变化,具有结构简单、灵敏度高、测量范围大、线性度好且易实现温度补偿等特点。
对电桥电路的选择进行了简单的实验后发现单臂的性能比双臂和全桥的差,而双臂和全桥的性能在各方面相差不大,从节省元件方面出发,故采用双臂电桥电路。惠斯通电桥电路如图3所示,图中[R2]和[R3]为电阻应变片,[R1]和[R4]为精密电阻阻值均为1 kΩ,其电阻应变片初始阻值均为1 kΩ。P1为Uo,BT1为E,则该电桥输出电压为:
1.3 A/D 转换器的选择
HX711是一款电子秤专用的高精度24位A/D转换器芯片。芯片内部集成了电源、时钟振荡器等其他电路,具有集成度高、响应速度快、抗干扰性强等优点[8?9]。与后端MCU 芯片的接口和编程非常简单。工作時是通过简单的数字控制和串口通信:所有控制由管脚输入,芯片内寄存器无需编程,输出数据编码二进制补码。电路简单,易于控制和使用。芯片的分辨率高,系统测得的数据比较精确。电路如图4所示。
2 软件设计
2.1 模块化子程序的设计
本程序设计使用的是Keil Software公司开发的MDK5软件,使用模块化思想进行编程,液晶屏显示、矩阵键盘、A/D模块、极大极小值滑窗均值滤波子程序、定时器中断以及字符字模处理显示等子程序都以模块的结构方式编写在不同的C文件中,函数与参数变量使用头文件进行传递,使得程序结构清晰明朗,出现问题易于查找纠正。程序流程图如图5所示。
2.2 滑动均值滤波算法
经过A/D转换后的数据信号存在着很多干扰的信号,需要把无用的信号滤除掉,采用了极大极小值滑窗均值滤波算法。该算法是由均值滑动算法演变而来[4]。令[u(n)]为称重传感器[n]时刻的采样值,[L]为滑窗均值滤波器的窗口长度,则[n]时刻滤波器的输出值[x(n)]为[10]:
由式(4)可知,滑动均值滤波算法采集[L]个数据并分别存入[L]个内存单元,完成[L]个称重数据的初次采样后,每采样一次[L]个内存单元按顺序移出一个最初的数据,并移入本次采样的数据,去除本次[L]个数据的最大最小值后,求取剩余[L-2]个数据的均值[10]。 通过实验和根据选用的A/D转换速率,选取[L=10],这样,在编程处理A/D模块输出的数据时,使用了去最值取均值的数字滤波法,从A/D模块读回的每一个数据都要与前9个数据中的最大最小值比较,并将比较后的10个数中的最大最小值剔除,对剩余的8个数据求平均,实现对误差较大的数据进行剔除,提高了系统的稳定性和抗干扰性。
3 实验测试
通过软硬件结合设计,对该系统进行测试。测试使用标准砝码,测试结果保留两位小数。
加入标准砝码,将砝码的质量和相应的A/D输出值记录在表1,通过表1的数据找出砝码质量与A/D输出值的关系。
由上述对表1的数据计算和它的相应曲线图(图6)可以得出,A/D输出值与砝码质量的比值逐渐减小,但是变化不大。因此可以根据K值和A/D输出值来计算出物品的质量。又因为尺子发生弹性形变后,由于各种原因不能恢复,所以测量值会存在一定的误差。
加入标准砝码,记录砝码质量和实测质量,并且计算出它的相对误差,见表2。
4 结 论
本文研究基于均值滑动滤波算法和STM32电子秤的设计与实现,将电阻应变片构成的惠斯通电桥作为称重传感器采集重量信号,应用HX711完成信号的放大和转换成数字信号,在 STM32运用均值滑动滤波算法对数据进行滤波处理,减小干扰,提高数据的准确性。通过实验测试,该电子秤可以测量0~500 g质量,测量误差小,具有一定的应用价值。
参考文献
[1] 王德清,胡晓毅,贾宏,等.基于SPCE061A的高精密电子秤设计与实现[J].电子技术应用,2008(5):83?85.
[2] 佟莹欣.基于C8051F350的高精度低成本电子秤[J].辽宁科技学院学报,2008(3):9?10.
[3] 樊毅,秦会斌.基于STM32的高精度电子天平[J].机电工程,2013(1):51?54.
[4] 谭兴文,韩力.惠斯通电桥灵敏度的探究[J].西南师范大学学报(自然科学版),2008(4):149?152.
[5] 李巧真,李刚,韩钦泽.电阻应变片的实验与应用[J].实验室研究与探索,2011(4):134?137.
[6] 闫好奎,任建国.电阻应变片的工作原理[J].计量与测试技术,2013(4):12.
[7] 郁有文,常健,程继红.传感器原理及工程应用[M].西安:西安电子科技大学出版社,2008:40?54.
[8] 李从宏,严影.基于NRF24L01的多点无线称重系统节点设计[J].信息技术,2015(6):69?71.
[9] 崔陆军,郭虹虹,郭江涛.一种用于冲床的压力测试系统设计[J].计算机测量与控制,2015,23(3):693?695.
[10] 罗及红.一种高精度的电子秤设计[J].计算机测量与控制,2010,18(8):1955?1958.