HC-SR04 超声波测距传感器原理与 Arduino 接口实战
超声波是频率超过人耳听觉上限 (20 kHz) 的声波。HC-SR04 是一款低成本、高精度的超声波测距模块,量程 2 cm~4 m,分辨率 3 mm,广泛用于避障、液位检测、机器人导航等场景。本文详解其工作原理、引脚定义、时序协议及 Arduino 实战接线与代码。
HC-SR04 硬件概览与规格参数
- 核心器件:一对 40 kHz 压电陶瓷换能器——发射头 (T) 与接收头 (R);
- 工作电压:5 V DC (典型电流 15 mA);
- 触发方式:Trig 引脚输入 ≥10 µs 高电平脉冲;
- 测量角度:±15° 锥角;
- 量程/精度:2 cm~400 cm / ±3 mm;
- 尺寸:45×20×15 mm (不同厂家略有差异)。
频率范围对比:超声波 vs 可听声
发射头 (T) 与接收头 (R)
HC-SR04 引脚定义
HC-SR04 引脚排布
| 引脚序号 | 名称 | 功能描述 |
|---|---|---|
| 1 | VCC | 5 V 电源输入 |
| 2 | Trig | 触发输入,≥10 µs 高电平启动一次测距 |
| 3 | Echo | 回波输出,高电平宽度 = 声波往返时间 |
| 4 | GND | 电源地 |
工作原理与测距公式
超声波测距原理示意
- 主控给 Trig 发送 ≥10 µs 高电平;
- 模块内部自动发射 8 个 40 kHz 方波脉冲,同时 Echo 拉高;
- 声波在空气中传播 (速度 ≈ 340 m/s),遇障碍物反射;
- 接收头检测到回波,Echo 拉低;
- Echo 高电平宽度 T 即为声波往返时间。
距离计算公式:
距离 (cm) = (34000 cm/s × T_us / 1 000 000) / 2 = T_us × 0.017
// 或简化整数运算:距离(cm) = T_us / 58
示例:Echo 高电平 1500 µs → 距离 = 1500 / 58 ≈ 25.9 cm。
超时保护:若 38 ms 内无回波,Echo 自动拉低,对应最大量程约 6.5 m (厂家标称 4 m)。
HC-SR04 尺寸图
HC-SR04 机械尺寸 (单位 mm)
Arduino UNO 接线与软件实战
硬件连接 (直连 GPIO 方案)
| Arduino UNO | HC-SR04 |
|---|---|
| 5V | VCC |
| GND | GND |
| D2 | Trig |
| D3 | Echo |
HC-SR04 与 Arduino 接线图
核心代码 (无需第三方库)
const uint8_t TRIG = 2, ECHO = 3;
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
Serial.begin(115200);
}
void loop() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
uint32_t dur = pulseIn(ECHO, HIGH, 38000); // 38 ms 超时
if (dur == 0) {
Serial.println("Out of range");
} else {
float dist_cm = dur * 0.017f; // 或 dur / 58.0
Serial.print("Distance: ");
Serial.print(dist_cm, 1);
Serial.println(" cm");
}
delay(100);
}
代码关键点解析
pulseIn(pin, HIGH, timeout)返回高电平脉冲宽度 (µs),超时返回 0;- 乘法
0.017比除法/58单片机上更快; - 建议中位值滤波 (取 5 次中位) 抑制抖动;
- 供电噪声大时,模块 VCC 并联 10 µF + 0.1 µF 陶瓷电容。
应用局限与避坑指南
- 软体/多孔材料吸声:毛绒玩具、海绵、人体衣物反射弱,易测不到;
- 低安装高度拾取地面反射:安装高度 < 20 cm 时易误触发,建议倾斜 10~15° 或加盲区屏蔽;
- 倾斜平面镜面反射:入射角 > 45° 时回波偏离接收头,需法向安装;
- 多模块干扰:同频并发会串扰,需时分复用触发 (间隔 >60 ms);
- 温度漂移:声速随温度变化 (0.6 m/s/°C),高精度场合需温度补偿。
结语
HC-SR04 凭借低成本、易用性、低功耗 (适合电池供电) 成为超声波测距首选。掌握触发时序、Echo 脉宽读取、距离换算与滤波处理,即可快速集成至机器人、智能家居、安防等项目。如需进阶多传感器融合、温度补偿算法或 PCB 级集成方案,欢迎联系我们技术支持。
工业技术