基于HX711带记忆功能的饮水量计量装置

2023-11-07 11:36:06李朝阳
电脑知识与技术 2023年26期
关键词:液晶显示饮水量时钟

李朝阳

(仲恺农业工程学院,广东广州 510550)

0 引言

水是人类生命的源泉,身体健康需要保持良好的饮水习惯。然而,现代社会中,越来越多的人因为工作、学习等原因,常常忽视了饮水的重要性,导致身体出现脱水、口渴等症状,不利于身体健康。

为了解决这个问题,饮水量计量装置应运而生,可以测量人体摄入水分量,帮助人们更好地掌握自己的饮水量。随着现代人生活方式的改变,越来越多的人开始注重健康饮食和身体健康,因此饮水量计量装置的需求也越来越高。

HX711 是24 位A/D 转换器芯片,西安外事学院工学院汪显卫[1]、无锡商业职业技术学院物联网学院王小娟[2]、北京信息科技大学于飞[3]、中国电子科技集团公司第三十八研究所刘磊[4]、杭州职业技术学院信息工程学院葛海江[5]等,对HX711 进行研究分析并设计电子秤,武汉交通职业学院商林就精度与稳定性进行了实践[6]。

笔者在前人的基础上,设计了一种基于HX711的带记忆功能的饮水量计量装置,能够计量单次饮水量、饮水次数、总饮水量,并且用液晶显示,方便用户随时查看饮水量。

图1 总体设计

1 总体设计

计量装置主要由悬臂梁、形变电阻桥式电路、HX711模数转换电路、STC89C52控制器、液晶显示电路、按键输入电路、DS1302 时钟电路等构成,如图1所示。

1.1 供电电路

供电电路如图2所示,将+9V ~+12V电压转换成5V 电压,为单片机最小系统电路、液晶显示电路供电。

图2 供电电路

1.2 形变电阻桥式电路

形变电阻桥式电路将应变计电阻变化转化为电压或电流的电信号,如图3所示,以电阻应变计作为桥臂组成电桥电路,当有重物放置到秤盘上时,桥臂发生弯曲,弯曲程度与放置物重量有关,电阻应变器感应到相应的信号后,输出微弱的电压信号。

图3 形变电阻桥式电路

1.3 基于HX711的模数转换电路

基于HX711的模数转换电路如图4所示,电路将形变电阻桥式电路微弱电信号放大,并转变为数字信号,再传递给控制器。HX711 芯片具有集成度高、响应速度快、抗干扰性强等优点,芯片内部集成稳压电路,可直接供电于芯片内部连接的传感器和A/D 转换器。此外,时钟振荡器也被集成在芯片内部,不需要额外的外接设备。另外,芯片内部已整合上电自动复位电路,使开机初态的设定变得简单化。该器件中有通过输入选择开关随意选择信道A 或信道B 来完成信号放大的低噪声可编程放大器。连接可编程放大器,内部噪声小。可编程增益为128 或64 的通道A,分别对应±20mV 或±40mV 输入信号幅值的满量程差分。B 通道增益定值64,可检测系统参数[7]。

该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无须对芯片内部的寄存器编程。HX711 是一款电子秤专用的高精度24位A/D 转换器芯片,可以降低电子秤的整机成本,提高整机的性能和可靠性。

图4 模数转换电路

1.4 单片机最小系统电路

单片机最小系统电路如图5,由晶振电路、复位电路、片外存储器选择电路构成。

表1 HX711芯片引脚

图5 单片机最小系统电路

1.5 DS1302时钟电路

DS1302 是美国DALLAS 公司低功耗实时时钟芯片,具有涓细电流充电能力,DS1302 时钟电路如图6所示。它可以对年、月、日、周、时、分、秒进行计时,并且具有闰年补偿等多种功能。

图6 DS1302时钟电路

1.6 LCD1602液晶显示电路

液晶显示电路如图7所示。LCD1602液晶内部控制器HD44780 是一款点阵式液晶显示控制器,接收STC89C52单片机控制器的指令、数据后,根据指令显示数据。

图7 液晶显示电路

1.7 按键电路

按键电路如图8 所示,有三个独立按键K1、K2、K3,按下不同按键,STC89C52单片机控制器执行相应操作。

图8 按键电路

2 软件编程

2.1 主函数

主函数主要是进行变量初始化、调用模数转换函数、采集当前称重值、调用液晶显示函数、调用FLASH存储函数,流程图如图9所示。

程序开始,进行液晶初始化、变量初始化,调用模数转换程序,读取当前称重值b0;调用时钟函数,读取当前时间;调用液晶显示函数,显示当前时间年月日时分秒、称重值、单次饮水量、饮水次数、总饮水量。按下K2,调用模数转换程序,读取当前称重值b1,b1减去b0为当前称重值。按下K3,调用模数转换程序,读取当前称重值b2,b2减去b0,为当前称重值。

