基于单片机的超声波测距报警系统设计

2016-09-20来源: ofweek关键字:单片机  超声波  测距报警系统
  引言

 

  科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。我们人类耳朵能听到的声波频率为20~20000Hz。当声波的振动频率大于20KHz或小于20Hz时,我们便听不见了。因此,我们把频率高于20000赫兹的声波称为“超声波”。

 

  1.超声波测距原理

 

  超声波是指频率高于20KHz 的机械波。为了以超声波作为检测手段,必须产生超声波和接收超声波,完成这种功能的装置称为超声波传感器。超声波传感器有发送器和接收器,有的也可具有发送和接收声波的双重作用。根据超声波的产生方式,超声波传感器可分为两大类:一类是电气式,如压电式、磁致伸缩式和电动式等;一类是机械式,如加尔统笛、液哨等。目前常用的是压电式超声波传感器。它利用压电效应的原理将电能和超声波相互转化,即发射超声波时,将电能转换为超声波发射出去;在收到回波时,将超声振动转换成电信号。

  超声波测距的原理一般采用时间差法,即测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离,即:

  

  式中,D—传感器与障碍物之间的距离;c—声波在介质中的传输速度。

  由于超声波易于定向发射、方向性好、强度易控制、与被测物体不需直接接触,故超声波传感器广泛地应用于液体高度测量、汽车倒车等方面。为了提高测量精度,减小误差,根据公式(1)可知,测距误差由传播速度误差和传播时间误差引起。

  当传播速度准确时,传播时间差值精度只要达到微秒级,就可保证测距误差小于1mm。设计中,可采用12MHz 晶体作时钟的基准,单片机定时器的计数精度可达1us,从而保证测量精度。

  传播速度受空气密度的影响,空气密度越高,传播速度越快,而空气密度与温度有密切关系。在理想气体中声波的传播速度c 为:

  

  式中,γ—气体定压比热容与定容比热容之比;R—气体常数;M—气体分子量;T—绝对温度。

  若温度变化不大,则可认为声速基本不变,其值为340m/s。若测距精度要求较高,为减小温度变化对声速产生的影响,在设计中,应增加温度传感器来监测环境温度,进行实时温度补偿,近似公式为:

  

  式中,c0—零度时的声波速度332m/s; T—实际温度(℃)。

 

  2.测距报警系统设计

 

  2.1 硬件设计

  电路原理图如图1 所示。采用PIC16F73 单片机作为主控制器,实现对CX20106 红外接收芯片(红外常用的载波频率38KHz 与测距超声波频率40KHz 较为接近) 和TCT40 系列超声波转换模块的控制。单片机通过端口RB1 控制超声波的发送,然后单片机不停地检测中断端口RB0/INT,当端口RB0/INT 的电平由高电平变为低电平时,系统认为超声波已返回。计数器所计数据即为超声波所经历的时间,通过换算可得到传感器与障碍物之间的距离。超声信号的驱动由单片机定时器完成,LED 数字显示采用动静态驱动相结合的方法实现,报警模块采用简单的声光报警电路。

 

  

  图1 测距报警系统电路原理图

 

  系统利用单片机的定时器功能产生40KHz 脉冲信号, 并通过端口RB1 输出到超声波发射部分。超声波发射电路中, 六反相缓冲器CD4049 包括6个非门,现仅使用3 个,为防止干扰或被静电击穿导致整个CD4049 损坏,把未使用的3 个非门串起来做接地处理。当控制端输出一系列固定频率脉冲时,在超声波发射器TCT40-1F 上就以固定的频率加正电压和反电压,从而发出大功率的超声波。这种以软件方式产生的波形较用其他方式产生的效果更理想。

  接收器采用与发射器相配对的TCT40-2S, 将超声波调制脉冲转换为40KHz 毫伏级电压信号, 此信号需经过放大处理才能触发单片机中断。芯片CX20106 内置前置放大器、限幅放大器、带通滤波器、检波器、积分器、整型电路等。其中前置放大器具有自动增益控制功能,可保证在超声波传感器接收较远反射信号而输出微弱电压时,放大器有较高的增益,而在近距离输入信号强时,放大器不会过载。调节芯片引脚5 的外接电阻R3 的值,可设置滤波器的中心频率。当RB3=200K时,中心频率为42KHz;当RB3=220K 时,中心频率为38KHz。当接收到与滤波器中心频率相符的信号时,引脚7 输出一个低电平,从而触发中断。适当改变引脚2 的外接电容C4 的值,可改变接收电路的灵敏度和抗干扰能力。
 

  3位LED数码显示采用显示器动静态驱动相结合的方法实现。采用单片机串行口通过74HC164 串入并出移位寄存器来输出LED 的段驱动信号,每个LED 的段信号都连在一起,并与74HC164 输出的段驱动信号连接。每个LED 的位驱动信号由单片机的端口RB5~RB7 通过ULN2004 驱动集成块分别驱动,LED 需用共阴数码管。

  报警模块的功能是, 当传感器与障碍物的距离不小于设定值时,绿色指示灯闪亮;反之,红色指示灯闪亮,蜂鸣器发声,提示人员注意安全距离。

  2.2 软件设计

  软件分为两部分:主程序和中断服务程序,流程图如图2 所示。主程序完成初始化工作及超声波发射和接收控制。中断服务程序包括定时中断服务子程序和外部中断服务子程序,分别完成超声波的发射、距离计算及显示报警等工作。

 

  

  图2 测距报警系统程序流程图

 

  3.测试结果

 

  当距离大于2m 时,绿灯闪亮,显示距离;当距离小于1m 时,红灯闪亮,由端口RB2 驱动蜂鸣器报警,显示距离;当距离介于2m 和1m之间时,红灯闪亮,显示距离。为提高抗干扰能力,系统连续发射超声波,测量三次,从中剔除最大最小值,取中间值计算出距离。

 

  4.结语

 

  此系统较好地实现了测距及报警功能,可用于汽车倒车、液位监控等场合,而且测量简单、经济、可靠。

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

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

上一篇:PIC单片机中重要指令介绍
下一篇:PIC16f1937 IO口配置

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