ESP32-S3 控制 超声波测距

ESP32-S3 控制 HC-SR04 超声波测距实验

超声波测距模块 HC-SR04 广泛应用于机器人避障、智能门禁以及液位检测等场景。

本文介绍如何用 ESP32-S3 读取 HC-SR04 测距数据,并通过串口输出测量结果。


一、实验名称

超声波测距实验


二、接线说明

HC-SR04模块 ESP32-S3开发板
VCC 5V
GND GND
Trig 4
Echo 5

注意事项

  1. HC-SR04 需要 5V 电源供电,ESP32 IO 仅输出 3.3V,因此 Trig 端可以直接接 ESP32,Echo 输出如果过高电压,可加分压电阻保护。
  2. 安装超声波库:HCSR04-master.zip,方法:项目 → 导入库 → 添加 .ZIP 库

三、实验现象

程序下载成功后,打开串口监视器,间隔 500ms 输出 HC-SR04 测量的距离,单位为厘米(CM)。移动测距物体时,距离值会实时变化。


四、完整代码示例

#include "public.h"
#include <afstandssensor.h> // HC-SR04 库

// 定义引脚
#define trig_pin    4
#define echo_pin    5

// 初始化超声波传感器对象
AfstandsSensor afstandssensor(trig_pin, echo_pin);

void setup() {
  Serial.begin(115200);  // 初始化串口
}

void loop() {
  // 获取测量距离并打印
  Serial.printf("测量距离:%.2fCM\r\n", afstandssensor.afstandCM());
  delay(500); // 每 500ms 测量一次
}

五、代码讲解

  1. 引脚定义
#define trig_pin 4
#define echo_pin 5
  • Trig:触发超声波信号输出的引脚。
  • Echo:接收返回信号的引脚。
  1. 创建对象
AfstandsSensor afstandssensor(trig_pin, echo_pin);

使用库封装,直接传入 Trig 和 Echo 引脚即可创建传感器对象。

  1. 测量距离
afstandssensor.afstandCM()

返回浮点数类型的距离值,单位为厘米。

  1. 串口输出
    使用 Serial.printf 格式化输出距离,便于在串口监视器查看。

  2. 延时
    delay(500) 控制测量频率为每 500ms 一次,避免串口输出过快。


六、实验效果

  1. 打开串口监视器,选择波特率 115200。
  2. 屏幕显示类似以下内容:
测量距离:23.45CM
测量距离:23.50CM
测量距离:23.60CM
  1. 移动物体,测距数值会实时变化,实现动态测距。

七、进阶扩展

  1. OLED 显示
    结合 OLED 液晶屏,将实时测距数据显示在屏幕上。

  2. 避障控制
    结合电机模块,实现机器人遇障停走或自动避障。

  3. 报警系统
    设定距离阈值,距离过近时触发蜂鸣器报警。


八、总结

通过本实验,学习了:

  • HC-SR04 超声波模块工作原理
  • ESP32-S3 GPIO 控制超声波模块
  • 使用库简化测距操作
  • 串口输出测距结果

本实验为 智能避障、液位监测及物体检测 等物联网应用打下基础。

posted @ 2025-08-16 14:53  jeikerxiao  阅读(126)  评论(0)    收藏  举报