项目五 超声波模块项目

项目五 超声波模块项目#

项目介绍:

image113

HC-SR04 超声波传感器利用声呐原理来测量物体的距离,就像蝙蝠那样。它具有出色的非接触式距离检测功能,精度高且读数稳定,使用方便。它配备有超声波发射器和接收器模块。

HC-SR04 或超声波传感器在众多电子项目中被广泛使用,用于创建障碍物检测和距离测量应用以及其他各种应用。在这里,我们带来了使用 Arduino 和超声波传感器测量距离的简单方法,以及如何将超声波传感器与 Arduino 配合使用。

超声波参数:

image114

工作电压:+5 伏

直流静态电流:<2 毫安

工作电流:15 毫安

有效角度:< 15°

测距范围:2 厘米 - 400 厘米

分辨率:0.3 厘米

测量角度:30 度

触发输入脉冲宽度:10 微秒

项目组件:

UNO R3 开发板*1

L298P 电机驱动扩展板 V1*1

LED白发红模块*1

HC-SR04超声波传感器*1

image115

image116

image117

image118

HX-2.54 4P 双头 连接线*1

3Pin 双母头杜邦线*1

USB线*1

18650双节电池盒 (18650电池2 (电池自配)) 1

image119

image120

image121

image122

超声波模块知识:

原理:看超声波的图可知,像是有两个眼睛,其一边是发射超声的,一边是接收超声波的,然后检测从发射遇到障碍物返回被接收到所需的时间t,再根据声音在空气中的传播速度大概是343m/s,

距离 = 速度 * 时间 ,

由于超声波发射返回是两段路程了,所以需要除以2,故超声波测到的 距离=(速度 * 时间)/2

超声波模块的使用方法及时序图:

1、使用GPIO引脚给SR04的Trig引脚至少10μs的高电平信号,触发SR04模块测距功能;

2、触发后,模块会自动发送8个40KHz的超声波脉冲,并自动检测是否有信号返回。这步会由模块内部自动完成。

3、如有信号返回,Echo引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。

image123

超声波模块的电路图

image124

接线图:

⚠️特别注意:坦克智能车已经组装好了,这里不需要把传感器模块和其他的都拆下来又重新组装和接线,这里再次提供接线图,是为了方便您编写代码。但是,LED灯是需要另外连接上去的!

接线注意:超声波传感器模块的VCC引脚连接至传感器扩展板的5v(V),Trig引脚至数字12(S),Echo引脚至数字13(S),Gnd引脚至Gnd(G)。

image125

项目代码:

认识代码块

① 这个代码块,表示当启动ESP32这块开发板时,将运行代码。

image126

② 设置串口。

image127

设置串口波特率,一般波特率设置为9600115200

image128

串口输出数据,从串行端口输出数据,分换行与不换行和HEX三种方式。

image129

③ 向指定引脚设置 “输入” 或 “输出”,选择 “输入” 代表给该引脚设置输入模式;选择 “输出” 代表给引脚设置输出模式;选择 “输入上拉” 代表给该引脚设置输入模式并且使该引脚变成高电平。

image130

④ 循环语句,顾名思义就是重复做一件事。

image131

⑤ 读取超声波传感器检测到的距离值。

image132

⑥ 将程序的执行暂停一段时间,也就是延时。单位是秒。

image133

⑦ 创建变量。

image134

这是创建“变量”的指令方块,可以声明“全局”或“局部”,还可以设置变量的类型、名称和赋值,item是变量名称。

image135

获取变量item。

image136

设置变量的值

image137

设置变量item模式为每执行一次循环让item加1或每执行一次循环让item减1。

image138

组合代码块

特别提醒:在上传程序代码前,需要把蓝牙模块取下,否则代码会上传失败。需要上传代码成功后,再连接蓝牙模块。

image139

项目结果:

上传好测试代码到开发板,在串口监视器窗口单击 image140 ,设置波特率为9600,我们可以看到超声波模块显示的距离,单位是厘米。用手阻挡超声波模块,我们看到显示距离的数值变小了。

image141

项目拓展:

我们刚刚测出了超声波显示的距离,那我们动动脑筋,能不能用测出的距离来做一些控制呢,如果控制一个LED灯的亮和灭。我们来试一下,在D9脚接上一个LED灯模块。

image142

实验代码:

特别提醒:在上传程序代码前,需要把蓝牙模块取下,否则代码会上传失败。需要上传代码成功后,再连接蓝牙模块。

image143

上传好测试代码到开发板,我们用手去靠近超声波传感器,看LED灯亮起来了没有。

代码说明:

image144

将超声波传感器检测到的距离值赋给于变量 distance。

image145

如果超声波传感器检测到的距离值(2≤distance≤10)的范围内,LED点亮;否则,LED不亮。