基于单片机设计的超声波测距系统的特点

2018-04-05来源: eefocus关键字:单片机  超声波测距系统

    超声波由于其指向性强、能量消耗缓慢、传播距离较远等优点,而经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场。例如:液位、井深、管道长度等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测控系统的研制上也得到了广泛的应用。本文介绍一种以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。

 

    1 超声波测距原理

    1.1 超声波发生器

    超声波是一种频率超过20kHz的机械波。为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波。一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。

    它们所产生的超声波的频率、功率和声波特性各不相同。

    因而用途也各不相同。目前较为常用的是压电式超声波发生器。

    1.2 压电式超声波发生器原理

    压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图1所示。它有两个压电晶片和一个共振板。发射超声波时,压电传感器中的压电晶片受发射电脉冲激励后产生共振,并带动共振板振动,便产生超声波。接收超声波时,两电极间未外加电,共振波接收到超声波,将压迫压电晶片作振动将机械能转换为电信号。

 234

      1.3 超声波测距原理

      超声测距从原理上可分为共振式、脉冲反射式两种。由于共振法的应用要求复杂。在这里使用脉冲反射式。

      超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时。超声波在空气中传播。途中碰到障碍物就立即返回来。超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为C,而根据计时器记录的测出发射和接收回波的时间差t。就可以计算出发射点距障碍物的距离s.即:S:Ct/2。这就是所谓的时间差测距法。由于超声波也是一种声波。其声速c与温度有关。表1列出了几种不同温度下的声速。在使用时,如果温度变化不大。则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。

      声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距系统的机理。

      2 系统硬件电路设计

      ATMEL公司的AT89C51单片机,是一种低功耗、高性能的、片内含有4KB FLASH ROM 的8位CMOS单片机,工作电压范围为2.7~6V(实际使用十5V供电)。

      位数据总线。它有一个可编程的全双工串行通信接El,能同时进行串行发送和接收0通过RXD引脚(串行数据接收端)和TXD引脚(串行数据发送端)与外界进行通信。本超声波测距系统以的AT89C51为中央处理器,其系统原理框图如图2所示。

 456

      系统上电工作后,由脉冲发生器发出以脉冲信号,该脉冲信号一方面通过驱动的电路推动脉冲发生器发出超声波脉冲,另一方面,触发AT89C51内部定时器T1(由外部中断INT0实现)开始定时;同时由AT89C51控制按时间自动改变放大其增益,即按发射波未到达接收器的传播时问逐渐增大放大器增益。接收到的超身回波经过发大、滤波后,一是直接送给鉴幅器,二是经峰值保持电路提取回波峰值作为阈值的基准信息。AT89C51通过ADC0809采样回波峰值,经过软件加权处理后作为鉴别阈值,再经过DAC0832送给鉴幅器。当回波包络中某个波被鉴别出来时,则立即触发外部中断INT1关闭定时器T1,同时,P1.1设置检测窗口;由TO计数器窗口内鉴别回波个数12,根据n确定下次鉴别给定值的大小,闭环控制至n≤5为止。然后从补偿值表中取出与rl对应的补偿值,对T1的计时时问(实际上这是从发射超身波到接收到第一个鉴别回波之问的计数值,计数周期为lUS,12M品振)进行修正,获得超声波实际的往复传播时问,再通过3字节浮点运算求出距离,由AT89C51串行通信口送LED显示。本系统每隔5s采样一次环境温度,以修正声速,所以在系统还可以加入温度传感器来监测环境温度,把表l所列的数据做到程序中可进行温度补偿。


    3 补偿及测距原理

    不同形状和位置的对象物,其回波波形大致,只是波幅不通。于是,该系统采用了变阈值鉴幅固定补偿法:

    (1)采用微处理器闭环控制自动改变阈值;

    (2)在超声回波中鉴别其包络峰附近少于6个波的第一个波,形成关闭定时器的触发信号,并同时设置检测窗口;

    (3)计数检测窗口内的鉴别回波格式n(鉴别回波=窗口内鉴别回波数+1)个;

    (4)判断n的大小,若n>5,则减小鉴别规定阈值,转到(2)重新检测。 若≤5,则从先验的固定补偿值表中取出与n相对应的补偿值进行修正一其鉴别回波提取及补偿时间表示如图3所示。

 34

      补偿修正公式:

 456

    可见,不同的At对应不同,作为先验数据先通过实际测试、观察得到,建立补偿值表存在存储器中。

    本超声波测距系统的误差主要由系统误差、环境误差、检测误差、定时时间误差、补偿时间误差等组成。该系统采用变闭值固定补偿法后,可以补偿时间误差较小。

    提高了检测信号的S/N比,从而提高了超身波测距的精度和范围。

    4 超声波测距系统的软件设计

    AT89C51单片机和其开发应用系统具有语言简洁、可移植性好、表达能力强、表达方式灵活、可进行结构化设计、可以直接控制计算机硬件、生成代码质量高、使用方便等诸多优点。超声波测距仪就是用A F89C51单片机开发设计的。它采用模块化设计,由主程序、定时干程序、显示子程序等模块组成。在此给出主程序框框图。如图4所示。 345

      5 结论

    对固定材料、结构的超声波传感器,其检测波特性不变,即再发射传感在同一激励电压源作用下发射超身波,其反射波的波形变化规律,不会因为对象物类型,距离的改变而变化,只是波幅不同而已。故该系统采用了变阈值鉴幅固定补偿法,减小了误差,从而提高了测距精度。该系统发射脉冲电压为20V,对平面物体做了多次测量发现,测距范围为10m,测距精度为0.2%。可见基于单片机设计的超声波测距系统具有硬件结构简单、工作可靠、测量误差小等特点。

    因此,它不仅可用于移动机器人,还可用在其它检测系统中。

关键字:单片机  超声波测距系统

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

上一篇:基于单片机与WTC6216相结合带背光的人体触摸式按键电路设计
下一篇:基于RTX51实时操作系统的用户专用键盘软件设计

关注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