文档
HC-SR04 超声波测距模块技术文档
1. 概述
HC-SR04 是一款基于超声波飞行时间(ToF,Time of Flight)原理的非接触式测距模块。模块核心由超声波发射探头、接收探头和 CX20106A 信号处理芯片组成。通过发射 40kHz 超声波脉冲并接收回波,测量声波在空气中的往返时间来计算距离。
主要特性:
- 非接触式测距,精度 ±3mm
- 测量范围 2cm~400cm
- 接口简单:TRIG 触发 + ECHO 脉宽测量
- 盲区仅 2cm
- 板载信号放大和整形,输出干净 TTL 信号
2. 引脚定义
| 引脚 | 名称 | 功能说明 |
|---|---|---|
| 1 | VCC | 电源正极,DC 5V |
| 2 | TRIG | 触发信号输入(TTL),>10μs 高电平触发一次测量 |
| 3 | ECHO | 回响信号输出(TTL),高电平宽度 = 超声波往返时间 |
| 4 | GND | 电源负极 |
3. 电气特性
| 参数 | 典型值 | 单位 |
|---|---|---|
| 工作电压 | 5.0 | V |
| 工作电流 | 15 | mA |
| 待机电流 | <2 | mA |
| 超声波频率 | 40 | kHz |
| 测量范围 | 2 ~ 400 | cm |
| 测量精度 | ±3 | mm |
| 测量角度 | <15 | ° |
| TRIG 脉冲宽度 | ≥10 | μs |
| ECHO 输出 | TTL 高电平 | - |
| 建议测量周期 | ≥60 | ms |
4. 工作原理与计算公式
时序图
TRIG: ─────┐ ┌──────────┐
│ │ ≥10μs │
└─────┘ └─────────────────────
模块内部自动发射 8 个 40kHz 方波脉冲
├─ 8×25μs = 200μs ─┤
ECHO: ──────────────────┐ ┌────────────────
│ Tp │
└─────────┘
高电平宽度 = 超声波往返时间
距离计算公式
距离(cm) = (ECHO高电平时间 × 声速) / 2
= Tp(μs) × 0.034(cm/μs) / 2
= Tp(μs) / 58
其中声速取 340m/s = 0.034cm/μs(20°C 标准大气压)。
温度补偿(可选,高精度场景):
声速(m/s) = 331.4 + 0.607 × T(°C)
距离(cm) = Tp(μs) × 声速(m/s) / 20000
5. 典型应用电路
5V ───────────── 模块 VCC
GND ───────────── 模块 GND
MCU GPIO ────────── 模块 TRIG
MCU GPIO ────────── 模块 ECHO
┌─────────────────────┐
│ HC-SR04 │
│ VCC TRIG ECHO GND │
│ [超声波探头] [探头] │
│ TX RX │
└─────────────────────┘
⚠️ HC-SR04 为 5V 模块,ECHO 高电平约 5V。若 MCU 为 3.3V,ECHO 需经电阻分压(如 2kΩ+1kΩ)或电平转换后接入。
6. 使用注意事项
- 供电必须 5V:HC-SR04 不可使用 3.3V 供电,否则测量距离急剧缩短或不工作
- 电平匹配:ECHO 输出 5V TTL,连接 3.3V MCU 必须电平转换(分压即可)
- 测量周期:建议 ≥60ms,给模块充足时间完成测量和余响衰减
- 盲区:2cm 以内无法准确测量,因为发射后接收探头还未来得及准备
- 测量角度:有效波束角约 15°,超出此范围回波太弱无法检测
- 被测物表面:粗糙表面测距更准;光滑表面若倾斜可能导致反射路径偏离;吸音材料(海绵、布料)无法测量
- 多模块串扰:同时使用多个 HC-SR04 时需分时触发,避免相互干扰
- 温度影响:声速随温度变化,常温下影响约 0.6m/s/°C,±10°C 偏差带来约 ±1.7% 距离误差
- 超时处理:若无回波(如超出 4m 或被吸收),ECHO 将一直保持高电平,需代码超时(如 30ms = ~510cm)后强制清零
- TRIG 脉宽:10μs 即可,但常用 15-20μs 以确保可靠触发