当前位置:文档之家› 基于AVR单片机超声波测距在倒车防撞中应用①

基于AVR单片机超声波测距在倒车防撞中应用①

基于AVR单片机的超声波测距在倒车防撞中的应用①
摘要:以avr单片机atmega16作为主控制器,结合超声波发射、接收模块dyp-me007,巧妙地利用avr单片机特有的输入信号捕捉功能,实现3cm~3.5m的非接触式距离感测,并实时显示距离和报警。

分析了dyp-me007模块的超声波测距原理,给出了测距系统的整体设计和硬件组成结构图,并具体阐述了系统软件设计过程并提供了程序框图。

经实际测试证明本系统实现了超声波测距和报警功能。

关键词:avr单片机超声波测距倒车防撞
中图分类号:u463 文献标识码:a 文章编
号:1674-098x(2011)07(b)-0113-01
1 引言
据相关调查统计,15%的汽车撞车事故都是因倒车时汽车的后视
能力不良造成的。

因此,增加汽车的后视能力显得尤为重要。

安全避免障碍物的前提是快速准确地测量障碍物与汽车之间的距离。

为此,本设计基于avr单片机,利用超声波实现了无接触测距的倒车雷达系统。

可以快速准确地测量障碍物与汽车之间的距离,帮助驾驶员扫除视野的死角和视线模糊的缺陷,使驾驶员的倒车操作更加安全有效。

2 系统整体设计
本设计采用以avr单片机atmega16[1][2]为核心,用超声波发射、接收模块dyp-me007进行测距,用4位数码管实时显示所测的距离,配合其他硬件电路和软件设计方法来实现。

atmega16采用cmos技
术和risc构架,具有高速、低功耗等优势,而且具有定时器输入捕
捉模式。

本文充分利用这些优势,配合实现了快速准确测距功能。

本系统的单片机采用4mhz计数时钟。

测距开始时由pd.7(oc2)引脚向dyp-me007模块发出发射超声波测距触发信号,dyp-me007模块内部将检测回波,一旦检测到有回波信号则输出回响信号送到单片机
的pd.6(icp1)引脚。

单片机对接收到的回响信号进行输入捕捉并测算出从超声波信号发射到单片机接受到反射信号所花费的时间t值, 经处理后计算出被测距离s并送数码管显示和报警。

本系统工作过程及实现的功能为:由pc.0引脚控制的测距控制开关按下时启动测距,再按一次则停止测距;正常工作时,由pd.1引脚控制的测距控制开关指示灯会亮,停止工作时,指示灯灭;由pa和pb 端口控制的四位数码管用来显示所测的距离,以cm为单位,若该距
离小于预置的汽车低速安全刹车距离(150cm),由pd.0引脚控制的
蜂鸣器发出报警提示音,同时数码管上显示的数字开始闪烁,以加
强警示作用。

3 超声波测距原理
超声波测距是本系统的关键环节。

本系统的超声波模块
dyp-me007采取收发分离方式,使收发信号不会混叠,提高了系统的
可靠性。

模块中用到的传感器为压电型超声波传感器,包括一个发射传感
器和一个接收传感器。

超声波传感器由压电晶片和共振板构成,当
它的两电极加上脉冲信号时,若其频率等于晶片的固有频率,压电
晶片就会发生共振从而产生超声波。

相反,当共振板收到回波信号时,将压迫压电晶片振动,从而将机械能转化为电能。

为防止发射信号影响回响信号,触发信号周期一般要大于60ms。

pic控制器收到触发信号后会产生8个周期的电压为5v,频率为
40khz的脉冲信号,经电压驱动器st232cd驱动超声波发射传感器发射超声波。

同时输出的回响信号被升至高电平作为pic内部计时的开始,同时关闭st232cd。

超声波遇障碍物返回,回波信号由超声波接收传感器转化为40khz电信号。

经两级lmc6032集成放大器放大后送入lp311比较器进行检波,滤掉与超声波发射器直接耦合的信号,然后送入pic控制器,将输出的回响信号降为低电平。

如果没有检测到回波信号,模块将在30ms后自动停止上一个周期检测。

故回响信号的高电平持续时间即为超声波到达障碍物并返回所用的时间t。

4 系统软件设计
系统软件部分分为三层结构:测距控制开关部分、数据缓冲区部分、定时器测距部分。

定时器t2用来产生模块dyp-me007的触发信号,置为fast pwm模式,产生周期为60ms,高电平持续时间为1ms 的脉冲,由pd.7(oc2)引脚输出。

dyp-me007模块内部接到触发信号后将发出8个40khz周期电平并检测回波,由echo端口输出回响信号到单片机的pd.6(icp1)引脚。

定时器t1用来对回响信号的高电平计时,置为下降沿触发输入捕捉模式,预分频器对时钟源64分频,作为定时器t1的计数脉冲信号
源。

输入捕捉模式是avr定时/计数器的一个非常有特点的功能,能够准确记录输入信号电平的变化。

pd.6(icp1)引脚接收的回响信号上升沿(对应超声波信号发射起始时刻)到来时,定时器t1将计数器tcnt1中的值清零并开始计数。

当回响信号下降沿(对应超声波反射信号结束时刻)到来时,定时器t1进行输入捕捉,自动将tcnt1中的计数值写入输入捕捉寄存器icr1。

输入捕捉寄存器icr1中的计数值与回响信号的高电平持续时间t 的关系为t=icr1/(4mhz/64),被测的距离为s=v×t/2=170×
t(m)=170×t×1000(cm),式中v=340m/s为声速。

将测得的距离s送入数据缓冲区。

当测距控制开关按下时,数码管即从数据缓冲区读取数据并显示。

若s<150(cm),则数码管闪烁且蜂鸣器发出声音报警提示。

当测距控制开关再次按下时,将数码管共阴极置高,停止显示;将蜂鸣器输入端置低,停止报警。

5 结语
该设计充分利用了avr单片机atmega16高速、低功耗、输入捕捉等优势,配合超声波模块dyp-me007实现了3cm~3.5m范围内的快速准确测距功能,并将测量结果通过数码管显示。

当障碍物小于安全距离1.5m时,蜂鸣器将发出报警提示,同时数码管的数字闪烁,及时提醒司机停止倒车,从而起到倒车防撞的作用。

经实际测试表明,该系统结构简单,灵敏度高,工作稳定可靠。

参考文献
[1] 周俊杰.嵌入式c编程与atmel avr[m].北京:清华大学出
版社,2003.
[2] 马潮.avr单片机嵌入式系统原理与应用实践[m].北京:北京航空航天大学出版社,2007,10.。

相关主题