食物营养含量检测系统设计

2017-11-01 07:19吴晨曦黄菊生
传感器与微系统 2017年10期
关键词:子程序串口单片机

吴晨曦, 蒋 嵘, 伍 新, 刘 兰, 黄菊生, 赵 璞

(湖南工程学院 机械工程学院,湖南 湘潭 411104)

食物营养含量检测系统设计

吴晨曦, 蒋 嵘, 伍 新, 刘 兰, 黄菊生, 赵 璞

(湖南工程学院机械工程学院,湖南湘潭411104)

以单片机作为控制器,与称重传感检测电路、A/D转换采集电路、按键输入电路、LCD显示输出电路和串口通信构成检测系统。经过称重感应、检测放大、A/D采集转换后,数字信号经串口传送至上位机,拟合出检测系统的特性曲线。单片机再以此进行数据处理得到被测食物的重量与营养值,并在LCD上显示。结果表明:设计简单方便、称量准确,能够满足不同个体的营养需求。

营养值测量;单片机;称重传感器;检测系统;特性曲线

0 引 言

在日常饮食中,科学合理地摄入各种营养成份,能促进身体健康,反之,则会带来诸多不利的影响,甚至产生严重的后果。比如,过多地摄入热量有可能导致肥胖症、心血管疾病及精神压力等问题。因此,本文提出了一种食物营养含量的检测方法,利用传感技术和微机技术,建立关于食物营养含量的特性关系,再根据特性关系和营养参考值计算需要摄取的食物量,做到精确摄入,满足身体需要[1,2]。

1 检测系统构成与原理

检测系统主要由检测采集、数据处理与输入输出3部分组成,如图1所示。其中,传感器、A/D转换电路构成食物营养含量的测量与模/数信号转换电路;单片机完成采集、传输食物营养特性曲线拟合需要的数据,并根据特性曲线测出待测食物营养含量等数据处理工作;由按键选择食物种类,在LCD上显示设定值和测量结果。工作过程分为2步:1)求特性参数。以不同质量的标准砝码为测量对象,称重传感器将其质量转换为电压信号经A/D转换后送至单片机,再经串口通信发送至PC,由PC拟合检测系统的重量—电压关系特性曲线及参数。2)检测营养值。经相似的检测采集过程后,单片机利用特性参数测出某种食物的重量,并由按键选择已内置在单片机存储器中不同食物的重量与营养关系的换算表,得到该食物的营养含量并由LCD显示。

图1 系统组成框图

2 硬件设计

采用STC89C52单片机作为核心控制器,此外还包括称重传感检测电路、A/D采集转换电路、按键输入电路、LCD显示输出电路和串口通信等[3~5],总体硬件设计原理如图2所示。

图2 系统原理

2.1 称重传感检测电路

采用HL—8型梁式力传感器,测量范围为5kg,如图3所示。当悬臂梁承载重物时会弯曲变形,粘附其上的电阻应变片也随之变形使阻值发生变化,由电阻应变片组成的半桥双臂差动电路将阻值的变化转换为电桥输出电压[6,7],如图2,检测并处理该电压值后得到被测物体的重量。

图3 HL—8型力传感器示意

2.2 A/D转换电路

采用24位的高精度A/D转换芯片HX711。电桥模拟输出电压由INA口输入, 经A/D转换为24位数字量后由DOUT送入单片机后续处理。SCK为时钟线,DOUT为数据线,分别接单片机的P2.0,P2.1引脚,如图2。两引脚与单片机构成串口通信,用来输出数据、选择输入通道和增益,如表1。本文选择输入通道A和增益128倍。

表1 输入通道和增益选择

2.3 LCD显示电路

采用LCD1602字符点阵型液晶显示,与单片机的连接如图2。由于只需要单片机向LCD1602写入命令/数据的操作,各端口的状态值如表2所示。当写命令字时,需要将RS和RW置为低电平,然后将命令字送到数据口D0~D7,最后E引脚发出的高脉冲将命令字写入LCD1602;写入数据时,需要将RS置为高电平,RW置为低电平,然后将数据送到D0~D7口,最后E引脚发出的高脉冲将数据写入LCD1602并显示。

