Arduino 超声波距离传感器

17 Mar 2025 | 4 分钟阅读

超声波传感器或HC-SRO4用于使用声呐测量物体的距离。

它以40KHZ 或 40000 Hz的频率发射超声波。该频率穿过空气并撞击路径上的物体。光线从物体上弹回并返回到模块。

HC-SRO4 的四个端子是 VCC、TRIG、ECHO 和 GND。电压电源或VCC为+5V。 我们可以将 ECHO 和 TRIG 端子连接到特定 Arduino 板上的任何数字 I/O 引脚。

超声波传感器在中等距离范围内工作效果最佳。

分辨率为0.3cm

传感器的中等范围是10cm3m。 它在此持续时间内工作效果最佳。

传感器可能检测到的最大范围是4.5m

超声波传感器如何工作?

让我们了解传感器的工作原理。

  • 它发送超高频采样。
Arduino Ultrasonic distance sensor
  • 当样本撞击物体时,它会从物体上弹回。
Arduino Ultrasonic distance sensor
  • 距离传感器报告发送和接收样本之间所花费的时间。

示例

让我们考虑一个例子。

物体距离超声波传感器 40 厘米。 空气中的声速为 340 米/秒。 我们需要计算时间(以微秒为单位)。

解决方案

v = 340m/s = 0.034cm/us (centimeter/microseconds)
time = distance/speed
time = 40/0.034
time = 1176 microseconds

来自 ECHO 引脚的声音速度将加倍,因为波向前和向后传播(弹跳)。

因此,要计算距离,我们需要将其除以 2。如下所示

distance = time x speed of sound/2
distance = time x 0.034/2

超声波传感器结构

HC-SRO4 的结构如下所示

Arduino Ultrasonic distance sensor

超声波传感器时序图

我们将 TRIG 引脚设置为 HIGH 一段时间(大约 3 到 100 微秒)。 一旦 TRIG 引脚为 LOW,超声波传感器就会发送脉冲并将 ECHO 引脚设置为 HIGH。 当传感器获得反射脉冲时,它会将 ECHO 引脚设置为 LOW。 我们需要测量 ECHO 引脚为 HIGH 的时间。

超声波传感器 HC-SRO4 的时序图如下所示

Arduino Ultrasonic distance sensor

让我们开始创建 Arduino 超声波传感器来测量距离。

所需硬件

创建该项目所需的组件如下

  • Arduino UNO R3 板(我们也可以使用任何 Arduino 板)
  • 跳线
  • 超声波传感器 HC-SRO4
  • 面包板

原则

我们需要首先将 TRIG (触发) 引脚设置为 HIGH。 它将发出 8 个周期的突发,称为声波突发,它将以声速传播。 它将被 ECHO 引脚进一步接收。 声波传播的时间被认为是 ECHO 引脚的输出时间,单位为微秒。

Arduino Ultrasonic distance sensor

我们将使用 PulseIn() 函数从 ECHO 引脚的输出读取时间。 它将等待指定的引脚变为 HIGH 和 LOW。 该函数将在最后返回时间。

TRIG 引脚设置为 LOW 4 微秒,然后设置为 HIGH 15 微秒。

时间将以微秒为单位计算。

过程

将超声波传感器连接到电路板的步骤如下所示

  • 将 HC-SRO4 的 VCC 引脚连接到 Arduino 板的 5V。
  • 将 HC-SRO4 的 GND 引脚连接到 Arduino 板的 GND。
  • 将 HC-SRO4 的 TRIG 引脚连接到 Arduino 板的引脚 6。
  • 将 HC-SRO4 的 ECHO 引脚连接到 Arduino 板的引脚 5。

Sketch

请看下面的代码

将代码上传到项目的步骤

步骤如下

  • 打开 Arduino IDE。
  • 从“工具” ->“开发板” ->“Arduino UNO”中选择电路板的类型。
  • 从“工具” ->“端口” ->“COM..”中选择端口。
  • 将草图上传到连接图。

连接图

连接图如下所示

Arduino Ultrasonic distance sensor

输出

串行监视器上的输出将显示为

Arduino Ultrasonic distance sensor
下一个主题超声波测距仪