这次活动的主题是制作一个简易超声波测距仪,主要学习 MCU 串口通信、超声波测距、I2C 通信和 OLED 显示。
本次准备的器件包括:
FRDM-MCXA153 开发板
HC-SR04 超声波测距模块
0.96 英寸 SSD1306 I2C OLED 显示屏
杜邦线、电阻分压器件和 USB 连接线
FRDM-MCXA153 开发板
FRDM-MCXA153 是 NXP 面向 MCX A 系列 MCU 的开发板,主控为 MCXA153,采用 Arm Cortex-M33 内核,最高主频约 96 MHz,片上资源包括约 128 KB Flash 和 24 KB SRAM。
这块开发板的特点是接口比较丰富,适合进行外设和传感器实验:
板载 MCU-Link 调试器和烧录器
支持虚拟串口,可直接与电脑进行串口通信
Arduino R3 扩展接口
MikroBUS 接口
RGB 指示灯
用户按键 SW2、SW3
多组 GPIO、I2C、SPI、UART 等外设接口
本项目使用板载 MCU-Link 完成程序烧录和串口调试,不需要额外购买 J-Link。

HC-SR04 超声波模块
HC-SR04 是常见的超声波测距模块,工作频率通常为 40 kHz,模块上有两个超声波换能器,分别用于发射和接收超声波。
它的工作过程如下:
MCU 向 TRIG 引脚输出至少 10 us 的高电平脉冲;
模块发射一组 40 kHz 超声波;
超声波遇到目标后反射回来;
模块在 ECHO 引脚输出一个与往返时间对应的高电平脉冲;
MCU 根据脉冲宽度计算距离。
基本计算公式为:
距离 = 声速 × ECHO 高电平时间 ÷ 2
HC-SR04 的典型测量范围约为 2 cm 到 400 cm,实际测量结果会受到目标材质、角度、环境温度和安装方式影响。
需要特别注意,HC-SR04 通常使用 5 V 供电,ECHO 输出也可能是 5 V 电平。MCXA153 的 GPIO 不能直接承受 5 V,因此 ECHO 信号必须通过电阻分压或电平转换后再接入 MCU。

SSD1306 I2C OLED 屏幕
使用的显示屏是 1.24 英寸 OLED,驱动芯片为 SSD1306。SSD1306 OLED 常见分辨率为 128×64,采用单色显示,每个像素可以独立点亮。
OLED 与普通 LCD 的区别是:
OLED 像素可以自发光,不需要背光;
对比度较高,显示效果清晰;
模块体积小,适合显示传感器数据;
功耗较低,适合嵌入式项目。
本项目使用 I2C 接口,通常只需要四根线:
VCC
GND
SDA
SCL
常见 I2C 地址为 0x3C,部分模块可能使用 0x3D。

本项目接线规划
| OLED VCC | 3V3 | 使用 3.3 V 供电 |
| OLED GND | GND | 共地 |
| OLED SDA | Arduino D14 / P1_8 | I2C 数据线 |
| OLED SCL | Arduino D15 / P1_9 | I2C 时钟线 |
| HC-SR04 VCC | 5V | 模块供电 |
| HC-SR04 GND | GND | 与开发板共地 |
| HC-SR04 TRIG | Arduino D2 / P2_4 | MCU 输出触发信号 |
| HC-SR04 ECHO | Arduino D7 / P3_1 | 经过分压后接入 |
| 电脑串口 | J15 MCU-Link | 虚拟串口,115200 8N1 |
软件方面计划使用 Zephyr RTOS 进行开发,利用 Zephyr 的 HC-SR04 传感器驱动读取距离,通过 SSD1306 驱动在 OLED 上显示结果,同时通过 MCU-Link 虚拟串口将数据发送到电脑。
后续还会尝试加入:
距离一位小数显示;
五次滑动平均滤波;
使用 SW2 在 cm 和 m 显示单位之间切换;
串口持续输出原始值和滤波后的距离。
期待通过这次活动,把传感器采集、数据处理、串口通信和显示输出完整串联起来,最终完成一个真正可以使用的简易超声波测距仪。
我要赚赏金
