第十二章 超声波-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2390|回复: 0

第十二章 超声波

[复制链接]
发表于 2022-2-9 16:05 | 显示全部楼层 |阅读模式

[md]## 超声波传感器

超声波是频率高于20000Hz的声波,它指向性强,能量消耗缓慢,在介质中传播的距离较远,因而经常用于测量距离。超声波传感器是将超声波信号转换成其他能量信号(通常是电信号)的传感器。

这里我们使用的是一款常见的超声波传感器:SR04超声波传感器。

SR04(如图)是利用超声波特性检测距离的传感器。其带有两个超声波探头,分别用作发射和接收超声波。其测量范围在3cm-450cm。
01.jpg
工作原理:如图所示,超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s,即:s=340m/s×t/2 。这就是所谓的时间差测距法。
02.jpg
(超声波发射接收示意图)

SR04超声波模块有4个引脚,它们的功能如下:

+ Vcc:电源5V

+ Trig:触发引脚

+ Echo:回馈引脚

+ Gnd:地

## 超声波传感器测距原理

1、使用arduinoUNO的数字引脚给SR04的Trig引脚至少10μs的高电平信号,触发SR04模块测距功能;
03.jpg
(arduino发送触发信号)

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

3、如有信号返回,Echo引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。此时,我们能使用arduino的程序函数来获取到测距的结果,并计算出距被测物的实际距离。
05.jpg
(超声波返回测距结果)

+ **硬件连接**

超声波传感器 —— 4P座子(D13 D12 - +)
06.jpg
+ **程序编写**

在Mixly的传感器程序模块中,自带有超声波测距的程序含税,我们可以直接拖入编程界面使用,并修改IO端口 触发Trig脚定义为D13,接收Echo脚定义为D12。为了简单测试超声波传感器,我们添加一个串口,用来打印超声波测得的数据。然后1秒刷新下检测数据。
07.jpg
打开串口我们就可以观察到检测的距离值。也可以打开绘图模式,对数据进行一个直观的观察。
08.jpg
## 电子测距仪

在上述示例中,我们还可以添加一个液晶显示器,用来显示超声波测得的数据。这样就可以制成一个可以电子测距仪。

+ **硬件连接**

超声波传感器 —— 4P座子(D13 D12 - +)  LCD——4P座子(I2C)
09.jpg

+ **程序编写**
10.jpg
首先在初始化中将液晶显示程序进行初始化,然后声明一个变量用于存储超声波测得的数据,注意这个变量类型是小数。主程序中,在显示之前将屏幕先清屏一次。执行超声波检测数据,并把它存在变量“dis”中。为了方便显示,我们将数据四舍五入取出整数。

液晶在第一行显示一个字符串“distance:”第二行显示数字。而我们在液晶上显示一个多位数的数字时,不能像串口那样直接打印出来。我们需要将数据的每一位数进行转化,然后单独显示才能保证显示不出现乱码。假如我们测得的数据是一个4位数number,那么千位就是number/1000 ,百位数(number/100)%10,十位数就(number/10)%10,个位数就是number%10 。number%10就是number除以10的余数,1234除以10的余数是4。

在显示结尾时加上单位“cm”厘米。随后延时一小段时间刷新液晶屏。
下载程序后,我们观察液晶中显示检查到的距离数据,是否正常。

## 发散思维大课堂

上边学习了超声波传感器的使用,那么超声波测距还可以被用在哪些地方呢?下面我们举出几个示例

1、利用超声波测得的数据来控制不同的音符的播放

2、将超声波传感器安装在门口,用来检测人的进出

3、利用超声波测距的特点,制作避障小车[/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:50 , Processed in 0.079092 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表