饮水后,将水杯放在装置上,按下K3,STC89C52记录此时的称重值b3,饮水次数加1,计算出本次饮水量(b3-b2)、总饮水量,保存到FLASH。

2.2 模数转换函数HX711_Read()

图9 流程图

要使X711 芯片与单片机进行通信,需要使用PD_SCK 时钟引脚和Dout引脚进行数据输出。另外,输入通道选择也是有必要的。如果输出数据的管脚DOUT 是高电平,说明A/D 转换器还没有做好输出数据的准备。这时,串口时钟输入信号PD_SCK 要保持低电平状态。当Dout 从高电平变成低电平时,PD_SCK 需要输入25 到27 个不同的时钟脉冲。当第一个时钟脉冲上升沿发生时,会读出输出的最高位数据(即MSB),并将24 位数据逐位输出,从最高位(MSB)到最低位(MSB),直至第24 个脉冲完成。用于在接下来的A/D 转换中选择输入通道和增益的是第25 至27 个时钟脉冲[7]。

读取HX711 芯片,首先初始化引脚,然后数据引脚拉高,延时一段时间后,将时钟引脚拉低,等待AD转换结束,然后开始读取数据。接下来循环24次数据接收,在第25个脉冲将数据异或转换,并拉低时钟引脚结束AD 转换。模数转换函数HX711_Read(),读取24位数据,返回主函数:

2.3 滤波算法

通过形变电阻桥式电路获得的电信号,在外界因素干扰项,掺杂很多别的信号,比如磁场、抖动、空气流动之类的自然的或人为不可避免的信号。为了过滤干扰信号,采用了递推中位值平均滤波法。连续采集,对采集到的数据进行排序,选取其中的中位值作为滤波后的值,达到平滑信号的目的。该算法能有效地克服因偶然因素引起的波动干扰,使测得的数据更为准确。

2.4 其他函数

液晶显示函数LCD_display(),显示当前重量、单次饮水量、饮水次数、总饮水量。

DS1302 时钟读取函数DS1302_read(),读取当前时间。

内部FLASH 存储空间读取函数FLASH_read()、FLASH_eraser()、FLASH_write(),分别完成存储空间读取、擦除、写入功能。

3 装置工作过程

我们通过实验验证饮水量计量装置。连续几次按下K2、K3计算饮水次数、每次饮水量、总饮水量。

图10 装置工作过程

装置工作过程如图10所示:

1)装置通电

装置通电前,装置悬臂梁上面不能放置任何物品。通电后,STC89C52 调用模数转换函数HX711_Read(),并记录此时的称重值b0。如果需要饮水次数和总饮水量清空,请按下K1,此时液晶界面,称重值、饮水次数、总饮水量为0。液晶第一行显示时间5月1日10点30分,实时称重值0,第二行饮水次数0、本次饮水量0,总饮水量0。

图11 装置通电液晶显示

2)水杯装水放在装置上,实时称重值537

3)饮水

饮水前,水杯需要放在装置上,按下K2,STC89C52 记录此时的称重值b1。端起杯子饮水,此时实时称重值为0。

饮水后,将水杯放在装置上,按下K3,STC89C52记录此时的称重值b3,饮水次数加1,计算出本次饮水量(b3-b2)、总饮水量,保存到FLASH。

4)重复饮水动作

5)加水

6)重复饮水动作

7)重复饮水动作

此时实时称重值、饮水次数、本次饮水量、总饮水量,显示在液晶界面,实时称重值432g,饮水次数4,本次饮水量63g,总饮水量257g。

图12 运行过程液晶显示

4 结论

随着现代人生活方式的改变,越来越多的人开始注重健康饮食和身体健康,因此饮水量计量装置的需求也越来越高。

用24 位高精度AD 数模转换芯片HX711 设计的带记忆功能的饮水量计量装置,可以实时准确计量饮水次数、每次饮水量、每天饮水总量。同时本装置有记忆功能,数据保存在FLASH 存储空间,平时不用可以关闭电源,下次打开从FLASH存储空间读取饮水次数、每次饮水量、饮水总量数据,具备节能绿色环保。本装置帮助人们更好地掌握自己的饮水量,为健康提供更好的指导和帮助,促进身体健康。

猜你喜欢
液晶显示饮水量时钟
别样的“时钟”
牛羊猪的最佳饮水量
今日农业(2020年14期)2020-12-14 19:47:34
古代的时钟
牛羊猪的最佳饮水量
养殖与饲料(2020年8期)2020-02-17 03:22:11
女性多喝水尿路感染风险小
保健与生活(2019年3期)2019-08-01 06:33:08
每天要喝多少水?饮水量公式帮你算
医食参考(2017年10期)2017-11-21 19:51:30
有趣的时钟
时钟会开“花”
122×32 点阵液晶显示汉字原理实验
界面致稳型柔性胆甾相液晶显示器件的制备与性能