基于单片机带温度补偿的超声波测距仪设计

2016-08-05来源: 21ic关键字:单片机  温度补偿  超声波测距仪
 超声波具有指向性强,能量消耗缓慢,在介质中传播的距离较远等优点,因而超声波经常用于距离的测量,如物位测量仪和测距仪等都可以通过超声波来实现。利用超声波检测比较快速、方便、计算简单、易于实时控制,并在测量精度方面能达到工业实用的要求,性价比较高。因此在液位、井深、管道长度的测量、移动机器人定位和避障等领域得到了广泛应用。

本设计以脉冲回波法的超声波测距原理为依据,AT89S52单片机作为控制核心,结合超声波发送和接收模块HY—SRF05,实时LCD显示。系统采用DS18B20温度传感器,把温度值的变化补偿到超声波的波速中,从而提高超声波测距仪的精度,降低温度对测距结果的影响。

1 超声波测距原理

超声波测距的原理是通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可判断出距离,这与雷达测距原理相似。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物则立即返回,超声波接收器收到反射波则停止计时。

 

a.jpg

 

根据计时器记录的时间t,就可以计算出发射点距障碍物的距离

d=s/2=(V×t)/2 (1)

V=331.4+0.61T (2)

其中,s是超声波往返通过的路程;V为超声波介质中传播速度;T为实际温度。所以超声波传播速度和温度密切相关,由此可见温度对于超声波测距系统的影响是不可忽略的。

2 系统硬件设计

该系统由5部分组成,以AT89S52单片机作为控制核心,温度传感器DS18B20用于温度的采集,LCD用于显示实时温度和障碍物的距离,超声波传感器HC-SRF05用于超声波的发送和接收。系统整体结构框图如图2所示。

 

b.jpg

 

2.1 超声波传感器

超声波传感器HC-SRF05集超声波的发送和接收功能于一体,可提供2~450 cm的非接触式距离感测功能。图3是HC—SRF05的实物图,图4是超声波模块电路图。1脚为5 V电源端;2脚为触发控制的信号输入端,与单片机的P3.7口相连;3脚为回响信号输出,与单片机P3.2口相连;4脚接地;5脚为开关量输出。

 

c.jpg

 

P3.7口向触发引脚发送≥10μs的脉冲触发信号,该模块内部将发出8个40 kHz周期电平并检测回波,一旦检测到有回波信号,则3脚输出回响信号,所测的距离与回响信号的脉冲宽度成正比,由此可通过发射信号到收到回响信号的时间间隔计算得到距离。超声波时序图如图5所示。

 

d.jpg

 

2.2 温度传感器DS18B20

由于声音的速度在不同的温度下有所不同,因此为提高精度,应通过温度补偿对超声波的传播速度进行校正。系统采用DS18B20传感器测量温度,DS18B20温度传感器具有不受外界干扰、精度高、测温范围宽等优点。检测电路如图6所示,单片机P3.7口接DS18B20数据总线,控制DS18B20进行温度转换和传输数据,数据总线接10 kΩ的上拉电阻,作用是使总线控制器在温度转换期间无需一直保持高电平。

 

e.jpg

 

2.3 LCD显示模块

LCD1602具有超薄、功耗低、体积小等优点,被广泛用于低功耗电子产品和智能仪表中。LCD显示电路如图7所示,3脚VL为对比度调整端,使用时通过接一个10 kΩ的电阻来调节。4脚RS为寄存器选择信号线,H为数据选择,L为指令选择,接单片机的P1.0口。5脚RW为读写信号线,接单片机的P1.1口。6脚E为使能端,当E由高电平跳变为低电平时执行命令,接单片机的P1.2口,8位数据线D0~D7,接单片机的P0口。

f.jpg

 

 

3 系统软件设计

3.1 主程序设计

系统软件采用模块化设计,系统初始化部分包括引脚的定义、中断和定时器的设置等,进而调用温度检测子程序,根据温度值对超声波速度进行校准,最终根据回波信号计算距离并显示,主程序流程如图8所示。

 

g.jpg

 

3.2 超声波测距子程序

超声波发送子程序采用定时器T0中断的方式由单片机P3.7引脚发送触发脉冲,由单片机P3.2引脚利用定时器T1来对回波信号进行检测计时,初始化T1后检测等待回波信号的到来,当信号由低变高后定时器T1开始计时,直到信号由高到低计时结束,根据温度校准后的超声波速度计算障碍物的距离,超声波测距流程如图9所示。

 

h.jpg

 

4 实验结果

硬件电路如图10所示,经过试验采集的数据如表1所示。由表1数据可看出,当测量范围在30~150 mm之间时,误差相对较小,此范围之外误差较大。

 

i.jpg

 

 

j.jpg

 

5 结束语

本系统通过引入DS18B20,使超声波测距系统的测量精度有了较大的提高。该系统具有结构简单、带温度补偿、实时LCD显示和报警等优点,并有一定的实用价值。

