张春岭 梅彦平 王静
摘 要: 针对原有超声波测距仪存在的精度不高、成本较高等问题,设计了以STC89C52单片机为核心控制单元,利用HC-SR04超声波传感器模块进行超声波检测,同时引入温度传感器对环境温度进行补偿,并加入平均值滤波算法对测量过程中的随机误差进行修正的测距仪。对比实验表明,融合了温度补偿和平均值滤波算法的超声波测距仪在测量精度方面有很大改善,绝对误差控制小于1 mm,平均相对百分误差小于0.2%,仪器兼具结构简单、性能稳定、成本低等优势。
关键词: 超声波测距;传感器;STC89C52单片机;温度补偿;平均值滤波
中图分类号:TP368.2 文献标识码:A 文章编号:2095-8412 (2020) 01-033-05
工业技术创新 URL: http: //www.china-iti.com DOI: 10.14103/j.issn.2095-8412.2020.01.007
引言
距离是控制系统中经常使用的重要参数,如何获得准确的距离成为相关领域研究的热点问题。目前常用的测距方法有:激光测距、毫米波测距、红外测距和超声波测距等[1]。
超声波测距是一种非接触式测距方法。与其他方法相比,超声波测距不受光线、被测对象颜色等因素的影响,对被测物体处于黑暗、电磁干扰等恶劣环境的情况也有一定的适应能力[2]。此外,超声波具有指向性强、方向性好、传播能量大、传播距离较远等优势。目前,超声波测距技术已在工业控制、能源勘探、气象测量、水利监测等领域得到了广泛应用[3]。
当前一般使用集成芯片实现测距仪设计,而这一方式存在成本较高、功能单一等问题[4]。本文设计了一种基于STC89C52单片机的超声波测距仪,具有智能处理功能,可实现测量距离实时显示、报警阈值设置等功能,且操作简单、成本低、精度高,具有一定推广应用价值。
1 总体方案
设计指标:准确测量并显示被测对象与测距仪的距离,当被测距离小于系统预设值(安全距离)时,蜂鸣器报警。
为实现上述指标,系统结构主要由三大部分构成:控制部分、检测部分和人机交互部分,如图1所示。
控制部分采用STC89C52单片机;检测部分采用HC-SR04超声波传感器模块和DS18B20温度传感器模块;人机交互部分包括显示模块、报警模块及按键,其中显示模块采用LED显示器,报警模块采用蜂鸣器,按键采用独立按键。
2 检测原理
2.1 超声波测距原理
采用时差法测距方法,测距原理如图2所示。
将超声波传感器发射端对着被测对象进行发射,超声波以空气为媒介进行传播,遇到障碍物后反射回超声波传感器的接收端,根据发射和接收的时间差就可以计算超声波的传播距离。计算公式如下:
(1)
(2)
由式(1)、式(2)可得
(3)
其中,为被测对象到传感器接收端/发射端的距离,为被测对象到传感器中心的距离,为超声波发射时刻,为超声波接收时刻,为超声波传播速度,为传感器发射端和接收端到传感器的中心距离。
由式(3)可知,传感器与被测物体的直线距离与、、有关,为固定值,因此可通过提高、、的测量精度,来提高的精度。
2.2 温度补偿
超声波作为声波的一种,在空气中传播时的传播速度受环境温度的影响较大。为了提高测量精度,计算时必须根据环境因素对声波速度进行修正。
系统中设置了温度采集电路,利用DS18B20温度传感器可以直接获得现场温度。工业测量中,通常用式(4)进行计算[5]:
(4)
其中,为现场温度,为温度补偿后的超声波传播速度。
3 硬件设计
3.1 控制部分
系统结构中控制部分的主控芯片采用STC89C52单片机,它是宏晶科技生产的一种CMOS 8位微控制器,指令代码完全兼容传统8051单片机,具有高性能、低功耗、超强抗干扰、使用方便简单的特点,是新一代8051单片机。其主频可达35 MHz,定时器精度可达0.028 μs,由定时时间、带来的误差为0.009 7 mm,误差值可忽略不计。
3.2 检测部分
3.2.1 超声波测距
采用HC-SR04超聲波传感器模块作为超声波检测模块,此模块性能稳定,测量范围为20~4 000 mm,测量精度高,盲区小。该模块具有4个引脚——脉冲触发引脚Trig、回波引脚Echo、VCC和GND。测距时Trig引脚接收到单片机发送的高电平信号(持续时间>10 μs);发射端发射8个频率为40 kHz的方波,同时Echo引脚电平将由低变高;接收端收到回波信号后,Echo电平将自动由高变低。高电平持续的时间就是超声波从发射到返回的时间。该高电平时间由STC89C52单片机测定。
该模块发射电路如图3所示,其基本组成为EM78P153、发射换能器T40和MAX232。单片机给Trig引脚发送高电平(持续时间>10 μs);经EM78P153发送一段频率为40 kHz的方波;通过MAX232电平转换,提高发射功率;依靠换能器T40,将电脉冲信号转换为超声波发射。接收电路如图4所示,其基本组成为TL074运放和接收换能器R40。接收换能器R40接收回波,将超声波转换为电信号,经TL074运放送至单片机。
3.2.2 温度检测
为了对超声波传播速度进行温度补偿,系统结构中实时温度检测电路主要采用DS18B20温度传感器。
DS18B20是常用的数字温度传感器,输出的是数字信号,具有体积小、成本低、抗干扰能力强、精度高的特点。该模块测温范围为-55~+125℃,在-10~+85℃范围内精度为±0.5℃。由式(4)可知,其带来的误差对声速的影响为±0.303 5 m/s,可忽略不计。
3.3 人机交互部分
该部分显示模块采用4位共阳极数码管。为节省IO口,采用动态显示方式,同时加入三极管对单片机IO口电流进行放大,以驱动数码管。报警模块采用压电蜂鸣器,其体积小、成本低、可靠性好、灵敏度高,当测量距离小于预设值时蜂鸣器响,进行报警。预设值通过独立按键“+”“-”键进行设置[6]。
4 软件设计
软件设计流程图如图5所示。系统上电后对传感器等进行初始化,超声波发射,启动定时器,一旦检测到声波返回,则关闭定时器,调用测温子程序和距离计算程序。计算結果与预设值进行比较,若大于预设值则调用显示子程序进行显示,若小于预设值则蜂鸣器报警。实际测量中加入了平均值滤波算法,该算法是将采集的m个数求平均值,以该平均值作为测量结果。该算法可以消除随机误差,提高测量精度。
5 功能测试
利用本设计在同一环境下,分别对未加入平均值滤波算法和加入平均值滤波算法时进行测距,测量数据如表1所示。为验证温度补偿的作用,在不同温度下进行测距,测量数据如表2所示。其中绝对误差,平均相对百分误差, (为实际距离,为测量值,为测量次数,为测量总数)。
由表1可以看出,经过平均值滤波处理后的测量结果要明显优于未经处理的测量结果,由此可知平均值滤波算法能够有效提高测量精度。同时,由表2可知,未加入温度补偿时,随着温度变大,测量绝对误差增大;而加入温度补偿后,温度值改变几乎不影响测量精度。表1和表2的数据显示,无论单次测量绝对误差,还是多次测量平均相对百分误差,本文所设计的测距方法均具有明显优势,仪器整体实现的测距性能的绝对误差控制小于1 mm,平均相对百分误差控制小于0.2%。
6 结论
本文设计了基于STC89C52单片机的超声波测距仪,该系统结构简单、成本低、性能稳定、操作方便、精度高。设计中引入温度补偿和平均值滤波算法,提高了测量精度,并将误差限制在合理范围内。该系统适用于液位测量、障碍物的识别以及车辆自动导航等领域,应用前景良好。
参考文献
[1] 张攀峰, 王玉萍, 张健, 等. 带有温度补偿的超声波测距仪的设计[J]. 计算机测量与控制, 2012, 20(6): 1717-1719.
[2] 赵珂. 时差法超声测距仪的研制[J]. 国外电子元器件, 2005(1): 65-67.
[3] 朱旋. 超声波测距仪的研究[J]. 工业仪表与自动化装置, 2009(1): 196-197.
[4] 谭洪涛, 张学平. 单片机设计测距仪原理及其简单应用[J]. 现代电子技术, 2004(18): 94-96.
[5] 安宗权, 冷护基. 基于ATmega8单片机的超声波测距仪[J]. 计算机测量与控制, 2005, 13(11): 1299-1300.
[6] 张毅刚, 刘旺, 邓立宝. 单片机原理及接口技术[M]. 北京: 人民邮电出版社, 2016.
作者简介:
张春岭(1987—),通信作者,女,河北人,工学硕士,助教。从事自动化方面的研究与教学工作。
E-mail: chunling_zhang2013@163.com
(收稿日期:2020-02-17)
Design of Ultrasonic Range Measurement Instrument Based on STC89C52 MCU
ZHANG Chun-ling, MEI Yan-ping, WANG Jing
(City Institute, Dalian University of Technology, Dalian 116600, China)
Abstract: Focusing on the problems such as low precision and high cost existed in the original ultrasonic range measurement instrument, the STC89C52 MCU is taken as the core control unit, and the HC-SR04 ultrasonic sensor module is used to carry out the ultrasonic detection. Meanwhile, a temperature sensor is adopted to compensate the environmental temperature, and the average filtering algorithm is imported to correct the random error during the measurement process. The results of comparative experiments demonstrate that the ultrasonic range measurement instrument with temperature compensation and average filtering algorithm has an obvious improvement in the measurement accuracy. The absolute error is controlled by less than 1 mm, and the average relative error is controlled by less than 0.2%. The instrument also has the advantages such as simple structure, stable performance and low cost.
Key words: Ultrasonic Range Measurement; Sensor; STC89C52 MCU; Temperature Compensation; Average Filtering