表2 LCD1602写命令/数据

2.4 按键电路

采用独立按键式,每个按键占用单片机的一个I/O口,如图2。2个按键S1,S2分别与P2.4和P2.5引脚相连,以设定,2种不同的食物。可根据实际需要扩展按键数或采用矩阵键盘等,扩大食物的选择范围。

2.5 串口通信电路

单片机将采集的数据通过串口传送至PC,通过PC拟合检测系统的特性曲线。采用电平转换芯片MAX232实现单片机的TTL电平和PC的RS—232C电平之间双向转换,如图2。此外,系统还包括时钟电路和复位电路。

3 程序设计

检测系统的程序设计采用主—子结构,由A/D转换、称重处理、LCD1602显示、串口通信等模块化子程序组成,如图4所示。初始化系统后,A/D转换子程序通过采集标准砝码,将其转换为数字信号送称重处理子程序。一方面单片机通过串口通信子程序将数据上传至PC机,进行检测系统特性曲线的拟合;另一方面处理程序根据特性曲线和按键设定的食物种类,分别完成重量计算和营养值换算,再由LCD显示子程序输出显示,完成一个检测周期。并重复进入下一个周期。

图4 程序流程

这里重点说明A/D转换子程序的设计。A/D转换子程序负责HX711对称重传感电路的输出信号放大128倍并转换为数字信号送至单片机,HX711的A/D转换时序如图5所示,时间参数如表3所示。当数据输出管脚DOUT 为高电平时,说明A/D 转换器还未准备好输出数据,此时串口时钟输入信号SCK 应为低电平。当DOUT 从高电平变低电平后,SCK 应输入25~27个时钟脉冲。其中,第一个时钟脉冲的上升沿将输出24 位数据的最高位(MSB),直至第24 个时钟脉冲,完成24 位输出数据从最高位到最低位的逐位输出。第25~27个时钟脉冲选择下一次A/D 转换的输入通道和增益。当改变输入通道或增益时,A/D 转换器需要4个数据输出周期才能稳定。DOUT 在4个数据输出周期后才会从高电平变低电平,输出有效数据。

图5 A/D转换时序

表3 A/D转换的时间参考值 μs

根据HX711的时序得到A/D转换的流程如图6所示。

图6 A/D转换程序流程

相应的A/D转换子程序如下:

ForAD:CLRP2.0;SCK低电平启动A/D MOVC,P2.1;读DOUT SETBP2.1;设为读引脚DOUTXCHA,R7;C值存入R5R6R7 JBP2.1,$;A/D转换结束? RLCA;MOVR4,#24;24位 XCHA,R7;Shiftout:SETBP2.0;SCK脉冲上升沿 XCHA,R6;NOP;正脉宽T3=1μs RLCA; CLRP2.0;SCK脉冲下降沿 XCHA,R6;XCHA,R5; SETBP2.0;第25个SCK脉冲RLCA; NOP;XCHA,R5; CLRP2.0;通道A,增益128 DJNZR4,Shiftout;已循环24次? RET

LCD显示、按键扫描、串口通信的流程分别如图7(a)~图7(c)所示。

图7 其余子程序流程

4 特性曲线标定

被测食物的重量M经称重传感检测电路和A/D转换为数字信号U,由单片机采集后通过串口通信上传至PC。为求传感器的特性曲线,用不同重量的标准砝码作为输入M,与单片机采集到的相应数字信号U构成数组,共采集20组数据,利用最小二乘法对其进行一元线性回归,得到传感器特性关系曲线,表达式为

M=3.007×10-4U-9.628

U-M特性曲线如图8所示,R=0.999 4接近1,拟合程度很好。由于使用最小值为1 g的砝码进行标定,其分辨率为1 g,所以,本测试系统的分辨率与之相同也为1 g。