关键字:单片机  温度补偿  超声波测距仪

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/article_2016080528213.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于DS18B20的关联型温度检测系统的设计与实现
下一篇:基于89C55和FPGA的最小系统频率特性测试仪

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F1系列单片机USB外设相关寄存器的定义

Keil MDK网站上下载的Keil.STM32F1xx_DFP.2.2.0.pack包中的stm32f10x.h头文件里面没有USB_TypeDef的定义,只有寄存器位的定义,是不完整的头文件。没有USB的数据结构就会给访问USB寄存器带来一定的困难。虽然可以参照STM32参考手册中的USB register map自己编写出USB_TypeDef结构体,但是这样比较麻烦。不过,STM32CubeMX工具生成的STM32F103工程中的头文件stm32f103xe.h中就有完整的USB数据结构,该头文件的版本是V4.2.0,日期为31-March-2017,作者仍然是Keil里面的MCD Application Team,这比Ke
发表于 2019-07-19

STM32开发笔记38: 单片机内部Flash的读写

单片机型号:STM32F070F6P6本文介绍应用C语言进行单片机内部Flash的读写技巧,将从查看文档开始,到最终完成完整的程序。单片机型号:STM32F070F6P6步骤如下:1、查看文档《STM32F030x4/x6/x8/xC and STM32F070x6/xB advanced ARM®-based 32-bit MCUs》确认其Flash的内部结构。2、查看文档确认STM32F070F6P6内部存储器地址分配。从下表中得到的主要信息是Main Flash memory的起始地址是0x08000000,长度是32KB,到0x08017FFF结束(结束值可不关心)。3、继续查看Main Flash memory的内部结构
发表于 2019-07-16
STM32开发笔记38: 单片机内部Flash的读写

模拟量数据的采集过程解析

单片机的ADC接口属于模数转换接口,将外部的模拟量信号转化为数字信号,单片机属于数字器件,需将模拟信号转化为数字信号才能够为单片机处理。目前市场的很多单片机都自带ADC转换接口,若无ADC转换接口,可以使用ADC数模转换芯片外扩。ADC模块是将模拟信号转化位数字信号,数字信号用0和1表示,ADC模块有参考电压,假设给的参考电压是5V,ADC是12位的(几位表示用二进制几位数存储模拟量转化后的数字量,12位的ADC则可储存数字量范围为:(二进制)000000000000~111111111111,转换为十进制数字范围为0~2^12即0~4095。也就是说把参考电压分为2^12份即4096份,最小分辨率为VREF/4096。也就是说
发表于 2019-07-13
模拟量数据的采集过程解析

单片机入门学习八 STM32单片机学习五 时钟系统

单片机学习除了了解该篇 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础 中的基础外,我们还需要有时钟的概念,本篇将记录 stm32的时钟系统。1、STM32时钟介绍 下面这幅图时stm32的时钟系统框图 1)蓝底框表示 时钟源,即: ①HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③LSI是低速内部时钟,RC振荡器,频率为40kHz。(WDG看门狗 使用该时钟源) ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。(RTC
发表于 2019-07-12
单片机入门学习八 STM32单片机学习五 时钟系统

单片机入门学习十三 STM32单片机学习十 通用定时器

本篇重点记录的是STM32F1的通用定时器。 STM32F103ZE有8个定时器,其中2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5),2个基本定时器(TIM6、TIM7)。下表是对这8个定时器的详细描述。定时器种类 位数 计数器模式 产生DMA请求 捕获/比较通道 互补输出 特殊应用场景高级定时器(TIM1,TIM8) 16 向上、向下、向上/下 可以 4 有 带死区控制盒紧急刹车,可应用于PWM电机控制通用定时器(TIM2~TIM5) 16 向上、向下、向上/下 可以 4 无 通用。定时计数,PWM输出,输入捕获,输出比较基本定时器(TIM6,TIM7) 16 向上、向下
发表于 2019-07-12
单片机入门学习十三 STM32单片机学习十 通用定时器

51单片机与蓝牙模块连接

不久前开始学习使用蓝牙模块,在模块与51单片机连接的过程中出现了非常多的问题,我想应该也是很多新手和我一样会遇到这样的问题,因此特地写这篇文章,想分享下在学习过程中遇到的问题以及解决方法。此次学习用到模块是HC-06蓝牙模块,如下图:该模块某宝有售,价格约为20RMB。某宝上的HC-06有两种,分别是带引脚和不带引脚的,建议新手购买带引脚的。我从试验开始到成功,一共使用了四块蓝牙模块。第一次买的是带引脚的,但是模块本身是坏的;第二次买的是不带引脚的,但是由于自身的焊功有限,导致模块损坏,无法使用;第三次是朋友送的蓝牙4.0,由于某些原因无法使用,在此也特别感谢朋友送我蓝牙;第四次购买,就是上图所示的蓝牙,才最终完成了试验。总结
发表于 2019-07-11
51单片机与蓝牙模块连接

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved