超声波传感器(DYP-ME007)
超声波测距 · Trig 触发 / Echo 回波 · IO 口脉冲测量
一、理论基础
1.1 传感器概述
DYP-ME007 是一款超声波测距模块,通过在触发端(Trig)发送一个 10μS 以上的高电平脉冲,在回升端(Echo)就可以接收到一个高电平脉冲,通过此高电平脉冲的高电平长度(持续时间),就可以计算出障碍物离超声波传感器的距离。
超声波测距具有非接触、精度较高、成本低等优点,广泛应用于测距、避障、液位测量、智能小车等场景。
1.2 关键特性
| 参数 | 规格 |
|---|---|
| 工作电压 | 5V DC |
| 工作电流 | 15 mA |
| 工作频率 | 40 kHz |
| 测距范围 | 2 cm ~ 400 cm(典型) |
| 测距精度 | ±3 mm |
| 触发信号 | 10μS 以上 TTL 高电平脉冲 |
| 回波信号 | 高电平,宽度 = 声波往返时间 |
| 接口 | Trig(输入)+ Echo(输出) |
| 工作温度 | -10 ~ +70 ℃ |
1.3 工作原理
超声波发射:Trig 端输入一个 10μS 以上的高电平脉冲,模块内部的超声波发射器(换能器)发出 8 个 40kHz 的超声波脉冲。
超声波接收:超声波遇到障碍物后反射回来,被接收器接收,模块将回波信号转换为高电平从 Echo 端输出。
距离计算:Echo 端高电平的持续时间等于超声波从发射到接收的往返时间。根据声速(约 340 m/s,空气中),距离计算公式为:
距离(cm) = 高电平时间(μS) × 声速(cm/μS) / 2
= 时间(μS) × 0.034 / 2
≈ 时间(μS) / 58除以 2 是因为测量的是往返时间,实际距离是单程。
1.4 典型应用
- 智能小车避障
- 机器人测距与导航
- 液位测量(非接触式)
- 自动门人体检测
- 停车场车位检测
- 无人机定高
- 物体接近报警
二、实验实例:DYP-ME007 超声波测距
2.1 实验目的
- 掌握超声波传感器的操作方法
- 掌握超声波传感器采集程序的编程方法
2.2 实验内容
在 IAR 集成开发环境中编写超声波传感器采集程序,通过 CC2530 的 IO 口发送触发脉冲,采集回波高电平宽度,计算障碍物距离并通过串口输出。
2.3 预备知识
- 了解 C 语言的基本知识
- 了解 IAR 中编写和调试程序的方法
- 了解定时器和 IO 口脉冲测量的基本原理
2.4 实验设备
- 硬件:WSN-V 教学实验箱(带传感器 3 扩展板)、PC 机
- 软件:Windows + IAR EW for 8051、串口调试助手
2.5 接口电路
P1.6 用于控制超声波传感器发送一个 10μS 的高电平脉冲(Trig),P1.7 用于采集回声的高电平长度(Echo)。

电路说明:
- M1 为 DYP-ME007 超声波模块(VCC/Trig/Echo/GND 四线)
- Trig 经三极管 Q2(2N5551)驱动电路接 P1.6(CC2530 IO 输出)
- Echo 经 R5(3K)+ R6(3K)分压后接 P1.7(CC2530 IO 输入)
- C2(104)+ R3(10K)为滤波/上拉电路
- VCC5 供电
2.6 关键函数
触发脉冲:
P1_6 = 1; // 拉高 Trig
delay_us(15); // 保持 15μS(>10μS)
P1_6 = 0; // 拉低 Trig回波测量:
while (P1_7 == 0); // 等待 Echo 变高
T1 = timer_value; // 记录起始时间
while (P1_7 == 1); // 等待 Echo 变低
T2 = timer_value; // 记录结束时间
time_us = (T2 - T1); // 高电平宽度(μS)
distance_cm = time_us / 58; // 换算距离2.7 实验步骤
- 连接好仿真器,及带传感器 3 扩展板的通用调试母板
- 新建工程 ultrasonic,添加相应文件并修改工程设置
- 创建 ultrasonic.c 并加入到工程中
- 编写 ultrasonic 相关函数:P1.6 发送 10μS 触发脉冲,P1.7 采集回波高电平宽度,计算障碍物距离,通过串口发送
- 编译下载运行,将手或书本等障碍物放在超声波传感器前方,改变距离,通过串口调试助手观察距离的变化
2.8 实验结果

- 障碍物距离变化时,串口输出的距离值实时更新
- 距离越近,Echo 高电平宽度越短;距离越远,高电平宽度越长
- 测量范围约 2cm ~ 400cm,超出范围或无反射时读数异常
知识点
超声波测距的精度受声速影响,声速与环境温度有关:v = 331.4 + 0.6 × T(℃)(m/s)。在 25℃ 时声速约 346 m/s,因此更精确的距离公式为 distance = time × (331.4 + 0.6T) / 2。此外,超声波测距存在盲区(通常 < 2cm),因为发射时的余振会影响接收;对于柔软、吸声或倾角过大的表面,反射信号弱,可能测量失败。
内容来源:《WSN-V 物联网综合教学实验指导书》第 7 章·7.14 超声波传感器采集实验,结合课程教学经验整理。