HC-SR04超声波测距模块怎么接线?Arduino避障小车触发和回波预置详解

数据媛小满硬件DIY 2026-10-15 16:45:59 5阅读 举报

做自动避障小车、车库测距告警,很多人第一个用的距离传感器就是HC-SR04。它价格便宜、原理直观,靠发射超声波再听回声的时间差来算距离,几块钱就能让机器人"看见"面前的东西。这篇把它的四个引脚怎么接、脉冲怎么触发、距离怎么算讲透,顺带说几个容易卡壳的点。

先看懂HC-SR04的四根线

模块正面是两颗圆筒状的换能器,一颗负责发射超声波,一颗负责接收回波,整颗模块引出四个引脚:VCC接电源、GND接地、TRIG是触发输入、ECHO是回波输出。大部分模块VCC接5V,个别山寨版供电范围窄,按板子标注来。

要注意的是,HC-SR04的ECHO输出是5V的高电平信号。如果你的主控是ESP32、树莓派这类3.3V系统,直接接到引脚上可能烧IO口,中间串一个分压电阻或电平转换才是稳妥做法。

TRIG和ECHO怎么接线,怎么读数据

TRIG接Arduino任意一个数字输出脚,比如D9;ECHO接一个数字输入脚,比如D10。测量原理是:你给TRIG发一个至少10微秒的高电平脉冲,模块就会发出8个40kHz的超声波,然后立刻把ECHO拉高,直到收到回波再拉低。ECHO高电平持续的时间就对应声波往返的时长。

距离的计算公式是:距离等于高电平持续时间乘以声速,再除以2,因为那是往返路程。声速常温下按340米每秒算,换算成厘米就是持续时间的微秒数除以58,误差在几毫米到一两厘米,做避障够用。

三个容易翻车的坑

第一个是两次测量之间要留够间隔,超声波余波还没散尽就急着测第二次,会读到之前的回声干扰,一般两条读之间留个几十毫秒的延时比较稳。

第二个是程序里脉冲时序要写对:先让TRIG拉低、延时几微秒,再拉高10微秒,再拉低。很多人一上来拉高没给足时长,模块根本没触发。

第三个是pulseIn读回来的时长要用对单位。Arduino的pulseIn默认返回微秒,直接按上面的公式转换就行,别当成毫秒除错了。

小提示:发射锥角和反射面

HC-SR04的探测是个范围,发射角大约15度左右,正对着的平面反射效果最好,斜着放来测角会明显变远。做避障小车时把模块装在车头正前方、略朝下,能避开远处地面和杂物的误判。

按这套接好线、把10微秒触发脉冲和微秒公式写对,超声波避障基本一遍就能跑通。卡壳多半在触发时长和延时这两处,顺着查很快就能定位。

版权声明:
作者:数据媛小满
链接:https://www.aiddithome.com/p/dc585bf17df12.html
来源:硬件DIY
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
3条评论

换到3.3V主控时echo分压那下提醒得好,我之前直接怼上去总担心烧口,串个分压就放心了

板砖搬不动
2楼 · 1天前

共地这个问题太关键了,我之前示波器看数据乱跳,把地和主控连一起就稳了,作者讲得实在

阿强焊点总飞
3楼 · 1天前

10us触发时长这个点真的坑,我一开始给太短模块压根不响应,看这篇才对齐