第四章:ESP32零基础教学 - 4.1.3超声波传感器(HC-SR04)

在本篇博客中,我们将详细介绍如何使用ESP32微控制器与HC-SR04超声波传感器进行距离测量。我们将从硬件连接开始,逐步完成代码编写,并为每一行代码提供详细的注释。

1. 硬件准备

所需材料

  • ESP32 开发板
  • HC-SR04 超声波传感器
  • 面包板
  • 连接线

硬件连接

将HC-SR04超声波传感器与ESP32开发板按照以下方式连接:

  • VCC -> 3.3V
  • GND -> GND
  • Trig -> GPIO 5
  • Echo -> GPIO 18

2. 软件准备

环境搭建

确保你已经安装了Arduino IDE,并且已经配置好了ESP32的开发环境。如果没有,可以参考 ESP32 Arduino Core 安装指南

3. 代码实现

下面是完整的代码实现,每一行代码都附有详细的注释:

// 引入必要的库
#include <Arduino.h>

// 定义HC-SR04的Trig和Echo引脚
#define TRIG_PIN 5
#define ECHO_PIN 18

// 定义声速(cm/us)
#define SOUND_SPEED 0.034

// 定义测量距离的最大和最小值(单位:厘米)
#define MAX_DISTANCE 400
#define MIN_DISTANCE 2

// 初始化函数
void setup() {
  // 初始化串口通信,波特率为115200
  Serial.begin(115200);
  
  // 配置Trig和Echo引脚
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

// 主循环函数
void loop() {
  // 1. 发送10微秒的高电平信号到Trig引脚,触发超声波传感器
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  
  // 2. 读取Echo引脚的脉冲宽度,单位是微秒
  long duration = pulseIn(ECHO_PIN, HIGH);
  
  // 3. 计算距离,单位是厘米
  float distance = duration * SOUND_SPEED / 2;
  
  // 4. 检查距离是否在有效范围内
  if (distance >= MAX_DISTANCE || distance <= MIN_DISTANCE) {
    Serial.println("距离超出测量范围");
  } else {
    // 5. 输出测量距离到串口监视器
    Serial.print("距离: ");
    Serial.print(distance);
    Serial.println(" cm");
  }
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙大大L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值