第四章: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 

// 定义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");
  }
  

你可能感兴趣的:(ESP32,arduino,单片机,嵌入式硬件,c语言)