文章总结(帮你们节约时间)
- 详细讲解了超声波测距模块HC-SR04的工作原理
- 介绍了ESP32如何通过GPIO接口与超声波模块进行通信
- 展示了如何根据测量距离智能控制LED亮灭
- 提供了完整代码和接线方案,助你快速实现项目
超声波测距原理:声波的"往返旅行"
想象一下,你站在山谷前大喊一声,然后开始计时,直到听到回声——这就是超声波测距的基本原理!只不过我们用的不是人耳能听到的声波,而是频率更高的超声波。
超声波测距模块HC-SR04就像是一个不知疲倦的"声波旅行家",它发出超声波脉冲,等待这些脉冲从障碍物表面反射回来。从发送到接收的时间间隔,就是声波的"往返旅行时间"。知道了时间,再乘以声速(约340米/秒),我们就能算出距离啦!
距离 = (声波往返时间 × 声速) ÷ 2
为什么要除以2呢?因为声波走了个"来回",我们只需要"单程距离"!这就好比你骑自行车从家到学校再回家,用了30分钟,那你单程只需15分钟,对吧?
HC-SR04模块:认识这位"测距高手"
HC-SR04模块长得像一对"电子眼睛":
它有四个引脚:
- VCC:接5V电源
- GND:接地
- Trig(触发):输入端,接收来自ESP32的触发信号
- Echo(回声):输出端,向ESP32发送回波信号
工作流程是这样的:
- ESP32通过Trig引脚发送一个至少10微秒的高电平脉冲
- HC-SR04收到此信号后,自动发射8个40kHz的超声波脉冲
- 超声波碰到障碍物反射回来,被模块接收
- Echo引脚输出一个高电平脉冲,脉冲宽度与测量距离成正比
这个模块的测距范围通常在2cm到400cm之间,精度可达3mm。怎么样,这个小小的模块是不是很神奇?它就像是给ESP32装上了一双"测距眼睛"!
ESP32与超声波模块的接线
让我们把ESP32和HC-SR04连接起来:
- HC-SR04的VCC连接到ESP32的5V或3.3V(大多数HC-SR04可以在3.3V下工作)
- HC-SR04的GND连接到ESP32的GND
- HC-SR04的Trig连接到ESP32的GPIO5
- HC-SR04的Echo连接到ESP32的GPIO18
- 另外,我们将一个LED连接到ESP32的GPIO9,以便根据测量距离控制LED
代码实现:让ESP32与超声波模块交流
下面是完整的Arduino代码,让ESP32读取超声波传感器数据并控制LED:
// ESP32 + HC-SR04超声波测距模块
// 根据测量距离控制LED
#define TRIG_PIN 5 // 超声波触发引脚
#define ECHO_PIN 18 // 超声波回声引脚
#define LED_PIN 9 // LED控制引脚
#define DISTANCE_THRESHOLD 20 // 距离阈值(厘米)
// 声明函数
float getDistance();
void setup() {
Serial.begin(115200); // 初始化串口通信
pinMode(TRIG_PIN, OUTPUT); // 设置触发引脚为输出
pinMode(ECHO_PIN, INPUT); // 设置回声引脚为输入
pinMode(LED_PIN, OUTPUT); // 设置LED引脚为输出


3136

被折叠的 条评论
为什么被折叠?



