一、项目介绍
项目采用 NXP FRDM-MCXA153 开发板、 HC-SR04 超声波模块,LCD显示屏NHD-0116AZ-FL-YBW,实现400mm内范围测距且进行串口输出。
软件使用MCUXpresso IDE v25.6.136进行开发。
系统框图

硬件连接原理图:
FRDM-MCXA153 | HC-SR04 | LCD
| 杜邦线连接 |
+5V | VCC | VCC | 飞线 |
GND | GND | GND | 飞线 |
P3_15 | Trig | 飞线 | |
P3_14 | ECHO | 10k+10k分压电阻后,飞线 | |
P1_10 | LCD_RS | 飞线 | |
P1_12 | LCD_E | 飞线 | |
P1_13 | LCD_D4 | 飞线 | |
P2_0 | LCD_D5 | 飞线 | |
P3_31 | LCD_D6 | 飞线 | |
P3_30 | LCD_D7 | 飞线 | |
V0 | 电位器调至0.5V | ||
GND | LCD_E | 短接到GND飞线 | |
LED- | 串联200到电源VCC |
主要参数:
HC-SR04超声波模块:
工作电压5V DC,工作电流:待机小于 2mA,工作时约 15mA;测距范围:2cm 至 400cm;测距精度:±3mm;超声波频率:40kHz;感应角度:不大于 15 度
NHD-0116AZ-FL-YBW液晶模块:
电源 4.7 V ~ 5.5 V;并联接口;字符数量16;显示格式16*1;黄绿背光
工作原理与测距计算
00001. 测距时序流程:
1、单片机给 Trig 引脚发送至少 10μs 的高电平脉冲触发测距。
2、模块自动发送 8 个 40kHz 超声波脉冲。
3、超声波遇到障碍物反射后被接收器检测。
4、Echo 引脚输出高电平,持续时间与超声波往返时间成正比。
00002. 距离计算公式:
1、声速在空气中约340m/s(常温下)。
2、距离 = (高电平时间 × 声速) ÷ 2,除以 2 是因为声波走了往返路程。
3、简化公式:距离 (cm) = 高电平时间 (μs) ÷ 58
软件配置:
HC-SR04超声波模块配置驱动、定时驱动
液晶LCD显示模块配置驱动,状态机显示刷新;
MCXA153的GPIO、TIMER、UART配置端口及功能模块;
超声波模块测距代码:
超声波模块的触发时序。 */
GPIO_PinWrite(WAVE_GPIO, WAVE_TRIG_PIN, 0U);
SDK_DelayAtLeastUs(3U, SystemCoreClock);
GPIO_PinWrite(WAVE_GPIO, WAVE_TRIG_PIN, 1U);
SDK_DelayAtLeastUs(10U, SystemCoreClock);
GPIO_PinWrite(WAVE_GPIO, WAVE_TRIG_PIN, 0U);
/* 等待 Echo 上升沿 */
if (!Wait_Echo_Level(1U, WAVE_TIMEOUT_US, &UpTimeUs))
{
return Timeout;
}
/* 等待 Echo 下降沿:若超时,说明高电平没有正常结束。 */
if (!Wait_EchoLevel(0U, WAVE_TIMEOUT_US, &DownTimeUs))
{
return Timeout;
}
/* Echo 高电平宽度 = 下降沿时刻 - 上升沿时刻,单位为 μs。 */
*pulseUs = DownTimeUs- UpTimeUs;
return Ok;
}
调试过程出现误差数据,通过平均滤波处理,每10次得到平均值作为测距的结果,并通过UART端口发送到PC的串口助手进行观察。
开启运行:
1、硬件连接;USB 线连接板载 MCU-LINK 调试口到 PC;其它连接按上文的硬件连接图;
2、MCUXpresso IDE v25.6.136新建工程;
3、编译下载,使用debug的那个虫子进行调试;
4、观察串口助手结果。
流程图:

效果展示:


我要赚赏金
