利用HY-SRF05 超声波模块实现超声波的测距避障

  • Post author:
  • Post category:其他

1、功能定义

1.1 超声波测距原理

利用单片机编程产生频率为40KHz的方波,经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波。超声波经目标体(障碍物)反射回来,由传感器接收端接收,再经过接收电路放大、整形。当收到超声波的反射波时,接收电路输出端产生一个跳变。通过定时器计数,计算时间差,就可以计算出相应的距离。

计算公式如下:

l

=

t

/

2

C

l = t/2*C

l=t/2C
其中,

C

C

C 为超声波在空气中的传播速度,室温下约为

340

m

/

s

340 m/s

340m/s

t

t

t 为从发射到接收超声波所经历的时间,

l

l

l 为传感器到目标体(障碍物)之间的距离。

1.2 距离检测及信息反馈

初级功能
————设置不同的检测距离值,反馈不同的LED颜色,串口显示数值

中级功能

————将距离值实时反馈至LCD屏幕上

2、硬件结构

2.1 STM32F10X主控板

引脚接线

2.2 HY-SRF05 超声波模块

在这里插入图片描述

2.3 工作原理

该模块一共有5个引脚,分别是VCC、GND、Trig、Echo、Out。

  • 其中VCC和GND用于供电,手册上说VCC需要接5V,但是很多人都是接的3.3V也可以照常使用。

  • Trig:触发控制,信号输入。通过这个引脚输入触发信号,输入10us的高电平触发模块,模块自动发送8个40KHz的方波进行一次测距。

  • Echo:信号输出,回响信号接收。该引脚可以在接收到回响信号后输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。

  • OUT:该引脚在手册中提到为开关量输出,可以做报警模块使用,应该是一个模块状态口,通过判断OUT的高低电平来判断模块是否上电,基本不用。

2.4 超声波模块的工作时序图

在这里插入图片描述

2.5 实现思路

通过上面的分析,STM32主控板提供2个IO口分别用于信号的输出(PB8)和输入(PB9),VCC和GND用于供电。

  • PB8输出10us的高电平
  • PB9设置为上拉输入,当接收到高电平时,计时器开始计数,当PB9接收到低电平时,计时器停止计数
  • 计算发射和接收超声波期间的时间,利用公式得到测距值
  • 与设定值比较,点亮LED
  • 向LCD屏幕输出测距值

3、软件代码

3.1 编程思路

(1)配置GPIO以及定时器;

(2)给TRIG端口发送大于10us的高电平,当收到ECHO回响信号时,打开定时器开始定时;

(3)当回响信号消失,关闭定时器;

(4)通过定时器定时时间来确定距离

(5)测量周期60ms以上

3.2 代码

4、测试结果


版权声明:本文为weixin_31914685原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。