单片机实验(三) Arduino 超声波测距

实验目的

  1. 理解超声波脉冲飞行时间测距的基本原理;
  2. 掌握 Arduino 数字脉冲的产生、计时和串口数据显示方法;
  3. 通过标定实验认识测量范围、误差、分辨率和环境干扰。

预习材料

  1. 了解 HC-SR04 模块的VCC、Trig、Echo和GND引脚功能;
  2. 阅读 Arduino pulseIn() 函数说明;
  3. 复习距离、传播速度与往返时间的关系,取室温空气中声速约343 m/s。

实验器材

Arduino UNO 或兼容开发板1块,HC-SR04超声波测距模块1个,面包板1块,USB线1条,杜邦线若干,直尺或卷尺1把,平整硬质挡板1块,安装 Arduino IDE 的笔记本电脑1台。

实验步骤

  1. 断开 USB,按模块标识连接VCC至5 V、GND至GND,并将Trig和Echo分别连接到两个数字引脚;检查接线后再上电;
  2. 编写程序:向Trig发送约10 μs高电平触发脉冲,使用pulseIn()测量Echo高电平持续时间,并设置合理的超时时间;
  3. 根据“距离=Echo持续时间×声速÷2”计算距离,以厘米为单位每200 ms输出一次到串口监视器;
  4. 将平整挡板依次放在10 cm、20 cm、40 cm、60 cm和100 cm处,每个位置记录10次测量值,计算平均值和最大偏差;
  5. 在程序中加入5次移动平均,比较滤波前后数据波动;
  6. 改变挡板角度或换用吸声较强的软质物体,观察丢失回波或误差增大的现象,并分析原因。

思考题

  1. 距离计算公式中为什么要除以2?
  2. 温度变化会怎样影响测距结果?
  3. 移动平均能够减小随机波动,但会给快速变化的测量带来什么影响?

考核要求

于1周内提交实验报告,内容包括接线照片、完整程序、5个距离点的原始数据与误差表、滤波前后对比、异常回波现象分析及思考题解答。

实验索引