2016年TI杯大学生电子设计竞赛(图片都在附件里面)
简易电子秤(G题)【本科组】
2016 年 7 月28 日
简易电子秤(G题)
【本科组】
摘要:该系统以单片机STM32F103RC为控制核心,由电阻应变式称重传感器将压力转换为电压信号,采用 HX711 内部自带的差分集成运算放大器将微弱的电压信号放大后送人 HX711 内部的24 位 A/D 转换器将此模拟电压值转化为数字量,输送给单片机。由单片机对该数值处理后得到实际重量及控制相应附加功能,最后通过 LCD12864 液晶屏进行相应的显示。
本课题所采用的电路简单,算法合理。经过实际制作和测试,完全达到了题目基本部分和发挥部分的所有要求,效果很好
1 系统方案
1.1 比较与选择
1.1.1 控制部分的方案论证与选择
方案一:采用 51 作为控制核心。51 单片机主频为 12M,拥有三十二个 I/O 引脚,8Kflash 程序
存储空间,256 byte RAM ,三个定时器,三个计数器,五个中断源,价格低廉,但其运行速度较慢,
无内部 SRAM 等。
方案二:采用 STM32,其具有 512Kflash 程序存储空间,主频 72M,三个定时器,四个外部中
断,内部 RTC 等,内置高速存储器。在运算速度和存储容量上满足要求,丰富的外设也简化了系统
的硬件设计。
方案选择:本系统采取 STM32F103RC 控制器。ARM32 系列比 89c52 单片机具有更强大的控制
功能、更快的运行速度,可更快捷地进行高精度的测量。因此综合考虑选择STM32F103RC 作为控
制部件。
1.1.2 模数转换及显示部分的方案论证与选择
方案一:将放大后的信号输入 A/D 转换芯片 TLC2573 进行 A/D 转换,由于此芯片可直接用于
数字显示,故转换后的数字量直接用数码管等显示器进行显示。此方案的优点是外部电路非常简单,
能实现较高的精度。缺点是无法对 A/D 转换进行控制,同时需要前置放大电路。其方案如图 1 所示。 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
前置放大电路
TLC2573数码管显示A/D转换
图 1 TLC模数转换电路框图
方案二:将放大后的信号输入到 HX711 进行模数转换,再将得到的数字信号送至单片机进行处
理后送入 LCD12864 液晶显示。此方案的优点是可控制性好,可通过软件的编程实现放大倍数选择,
且电路简单,液晶的硬件电路也比数码管的简单,且技术领先于数码管,可显示的内容丰富。采用
单片机对数据稍加处理,即能通过软件在一定程度上弥补与调节硬件电路所无法避免的数据抖动,
使最终所测得的数据更可靠、参考性更强,且其内部集成差分运放,使得电路比较简单。其方案图
如图 2 所示。 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
综合考虑,本次设计选择方案二。
1.1.3 电阻应变片桥式接法方案论证
方案一:采用半桥式接法。这种方法线性度、准确性很高,使用简单,适用于大多数测量,但是抗
干扰性不高,原理图如图 3 所示。
方案二:采用全桥式接法。全桥式能兼容半桥式接法的优点,即是准确性,线性度高。但它比
半桥接法的抗干扰性更强,原理图如图 4 所示。 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
图 3 半桥接法 图 4 全桥接法
1.2 方案描述 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg 形变量传感模 按键输入模块 蜂鸣器模块 块
信号采集放大 | 主控模块 | 液晶显示模块 |
| AD转换模块 |
|
|
|
|
系统供电
图 5 系统框图
如上所示,系统由以下主要模块构成: Ø 形变量传感模块:负责将铁质悬臂梁的形变信号转化成电信号。
Ø 信号采集放大以及 A/D 转换模块:将微弱的电信号进行放大处理并将模拟量转换成数字量。
Ø 主控模块:主控采用 STM32F103RCT6,使用它实现输入输出控制,数据处理等功能。
Ø 显示模块:采用 LCD12864 来显示重量,单价总价等关键信息。 2
Ø 按键模块:通过按键来进行功能的选择,以及输入电子秤所需要的关键信息。
Ø 蜂鸣器模块:当按键按下后通过模块发出声音来提示此按键已经按下,防止用户误使用。
2 理论分析与计算
2.1 电阻应变片选择
国家标准中电阻应变片的阻值规定为 60、120、120、200、350、500、1000。应变片阻值越大,
则其相同形变量时得到的电压值就越大,即精度越高,综合考虑成本与实际要求本次选用的应变片
为 350Ω。
2.2 称重传感装置理论分析
电阻应变式压力传感器主要由弹性体、电阻应变片、电缆线等组成,内部线路采用惠更斯电桥,
当弹性体承受载荷产生变形时,电阻应变片(转换元件)受到拉伸或压缩而变形后,它的阻值将发
生变化(增大或减小),从而使电桥失去平衡,产生相应的差动信号,供后续电路测量和处理。电阻
应变式传感器测量原理如图 6 所示。 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg
图 6 电阻应变式传感器测量原理
当垂直正压力 P 作用于梁上时,梁产 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image013.jpg 生形变,电阻应变片 R1、R3 受压弯拉伸,
阻值增加;R2、R4 受压缩,阻值减小。
电桥失去平衡,产生不平衡电压,不平衡
电压与作用在传感器上的载荷 P 成正比,
从而将非电量转化成电量输出。
R1、R2、R3 和R4 组成惠更斯电桥,
将两对电阻应变片的阻值变化转变成输
出电压,其工作原理图如图 4 所示。 图 7 HX711 外部管脚图
2.3 检测算法及功能实现
HX711与后端 MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动。输入选择开关可
任意选取通道 A 或通道 B,与其内部的低噪声可编程放大器相连。通道A 的可编程增益为 128 或
64,对应的满额度差分输入信号幅值分别为±20mV 或±40mV。通道 B 则为固定的 32 增益,用于
系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的 A/D 转换器提供电源,系
统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了
开机的初始化过程。其外部管脚如图 7 所示。
3 电路与程序设计
3.1 信号采集部分
电阻应变传感器在悬臂梁上发生形变的过程中电阻变化非常小,这样小的电阻变化用一般测量
电阻的仪表很难测出,必须用一定形式的测量电路将微小的电阻变化率转变成电压或电流的变化,
才能用二次仪表显示出来,在电阻应变式称重传感器中,通过桥式电路将电阻的变化转换为电压的
变化,电阻应变式称重传感器的原理框图如图 8。
载荷 P |
| 应变 x |
| 电阻变化 |
| 输出 |
| 敏感元件 | 应变片 | 测量电桥 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image015.jpgfile:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image017.jpgfile:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image019.jpgfile:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image021.jpg 图 8电阻应变式称重传感器的原理框图
3.2 差动放大电路与模数转换电路
本次设计采用了 HX711 作为模数转换芯片,其内部集成了差动放大器与模数转换器,内部集成
了包括稳压电源、片内时钟振荡器等其他同类型芯片所需要的外围电路。 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image023.jpg 图 9 为 HX711 芯片应用于
电子秤的电路图。该方案使用
内部时钟振荡器(XI=0),电源
(2.7~5.5V)直接取用与 MCU
芯片相同的供电电源。通道 A
与传感器相连,通道 B 通过片
外分压电阻与电池相连,用于
检测电池电压。
图 9 HX711 电子秤应用电路图
3.3 主控电路
4
file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png
STM32是意法半导体推
出 的 32 位 基 于 ARM
Cortex-M3 核心的带 512K 字
节闪存的微控制器。其具有
最高 72MHz 的工作频率,拥
有 512K 的闪存程序存储器,
高达 64K 的 SRAM,拥有并
行 LCD 接口(兼容 8080/6800
模式),3 个 12 位模数转换
器,4 个 16 位定时器,2.0-3.6
伏供电,具有 VBAT 为 RTC
和后备寄存器供电。其最小
系统电路图如图 10 所示。
图 10 STM32最小系统
3.4 外围电路设计
3.4.1 LCD12864 显示电路 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image027.jpg 12864 内置8192 个 16*16 点汉字,和 128 个
16*8 点 ASCII 字符集.利用该模块灵活的接口方式
和简单、方便的操作指令,可构成全中文人机交互
图形界面。可以显示 8×4 行 16×16 点 阵的汉字. 也
可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵
液晶 显示模块相比,不论硬件电路结构或显示程序
都要简洁得多,且该模块的价格也略低于相同点阵
的图形液晶模块。其电路图如图 11 所示。 图 11 液晶显示接口电路
3.4.2 蜂鸣器与按键电路
系统利用蜂鸣器进行提示,从而使得系统操作更加友好,通过 4*5 按键进行输入,矩阵键盘能
够节省更多 IO 口。其电路图如图 12、13 所示。
图 12 矩阵键盘图 图 13 蜂鸣器电路
3.5 程序结构与设计
3.5.1 主程序流程图
程序经过各个模块初始化后分时处
理重量取值与显示和按键处理。其流程图
如图 13 所示。
3.5.2 HX711 读值与处理
HX711 与单片机采用类似与IIC 的方
式通讯,所用到的数据线为 SCK 与 DO,
需要读值时发送 25-26 个时钟脉冲启动,
之后就可进行读值,时钟信号默认为低电
平。其流程图如 14 所示。
3.5.3 flash 存储流程图
我们将 flash 用于存储单价以及校准
后的分度值,将此功能作为本次题目的扩
展部分。flash 即 STM32 的程序存储器,
我们选择将分度值存储在 100K 开始的位
置,而将单价存储在 96K 开始的位置,流
程图如图 15 所示。
file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image033.png
开始 |
|
| 按下设单价 | N |
|
|
| 按键 | N |
|
|
| Y |
|
| 计算输入单价值 |
|
|
开始 file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image035.jpg
发送启动脉冲
读取返回值
释放总线
累加ad值
按下存单价按键
Y
调用写flash函数存储
结束
图 14 flash存储流程图
file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image037.jpg
结束
图 15 HX711程序处理流程图
4 测试方案与测试结果
4.1 测试方案及测试条件
4.1.1 测试仪器
使用标准砝码进行标定,然后测量相应的砝码值。
4.1.2 测试方案
1. 确定分度值
由于悬臂梁的形变和重物的实际变化量并非对应严格的线性变化,即是同一个分度值在不同质
量的重物值的拟合情况不同,所以要采用分段测试分度值来修正线性的变化误差,让悬臂梁的形变
和重物的质量成一个严格的线性关系。
本系统测试是采用标准砝码来测试 AD 值,砝码从 0 克变化到 50 克,记录对应的 AD 值,最后
利用 Orignpro 绘制坐标图来分析拟合关系,确定分度区间,并设置相应分度值,将对应关系加到程
序中修订。
2. 测量误差范围
当分度值确定后再重新对重量值进行测试,以确定误差范围。
通过 0-500g 范围内测量三次从而求得误差的平均值。
4.2 测试结果
4.2.1 AD 分度值拟合结果
经过拟合,其拟合出来的函数关系为 y=0.23122x-7476.4,该图仅为一个 0-50g 的测试图,而其
余分度值依次求值即可。
file:///C:/Users/朱春桥/AppData/Local/Temp/msohtmlclip1/01/clip_image039.jpg
20 |
|
|
| 0 |
|
|
| 32300 | 32400 | 32500 | 32600 |
B
图 16 AD 分度值拟合结果
误差测量结果如表 1 所示
|
| 表 1 | 误差测量结果 |
|
|
|
|
|
|
|
|
| 砝码重量/g | 显示值 1/g | 显示值 2/g |
| 显示值 3/g | 误差总值 | 误差平均值 |
|
|
|
|
|
|
| 0 | 0.0 | 0.0 |
| 0.0 | 0.0 | 0.00 |
|
|
|
|
|
|
| 1 | 0.9 | 1.0 |
| 0.9 | 0.2 | 0.06 |
|
|
|
|
|
|
| 2 | 1.9 | 1.9 |
| 1.9 | 0.3 | 0.10 |
|
|
|
|
|
|
| 5 | 4.9 | 5.0 |
| 5.1 | 0.2 | 0.06 |
|
|
|
|
|
|
| 10 | 10.0 | 10.1 |
| 10.1 | 0.2 | 0.06 |
|
|
|
|
|
|
| 20 | 19.8 | 19.9 |
| 20.0 | 0.3 | 0.10 |
|
|
|
|
|
|
| 30 | 30.0 | 29.9 |
| 29.9 | 0.2 | 0.06 |
|
|
|
|
|
|
| 40 | 40.1 | 40.1 |
| 40.0 | 0.2 | 0.06 |
|
|
|
|
|
|
| 50 | 50.0 | 50.0 |
| 50.1 | 0.1 | 0.03 |
|
|
|
|
|
|
| 60 | 59.9 | 60.0 |
| 60.0 | 0.1 | 0.03 |
|
|
|
|
|
|
| 70 | 69.9 | 69.9 |
| 70.0 | 0.2 | 0.06 |
|
|
|
|
|
|
|
|
|
| 8 |
|
|
80 | 80.0 | 80.1 | 79.9 | 0.2 | 0.06 |
|
|
|
|
|
| 90 | 89.8 | 90.0 | 90.1 | 0.3 | 0.10 |
|
|
|
|
|
| 100 | 99.8 | 99.7 | 100.1 | 0.6 | 0.20 |
|
|
|
|
|
| 150 | 150.0 | 149.9 | 150.3 | 0.4 | 0.13 |
|
|
|
|
|
| 200 | 200.3 | 200.3 | 200.1 | 0.7 | 0.23 |
|
|
|
|
|
| 250 | 250.2 | 250.1 | 250.2 | 0.5 | 0.16 |
|
|
|
|
|
| 300 | 300.2 | 300.2 | 300.2 | 0.6 | 0.20 |
|
|
|
|
|
| 350 | 350.2 | 350.1 | 350.2 | 0.5 | 0.16 |
|
|
|
|
|
| 400 | 400.3 | 400.1 | 400.2 | 0.6 | 0.20 |
|
|
|
|
|
| 450 | 450.1 | 450.2 | 450.1 | 0.4 | 0.13 |
|
|
|
|
|
| 500 | 500.3 | 500.0 | 500.3 | 0.6 | 0.20 |
|
|
|
|
|
|
4.3 测试结果分析
由以上表格可知,本作品的精度完全能达到题目的要求。但是每次测试的值会产生一个波动。
波动的来源于有几方面,首先是托盘的震动,托盘震动会使悬臂梁产生动态的形变从而使显示值产
生变化。其次铁质悬臂梁不能严格恢复形变也会使值产生波动。这种误差是不能避免的,只能通过
函数进行补偿,从而减小误差。
5 总结
根据题目要求,经过 4 天 3 夜的艰苦奋斗,最终完成了题目的所有要求,并做了相应扩展,具
体功能如下。
要求 | 完成内容 |
|
| 数字显示被称物体的重量,单位克(g) | 可以显示被称量物体重量(单位:g),精确到小 |
| 数点后一位 |
|
| 电子秤称重范围 5.00g~500g;重量小于 50g,称重误差小 | 称重范围 1-500g;重量小于 50g,称重误差约为 | 于 0.5g;重量在 50g 及以上,称重误差小于 1g | 0.1g;重量在 50g 及以上,称重误差约为 0.2g |
|
| 电子秤可以设置单价(元/克),可计算物品金额并实现金 | 可以设置单价,精确到小数点后一位,可计算物 | 额累加 | 品金额并可累加,且可存储单价,实现快速计算 |
|
| 电子秤具有去皮功能,去皮范围不超过 100g | 具有去皮功能 |
|
| 扩展要求 | Flash 存储单价与校准分度值 |
|
|
参考文献
[1] 吴光杰,传感器与检测技术,重庆大学出版社,2011.7
[2] 龚运新.,单片机 C 语言开发技术,北京:清华大学出版社,2006.10
[3] 欧阳骏,疯狂 STM32 实战讲学录,中国水利水电出版社,2013.12
[4] 谢龙汉,鲁力.Altium Designer 原理图与 PCB 设计及仿真,北京:电子工业出版社,2011.
附录
实物图(见附件)
源码下载:
电子秤完整版.rar
(304.64 KB, 下载次数: 87)
|