新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于PIC16F877单片机的超声波测距系统设计

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

作者:时间:2011-09-16来源:网络收藏

  引言

  在自主行走机器人系统中,机器人要实现在未知和不确定环境下行走,必须实时采集环境信息,以实现避障和导航,这必须依靠能实现感知环境信息的传感器系统来实现。视觉、红外、激光、超声波等传感器都在行走机器人中得到广泛应用。由于方法设备简单、价格便宜、体积小、设计简单、易于做到实时控制,并且在测量距离、测量精度等方面能达到工业实用的要求,因此得到了广泛的应用。本文所介绍的机器人采用三方系统,该系统可为机器人识别其运动的前方、左方和右方环境而提供关于运动距离的信息。

  1 原理

  超声波发生器内部由两个压电片和一个共振板组成。当它的两极外加脉冲信号,且其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两极间未加外电压,当共振板接收到超声波时,就成为超声波接收器。超声波测距一般有两种方法:①取输出脉冲的平均电压值,该电压与距离成正比,测量电压即可测量距离;②测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔t,根据被测距离s=vt?2来得到测量距离,由于超声波速度v与温度有关,所以如果温度变化比较大,应通过温度补偿的方法加以校正。

  本测量系统采用第二种方法,由于测量精度要求不是特别高,所以可以认为温度基本不变。

  本系统以单片机为核心,通过软件编程实现其对外围电路的实时控制,并提供给外围电路所需的信号,包括频率振动信号、数据处理信号等,从而简化了外围电路,且移植性好。系统硬件电路方框图见图1。

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

  由于本系统只需要清楚机器人前方、左方、右方是否有障碍物,并不需要知道障碍物与机器人的具体距离,因此不需要显示电路,只需要设定一距离阀值,使障碍物与机器人的距离达到某一值时,单片机控制机器人电机停转,这可通过软件编程实现。

  2 超声波发射电路

  超声波的中心频率为40kHz,该频率可以通过以下程序产生(部分源程序):

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

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

  2.1 超声波发射电路

  超声波发射电路以为核心,当单片机上电时,单片机从RA0口产生40kHz的超声波信号,但是此时该信号无法通过与非门进入放大电路使超声波发射头发射超声波,只有闭合开关S1时,从RA1口发射出一门控信号,该信号的频率为4kHz,同时启动单片机内部的定时器TMR1,开始计数。该门控信号每发射一个周期的波形,超声波就会发射10个完整的波形,这可由它们的频率得出。超声波的周期为1(40kHz)=01025ms,而门控信号的周期为1(4kHz)=0125ms。最后根据s=vt2求出障碍物与移动机器人的距离。当超声波接收头收到反射回来的超声波时,计数器停止计数,时间t可以根据计数器的计数与门控信号的周期求出。RA2口接RS触发器,RS触发器可以自动控制超声波的发射和停止。本系统的电路还包括人工复位电路,由单片机的MCLR引脚接S2来控制,超声波发射电路图见图2。

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

  2.2 门控电路(RS触发器)

  为实现对超声波发射和接收的自动控制,须在电路中加一门控电路,该门控信号频率为4kHz,如把输出脉冲作为闸门信号,让已知频率fc的脉冲恰好通过闸门,那么t=NTc,其中,Tc为已知脉冲的周期,N为脉冲的个数。

  门控电路由RS触发器组成,当输入端R=1(S=0)时复位,即输出端Q=0;当R=0(S=1)时置位,即Q=1。RS触发器与单片机的RA2口相连。

  2.3 超声波放大电路

  超声波放大电路由三极管等组成,由于单片机RA口最多只有20mA~25mA上拉电流,而超声波发射器最小需要60mA的电流,所以在与非门后加一级放大电路来放大电流,以完成超声波的发射。超声波放大发射电路见图3。

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


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