行业动态

当前位置:主页 > 新闻中心 > 行业动态

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

时间:2017-06-05 08:48 来源:http://www.shslcz.com 点击数:

为了提高电子秤的抗干扰性和数据的准确性,介绍基于均值滑动滤波算法和STM32 电子秤的设计。选用电阻应变片构成的惠斯通电桥传感器采集重物信号,24  HX711 A/D 模块完成电信号的放大和转换,在 STM32 内实现软件滤波,采用滑动均值滤波算法,减小误差,提高数据的准确度。通过软硬件结合的方法进行校正。矩阵键盘输入控制指令实现设置单价、计算物品金额并实现金额累加和去皮等功能。实验测试表明,该电子秤测量范围是0500 g,误差不超过±1 g,称重反应灵敏,5 s 左右读数稳定。

电子秤是一种通过作用在物体上的重力来测定该物体质量的一种计量仪器。因其操作简单、称量准确、体积小、称量速度快、读数方便,被广泛应用于商业贸易、医院、学校、企业等部门。而悬臂式电子秤是一种铁质悬臂梁固定在支架上,悬臂梁上粘贴电阻应变片作为称重传感器进行感应相应重量变化的电子秤。提出一种在悬臂梁上粘贴电阻应变片构成惠斯通电桥作为称重传感器采集数据,HX711 作为 A/D 转换器,STM32为主控器的电子秤,采用滑动均值滤波算法[4],减小各种干扰和提高数据的准确性。

1.系统硬件设计

系统以 STM32 为控制核心,采用电阻应变片和精密电阻构成惠斯通电桥电路作为称重传感器,通过电子秤专用的 HX711 A/D 芯片转换成电信号并进行放大处理,处理后的数据送到 STM32 中进行处理,从数据中总结出,重量与电压或者电阻的关系。通过它们之间的关系可以根据电压变化得出相应的重量。TFT 液晶屏用于显示各种参数,用矩阵键盘通过 STM32 主控系统设置的指令执行相应的命令。系统框图如图所示。

系统1.jpg

1.1 电子秤的工作原理

设计选用电阻应变片粘贴在悬臂梁上作为称重传感器来进行重量信号的变换,把重量变换成电信号。当有重物放置到秤盘上时,悬臂梁发生弯曲,弯曲程度与放置物重量有对应关系。粘贴在上面的电阻应变片感应到相应的信号,输出微弱的电压信号。HX711 对这个电压信号进行放大和 A/D 转换,转换后的数字信号送给 STM32 控制核心进行处理,先对数字信号进行数字滤波等处理,在TFT 液晶屏上显示出来。电子秤的结构图如图所示。

系统2.jpg

1.2称重传感器

将电阻应变片贴在铁质悬臂梁适当的位置上,使它里面的金属箔材随着尺子的弯曲一起伸缩,这样电阻应变片的电阻就会随着应变片的伸缩按一定的规律变化。应变片就是应用这个原理,通过测量电阻的变化而对应变进行测定。其电阻变化率为常数,与应变成正比例关系,即:

系统3.jpg

式中:为应变片的原电阻值;为伸长或压缩所引起的电阻变化;为材料的灵敏系数;ε 为测点处应变。

电阻的变化率可以通过惠斯通电桥间接测量。先对测量数据进行统计、分析,然后用公式进行计算。最终得出的比例系数。使用惠斯通电桥[3] 电路,将电阻应变片的电阻变化转换为电压信号的变化,具有结构简单、灵敏度高、测量范围大、线性度好且易实现温度补偿等特点。

对电桥电路的选择进行了简单的实验后发现单臂的性能比双臂和全桥的差,而双臂和全桥的性能在各方面相差不大,从节省元件方面出发,故采用双臂电桥电路。惠斯通电桥电路如图所示,图中 R2  R3 为电阻应变片,R1  R4 为精密电阻阻值均为 1 kΩ,其电阻应变片初始阻值均为1 kΩP1 UoBT1 E,则该电桥输出电压为:

系统4.jpg

系统5.jpg

由式(3)可知,Uo  R3 R3 成线性关系,差动电桥无非线性误差,而且电桥电压灵敏度 Ku = E2 ,是单臂工作时的两倍,同时还具有温度补偿作用。

系统6.jpg

1.3A/D 转换器的选择

HX711 是一款电子秤专用的高精度 24  A/D 转换器芯片。芯片内部集成了电源、时钟振荡器等其他电路,具有集成度高、响应速度快、抗干扰性强等优点。与后端MCU 芯片的接口和编程非常简单。工作时是通过简单的数字控制和串口通信:所有控制由管脚输入,芯片内寄存器无需编程,输出数据编码二进制补码。电路简单,易于控制和使用。芯片的分辨率高,系统测得的数据比较精确。电路如图所示。

系统7.jpg

2.软件设计

2.1模块化子程序的设计

本程序设计使用的是 Keil Software 公司开发的 MDK5 软件,使用模块化思想进行编程,液晶屏显示、矩阵键盘、A/D 模块、极大极小值滑窗均值滤波子程序、定时器中断以及字符字模处理显示等子程序都以模块的结构方式编写在不同的文件中,函数与参数变量使用头文件进行传递,使得程序结构清晰明朗,出现问题易于查找纠正。程序流程图如图所示。

系统8.jpg

2.2滑动均值滤波算法

经过 A/D 转换后的数据信号存在着很多干扰的信号,需要把无用的信号滤除掉,采用了极大极小值滑窗均值滤波算法。该算法是由均值滑动算法演变而来。令 u(n) 为称重传感器时刻的采样值,为滑窗均值滤波器的窗口长度,则时刻滤波器的输出值 x(n) 为:

系统9.jpg

4)由式(4)可知,滑动均值滤波算法采集个数据并分别存入个内存单元,完成个称重数据的初次采样后,

每采样一次个内存单元按顺序移出一个最初的数据,并移入本次采样的数据,去除本次个数据的最大最小值后,求取剩余 L - 2 个数据的均值。通过实验和根据选用的A/D 转换速率,选取 L = 10 ,这样,在编程处理A/D模块输出的数据时,使用了去最值取均值的数字滤波法,从A/D 模块读回的每一个数据都要与前个数据中的最大最小值比较,并将比较后的10 个数中的最大最小值剔除,对剩余的个数据求平均,实现对误差较大的数据进行剔除,提高了系统的稳定性和抗干扰性。

3.实验测试

通过软硬件结合设计,对该系统进行测试。测试使用标准砝码,测试结果保留两位小数。

 加入标准砝码,将砝码的质量和相应的A/D 输出值记录在表 1,通过表的数据找出砝码质量与 A/D 输出值的关系。根据表的数据做出二维折线图,如图所示。

系统10.jpg

由上述对表的数据计算和它的相应曲线图(图6)可以得出,A/D 输出值与砝码质量的比值逐渐减小,但是变化不大。因此可以根据值和 A/D 输出值来计算出物品的质量。又因为尺子发生弹性形变后,由于各种原因不能恢复,所以测量值会存在一定的误差。

加入标准砝码,记录砝码质量和实测质量,并且计算出它的相对误差,见表2

系统11.jpg

4.

本文研究基于均值滑动滤波算法和 STM32 电子秤的设计与实现,将电阻应变片构成的惠斯通电桥作为称重传感器采集重量信号,应用 HX711 完成信号的放大和转换成数字信号,在 STM32 运用均值滑动滤波算法对数据进行滤波处理,减小干扰,提高数据的准确性。通过实验测试,该电子秤可以测量 0500 g 质量,测量误差小,具有一定的应用价值。