图8 传感器特性曲线

5 性能分析

将U-M特性曲线用于称重处理子程序,用该系统计算得到的重量值与砝码标定值进行对比,共采用了21个验证数据,如图9所示。可以看出,测量值与标定值比较接近。系统平均相对误差和平均绝对误差均较小,分别为4.2 %和6.38 g,均方根误差仅6.473 g,反映出测量精密度较高。误差产生的原因是由于系统的非线性、工作电压的波动、环境温度和电磁干扰等因素引起。

图9 测量值与标定值比较

对系统进行重复性测试,得到如表4所示的测量数据。用贝塞尔法计算,5种不同标定值的重复性误差分别为0.422,0.422,0.422,0.466,0.497 g,值较小,说明系统随机误差小,能重复稳定工作。

表4 重复性测试数据 g

6 结束语

设计的检测系统能实现食物重量的检测转换与采集任务;获取传感器的特性曲线并根据特性曲线测量未知重量和营养值,测量精度能满足日常饮食的需要;程序采用模块化设计,结构清晰,可读性好;针对个体差异,精细控制,便于修改调整营养参考指标;系统容易扩展成对多种食物、多种营养成分的测量。实验表明:系统性能稳定可靠,具有成本低的特点。检测系统仍需得完善,比如充分发挥双向串口通信的作用,在上位机增加统计分析功能,进一步提升算法程序的稳定性与可重复精度等。

[1] 庄育锋,翟 宇.微量药品单元动态称重系统的设计与实现[J].仪器仪表学报,2013(2):379-386.

[2] 王德清,胡晓毅,贾 宏,等.基于SPCE061A的高精密电子秤设计与实现[J].电子技术应用,2008(5):83-85.

[3] 高 参,高美凤.双工位定量称重控制系统的研究[J].仪表技术与传感器,2015(10):67-70.

[4] 张从力,史记征,陈增江.一种车载静态称重系统设计[J].传感器与微系统,2013,32(1):99-101.

[5] 钱婷婷,李正明,石 鑫,等.基于单片机的自动称重系统[J].制造业自动化,2014(16):116-117.

[6] 陈治国,李剑勇,乔凤杰,等.基于C8051F单片机的矿用电子皮带秤设计[J].仪表技术与传感器,2012(8):24-25.

[7] 陈广华, 鞠 娜,杨 飞,等.基于粘贴式应变传感器的车辆超载监测系统[J].北京航空航天大学学报,2011(4):409-414.

Designoffoodnutritioncontentdetectionsystem

WU Chen-xi, JIANG Rong, WU Xin, LIU Lan, HUANG Ju-sheng, ZHAO Pu

(SchoolofMechanicalEngineering,HunanInstituteofEngineering,Xiangtan411104,China)

The detection system is composed of single chip microcomputer(SCM) which is used as controller,weight sensing detecting circuit,analog to digital(A/D) conversion acquisition circuit,key input circuit,liquid crystal display(LCD) output circuit and serial communication.After weighing,sensing,detecting,amplifying,A/D collecting and converting,the datasets acquired from the detection system are transmitted to upper PC via serial port,and the characteristic curve of the detection system is fitted by PC computing the datasets.The nutrition value of the tested food is calculated and displayed on the LCD according to the characteristic parameters.The result shows that the design is simple and accurate,and can meet the nutrition demands of different individuals.

nutrition value measurement;single chip microcomputer(SCM); weight sensor;detection system;characteristic curve

10.13873/J.1000—9787(2017)10—0118—03

2017—08—15

TB 932

A

1000—9787(2017)10—0118—03

吴晨曦(1971-),男,讲师,研究方向为机电设备监测与控制等,E—mail: wcxwgw.student@sina.com。

猜你喜欢
子程序串口单片机
浅谈AB PLC串口跟RFID传感器的通讯应用
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索