陈龙
摘要:本次设计以atmega2560单片机为控制核心,通过硬件电路设计实现对不同液体的液位、重量的检测及种类的判别,结合软件编写各个模块所对应的程序,完成电路功能的实现,并且将各个模块进行整合,将测试结果呈现在液晶显示屏上。通过对超声波传感器反馈数值的计算,得到液体液位的精确数值;通过对压力传感器反馈数值的计算,得到液体重量的精确数值;通过对光源的检测,实现对乳状液体的判别;通过对液体电阻率的测量,判别液体的种类;通过温度传感器测量温度等。
关键词:液位测量;重量检测;液体种类分辨
中图分类号:TP212.6 文献标识码:A 文章编号:1007-9416(2019)09-0168-02
0 引言
智能液体测试仪用于测量液体的液位、重量及温度,分辨液体的种类,如盐水、糖水、纯净水、牛奶、白醋等。
1 方案设计
方案一:通过对超声波传感器反馈数值的计算,得到液体液位的精确数值;通过对压力传感器反馈数值的计算,得到液体重量的精确数值;通过对光源的检测,实现对乳状液体的判别;通过对液体电阻率的测量,判别液体的种类。以atmega2560单片机为控制核心编写各个模块所对应的程序,利用液晶显示模块实现各种参数的显示。
方案二:通过对红外测距反馈数值的计算,得到液体液位的精确数值;通过对压力传感器反馈数值的计算,得到液体重量的精确数值;通过对PH的测定,实现对液体种类的判别;软件选择atmega16单片机,利用C语言完成程序编写,利用液晶显示模块实现各种参数的显示。
方案二:采用采用红外测距技术测量液位,但是红外穿透能力较强,无法精准测量,方案一采用超声波技术测量液体液位,较方案二更加精确;方案二通过对不同液体PH的对比,来确定液体种类,但是,不同浓度的盐水PH变化较大,与其他液体PH范围会产生交集,无法精准判断,方案一对不同液体的电阻率进行测量,不同浓度盐水电阻率偏差较小,各种液体之间不会产生交集,可以准确判断液体种类。Atmega16单片机内部无数模转换引脚,程序冗杂,而atmega2560内部程序自带数模转换装置,且程序简单明了,且其需要对寄存器进行操作,直接调用函数,简单快捷。综上所述,选择方案一可以更加精确的确定不同种类液体的各项参数。
2 系统设计
接通电源后,atmega2560单片机采集超声波传感器测得液位值、称重传感器测得重量值以及液体电阻率的数值,并进行计算,将最终检测结果显示在液晶屏上。整体设计系统框,如图1所示。
2.1 电源模块
各个模块所需的电源由220V开关电源提供,直流12V电源经过LM7805稳压模块降压后输出稳定的直流5V。为了避免开关电源出现故障,保障电源模块的稳定性,电路设计过程中采用备用电源电池组供电。在开关电源与电池组电路输出端各串联一个二极管,避免电源之间相互干扰,为电路提供稳定电源。
2.2 测距模块
采用超声波测距的方法,利用单片机编写程序发出控制指令,超声波模块发送8个40khz的方波,自动检测是否有信号返回。如果有信号返回,超声波模块输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,单片机用来检测高电平时间,通过计算,测试距离=(高电平时间×声音传播速度)/2,精度可达±1mm。液位测量的方法:超声波传感器到杯底的高度减去超声波传感器到液面的高度。
2.3 称重模块
采用压力传感器测量物体重量的方法,物体放置压力传感器时,导体受机械变形时,其电阻值发生变化,利用电阻应变效应原理,计算所测液体的重量。通过计算,重量=电阻变化值×0.201-0.4, 精度可达±1g。液体净重的测量方法是:液体测量值减去杯子的重量。
2.4 温度模块
采用DS18B20温度传感器测量液体温度,通过单片机的串口采集信息,数值经过计算,直接显示被测液体温度。测量温度范围较宽,-55℃~+125℃,精度可达0.5℃。
2.5 乳液模块
乳状液体对光的吸收能力较强,无法穿透,采用光源发射、接收的方法判别乳状液体(牛奶)。利用激光的穿透力和光敏电阻接受光照不同阻值发生变化来判别是否为乳状液体(牛奶),单片机检测电阻值得变化,若是乳状液体,光敏电阻阻值不发生变化。
2.6 溶液模块
采用测量电阻率的方法,将模块放入液体中,形成回路,不同种类液体的电解质不同,电阻率就会产生相应的变化区间。各种液体之间不会产生交集,可以准确判断液体种类。测量方法是探针放入液体中,单片机AD口采集液体电阻率,经过计算处理,与各种液体电阻率区间进行对比,从而判断出液体种类。
2.7 CPU模块
atmega2560单片机通过对超声波传感器反馈数值的计算,得到液体液位的精确数值;通过对压力传感器反馈数值的计算,得到液体重量的精确数值;通过温度传感器测量温度;通过对光源的检测,实现对乳状液体的判别;通过对液体电阻率的测量,判别液体的种类等,最终将测试结果显示在液晶屏上。程序流程图,如图2所示。
2.8 液晶显示模块
采用12864液晶显示屏作为显示模块,通电后显示“欢迎使用多功能液体检测仪”,按下启动键后,进入功能选择模式。测试过程中分别显示液位高度、液体重量、温度、液体种类。
3 系统测试
3.1 测量材料
食盐,白砂糖,白醋,纯牛奶,纯净水,量尺,电子称,砝码,量杯,搅拌器等。
3.2 测试方法
步驟一:改变超声波传感器的位置,进行校准。
步驟二:用电子秤与称重传感器分别测得不同砝码的重量,记录数据,计算误差值。
步骤三:连接电源,按动启动按键,开始检测该液体液位、重量等参数,观察液晶显示模块的显示内容,记录检测结果,并与专业测量数据进行对比。
步骤四:依次更换不同液体(纯净水、9%浓度的醋、纯牛奶、盐水),重复步骤三,并且显示所测液体种类,记录数据。
3.3 图表数据
图表数据,如表1和表2所示。
4 结语
本次设计以atmega2560单片机为控制核心,实现对液体各项参数的监测功能,经过监测实验,各项性能指标达到了设计要求。在系统设计中,硬件电路设计的简化,使系统的整体电路结构更加简单、性能更加稳定、精确度更高;同时采用arduino程序编写,省去了冗长的程序,节约了时间成本,大大提高了检测效率。
参考文献
[1] 华成英.模拟电子技术基础(第四版)[M].北京:高等教育出版社,2006.
[2] 李永华.arduino案例实战(第三版)[M].北京:清华大学出版社,2017.
Abstract:This design atmega2560 single-chip microcomputer as control core, through the design of hardware circuit implementation of different liquid level, weight detection and the types of evaluation, combining with the software write each module of the program, the realization of the function of complete circuit, and to integrate the various modules, the results appear on the LCD screen. By calculating the feedback value of ultrasonic sensor, the exact value of liquid level is obtained. The accurate value of liquid weight is obtained by calculating the feedback value of pressure sensor. Through the detection of the light source, the emulsion liquid can be distinguished. By measuring the resistivity of liquid, distinguish the type of liquid; The temperature is measured by the temperature sensor.
Key words:liquid level measurement; weight testing; liquid type discrimination