九、遇到的坑与解决
────────────────────────────────────────────────────────────────────────
现象 原因 解决
──────────────────────────────────────────────────────────────────────────────────
LCD 全白一片 V0 对比度脚没接电位器 加 10kΩ 电位器分压取 ~0.5V
屏幕中间几个字符乱码 ST7066U 1×16 的 DDRAM 不连续 第8→9字符间手动跳到 0x40
距离读数偶尔跳几十厘米 原始值无滤波 3 点中值滤波
程序偶发卡死 目标过远时等不到回波下降沿 30ms 超时保护,返回无效标志
超声波 3.3V 供电 发射功率不足 VCC 改接 5V(Arduino 排针)
测不到近处
ECHO 5V 超 GPIO 耐压 电平域不匹配 用模块自带 10kΩ×2 分压到 2.5V
LCD 偶发识别不良 3.3V 不满足 VIH≥0.7×VDD=3.5V 信号线加 5V 上拉,或如实记录
裕量不足
距离整体偏大 声速按 340m/s 固定值算 可接板载 P3T1750,
c = 331.5 + 0.61t
────────────────────────────────────────────────────────────────────────
十、效果演示(视频 3~5 分钟)
────────────────────────────────────────────────────────────────────────
时间段 片段 开头字幕
────────────────────────────────────────────────────────────────────
0:00–0:25 作者与项目一句话介绍 ——
0:25–1:10 硬件介绍:MCXA153 / HC-SR04 / LCD实物特写 【硬件介绍】
LCD 实物特写
1:10–1:50 设计思路:讲框图,说清哪个模块 【设计思路】
实现什么功能
1:50–2:40 功能演示①:串口输出实时距离 【任务一:串口通讯】
2:40–3:40 功能演示②:超声波测距,手持 【任务二:超声波测距】
不同距离物体
3:40–4:20 功能演示③:LCD 显示距离 【任务三:屏幕显示】
4:20–5:00 完整系统运行 + 实测数据表格展示 【成果演示】
────────────────────────────────────────────────────────────────────────
十一、总结
────────────────────────────────────────────────────────────────────────
这个项目最花时间的不是写代码,是把误差摸清楚。
三个设计决定对最终效果影响最大:
3 点中值滤波——把能用的读数变成稳的读数,成本只有几行代码;
DDRAM 跳地址——查手册才发现,不做就是 8 个字符的乱码;
超时保护——让系统在"没有目标"这个正常状态下也能正常工作。
超声波测距的物理极限也很明确:15° 的波束角决定了斜面基本测不准,吸声材质
会让误差明显上升。这不是代码能解决的,是原理决定的。理解了这个边界,反而能
把它用在真正合适的场合。
后续可以做的方向(欢迎交流):
· 接入板载 P3T1750 温度传感器做声速温度补偿,冬天精度能明显提升
· 加舵机做 180° 扫描,输出目标方位
· 双探头交替测距,做速度测量
· 数据经串口发到 PC,用 Python 实时绘图并记录 CSV
感谢 EEWorld 编辑部和 DigiKey 得捷的这次活动。开发过程中查了 MCXA153 和
ST7066U 的官方手册,收获比预期多。如果你也在做这一期,欢迎在评论区交流你的
方案。
器件清单:
· FRDM-MCXA153 —— 恩智浦 FRDM 开发板
· HC-SR04 Ultrasonic Sensor + 2×10KΩ —— Adafruit 3942
· NHD-0116AZ-FL-YBW —— Newhaven Display 1×16 字符液晶
我要赚赏金
