基于单片机的高精度超声波测距电路内容摘要:

1、电子世界 2005 年 5 期27 单片机与可编程器件本文阐述了超声波测距原理, 介绍了如何用单片机实现高精度超声波测距的具体电路, 分析了其各单元工作原理, 并给出了其程序流程图和源程序。 超声波测距原理为了研究和利用超声波, 人们已经设计和制成了许多超声波发生器。 总体上讲, 超声波发生器可以分为两大类 : 一类是用电气方式产生超声波, 一类是用机械方式产生超声波。 电气方式包括压电型、 磁致伸缩型和电动型等 ; 机械方式有加尔统笛、 液哨和气流旋笛等。 它们所产生的超声波的频率、 功率和声波特性各不相同, 因而用途也各不相同。 目前较为常用的是压电式超声波发生器。 压电式超声波发生器实际上 2、是利用压电晶体的谐振来工作的。 超声波发生器内部结构如 图 1 所示, 它有两个压电晶片和一个共振板。 当它的两极外加脉冲信号, 其频率等于压电晶片的固有振荡频率时, 压电晶片将会发生共振,并带动共振板振动, 便产生超声波。 反之, 如果两电极间未外加电压, 当共振板接收到超声波时, 将压迫压电晶片作振动, 将机械能转换为电信号, 这时它就成为超声波接收器了。 在超声探测电路中, 在发射端得到输出脉冲为一系列方波, 这一系列方波的宽度为发射超声与接收超声的时间间隔,显然被测物距离越大, 脉冲宽度越大, 输出脉冲的个数与被测距离成正比。 超声测距大致有以下方法 :(1) 取输出脉冲的平均值电压, 3、该电压 ( 电压的幅值基本固定 ) 与距离成正比, 测量电压即可测得距离 ;(2) 测量输出脉冲的宽度, 即发射超声波与接收超声波的时间间隔 t。 因此, 被测距离为 S=1/2本测量电路采用第二种方案。 由于超声波也是一种声波, 其声速 C 与温度有关, 附 表 列出了几种不同温度下的声速。 在使用时, 如果温度变化不大, 则可认为声速是基本不变的。 如果测距精度要求很高, 则应通过温度补偿的方法加以校正。 本方案以单片机 89核心, 通过对其进行软件编程, 实现该单片机对其外围电路的适时控制, 并提供给外围电路各种所需的信号, 包括频率振荡信号、 数据处理信号和译码显示信号等等, 大大简化了 4、外围电路的设计难度, 同时更重要的是该种设计方案大大节省了设计成本, 并且由于是采用软件编程技术, 所以其移植性能好, 在设计电路时可以将其他更多的功能设计进去, 而我们在设计电路板时就可以根据自己的设计目的焊接元件。 该方案的整个硬件电路可用 图 2 所示的方框图表示, 图 3 为基于单片机的超声波测距电路原理图。 超声波发射电路1. 频率产生电路本电路中共用到了两个重要的频率, 为了实现输出频率的精确性, 在设计时用到了单片机, 因为这一部分 (频率产生电路) 是整个电路的核心, 由单片机产生的频率必须准确, 否则测得的距离显示会产生很大误差, 笔者在考虑总体方案时, 也想到用一块单片集成电 5、路 (比如说 成芯片 来完成频率信号的产生以及分频工作, 也完全可以实现电路的功能, 但是要想实现高精度要求, 难免有些困难, 最后还是选择了用单片机来完成频率的产生工作。 关于上述的这三个频率是如何由单片机产生的, 请详见本文的 “具体工作原理分析” 部分。 2. 门控电路 ( 发器)为了在本超声波测距电路中实现对超声波发射和接收的自动控制, 必须在电路中加入门控电路。 下面结合 图 3 讲述一下该门控电路的作用。 由 S=1/2 式中, v 为声波在空气中的传播速度, 它和空气的温度有关, 温度每升高 1 s , 如果 t 已知, 距离便可确定, 如何测量时间 t 呢。 把输出脉冲作为一闸门信 6、号, 让已知频率 脉冲恰好能通过闸门, 那基于单片机的高精度超声波测距电路 牛余朋 图 1 图 2电子世界 2005 年 5 期28 单片机与可编程器件么 : t= 式中, 已知脉冲的周期 ; N 为脉冲周期的个数或脉冲的个数。 闸门信号与已知脉冲信号的关系如 图 4 所示。 在本电路设计中门控电路由 发器来完成, 而 发器是用 D 触发器 的一个 D 触发器来完成。 当 R=1(S=0)时复位, 即 Q=0 ; S=1(R=0) 时置位, 即 Q=1, 在原理分析中, 就利用它的这一特性。 当上电复位时, D 触发器 Q 脚输出低电平加到单片机的 , 不启动内部计数器, 处于等待状态。 3. 发 7、射驱动电路关于超声波发射器的驱动电路部分, 由于单片机的 最多只有 20拉电流, 而从资料得知, 超声波发射器需要的最小驱动电流比它要高, 所以在与非门 后级加入了一级三极管放大电路, 由于工作频率比较高, 所以这里选择了常用的高频管 9018 , 这样便很好地完成了超声波的发射。 集成运算放大器 一般来说如果将其用在闭环控制电路中应该是接成双电源形式, 也就是 7 脚接正电源, 4 脚接负电源其内部为浮地, 注意这时最好不要在闭环控制系统中接成单电源形式, 因为这样的话, 输出端便会有一个固定的直流偏置, 而这样在有些电路中是不允许的, 比如说本设计的电路就不能接成单电源形式的。 如果运放是用 8、在开环控制系统中的, 那么完全可以接成单电源形式的, 但是在有些特殊情况还是有它的特殊接法。 超声波接收电路1. 超声波接收、 放大电路由资料知道, 运放 741 的带宽以及抗干扰能力都比较强, 但是为了防止产生一定的噪音, 所以在设计超声波信号放大电路时, 将放大电路设计成了两级同相交流放大器, 通过参数设置,每一级放大接近 20 倍, 这样经过两级放大后, 接收到的超声波信号就被放大了几乎是 400 倍, 完全能够被后续检测电路检测到。 超声波接收电路由运算放大器 组成, 具体放大电路见图 3。 接收传感器 反射的超声波转换为电信号后, 由放大器放大后再送到由 组成的斯密特整形电路整理成规范的 9、方脉冲。 电阻 电位器 同相端提供直流偏置电位。 需要注意的是这两个直流偏置电阻的作用是相当重要的,它可以很好地稳定运放 直流工作点, 不致于使其同相输入端出现浮动状态, 而造成输入信号不稳定。 2. 信号筛选电路本信号筛选电路在整个电路中可以说起到非常重要的作用, 通过对它的适当调整, 可以有效地滤除由于外界干扰带来的非超声波信号进入超声波接收系统, 从而大大提高了本电路的抗干扰性。 具体原理解释如下 : 本信号筛选电路由一片集成运放 741图 3图 4电子世界 2005 年 5 期29 单片机与可编程器件来完成, 首先通过一个固定电阻 一个可变电阻 W 在分压后将其输入到 741 的负输入端, 10、 以给 741 一个参考电压, 一般情况下我们是将这两个电阻调整到基本一样大即可。 这样当有外部微弱信号进入单片机内部处理之前都必须先经过这个信号筛选电路, 从而有效地滤除了干扰信号。 3. 信号整形电路当接收到的信号从信号筛选电路中出来之后是一个很不规则的方波信号, 我们希望最好得到一脉冲信号, 为此, 又在其后级电路中加入了一级由 电阻 成的信号整形电路, 经过此部分电路处理过后再送进单片机中进行处理运算,具体原理不再阐述。 4. 距离显示电路由于本超声波测距系统精度要求是 1 故本人在进行距离显示电路部分的设计时用到了三个数码管, 其可以显示范围为 为了节省硬件开销, 本距离显示电路没有使用 11、译码器, 而是直接有效地利用了单片机的有限端口来进行译码显示, 但是最后由于仍然缺少一个端口, 故用到了一个二 45. 具体工作原理分析下面我们首先来看一下, 在本设计中用到的两个比较关键的频率是如何计算出来的。 第一个频率, 超声波的发射中心频率信号本来就是 40 并由单片机的 输出。 这是由单片机内部的定时器由软件编程所产生, 具体程序读者可以参考本刊网站 ( 上的源程序, 所以这个频率我们就不再进行计算了 ; 第二个频率就是单片机进行数码显示的计数频率, 在计算之前首先要明确我们要设计的超声波测距精度是多少, 而在本设计中, 设计精度为 1 也就是 超声波发射器的声波传播到反射物, 再由 12、反射物反射到接收器, 所传播的距离为 2 倍测量距离, 而大家知道, 声波在标准气压下15 的传播速度为 341m/s , 因此, 我们要设计成在一个时钟周期内超声波所传播的距离为 这样便 可以计算出定时器的溢出频率是 341/ 10 3 , 也就是 1 这样在一个时钟周期内所测的距离便为 N 个周期所测的距离为 N N 个周期有 N 个方脉冲, 也就是说, 计数器测得的脉冲数 N 即为被测距离, 不过其单位为 因此应把计数显示器的小数点点在百位数和个位数之间, 那么示值是以 “米” 为单位, 其最大显示值为 软件程序设计在本程序的设计工程中主要是有效地利用了该单片机内部的两个定时 / 计数器 13、 单片机 部有两个 16位的定时 / 计数器, 分别是 它们各自分别有四种工作方式, 在本文的设计中采用的工作方式都是方式 1 ,即 16 位的非自动装载方式, 因为这 种方式计数范围大, 不必频繁地产生计数中断, 便可以完成文中所述功能, 更重要的是这样还可以大大减少计时误差。 本系统采用模块化设计, 由主程序、 发射子程序、 接收子程序、 定时子程序、 显示子程序等模块组成, 图 5 为程序流程图。 该系统的主程序处于键控循环工作方式, 当按下测量键时, 主程序开始调用发射子程序、 查询接收子程序、 定时子程序, 并把测量结果用显示子程序在数码显示器上显示出来。 在 统中, 时钟电路是处理数字 14、信息的基础 , 同时它也是产生电磁辐射的主要来源, 其性能好坏直接影响到系统是否正常运行, 所以时钟电路在数字系统设计中占有至关重要的地位。 下面主要以 司的产品为例介绍 统中时钟电路的设计。 1 时钟电路的种类统中的时钟电路主要有三种 : 晶体电路、 晶振电路、 可编程时钟芯片电路。 ( 1 ) 晶体电路 晶体电路最为简单,如 图 1 所示。 只需晶体和两个电容, 价格便宜, 体积小, 能满足时钟信号电平要求,但驱动能力差, 不可提供多个器件使用,频率范围小 ( 2060, 使用时还须注意配置正确的负载电容, 使输出时钟频率精确、 稳定。 片除 外, 大都内部含有振荡电路, 可使用晶体电路产生所需的时钟信号。 也可不使用片内振荡电路, 直接由外部提供时钟信号。 ( 2 ) 晶振电路 晶振电路如 图 2 所示,其电路简单、 体积小、 频率范围宽 ( 1400、 驱动能力强, 可为多个器件使用。 但由于晶振频率不能改变, 多个独立的时钟需要多个晶振。 另外在使用晶振时, 要注意统中时钟电路的设计 山东大学信息学院 王立华 刘志军 图 5图 1图 2。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。