HC-SR04超声波测距传感器怎么接线?Arduino避障测距完整教程

2026-10-18 16:35:36 46阅读

给小车加个避障的眼睛、做个能感应距离的自动开关,超声波测距是最便宜也最好上手的一招。HC-SR04是现在几乎人手一块的测距模块,它用40kHz声波测出物体距离,跟Arduino一对接就能用。这篇文章把接线和读数原理讲明白。

先认清四个引脚:两个触发一个回波两个供电

HC-SR04模块正面有两个像喇叭一样的圆柱,一个是发射头(标T),一个是接收头(标R)。侧边引出的引脚一共四个:VCC供电、GND接地、TRIG触发、ECHO回波。把它接在Arduino上,就是这四根线——VCC接5V,GND接地,TRIG和ECHO各接一个数字脚(下面我们用9号和10号)。

供电用5V最稳。虽然有资料说支持3.3V到5V,但实际用3.3V供电时回波距离和稳定性都会打折,DIY测距建议直接吃Arduino的5V。

测距原理就四步:发脉冲、等回波、算时间、除两半

HC-SR04工作流程很固定:先给TRIG脚发一个至少10微秒的高电平脉冲,让模块发射一束超声波;声波碰到障碍物会反弹回来,被接收头接收到;这时ECHO脚会输出一个高电平,这个高电平持续的时间,就是声波从发出到弹回来所用的时间。

然后把时间换算成距离:声音在空气中的速度大约是343米/秒。因为声波走了个来回,所以距离(厘米)约等于:时间(微秒)乘0.034再除以2。写成公式就是 距离(cm) = 传播时间(us) × 0.034 / 2。用新派(NewPing)这类库的话,一行调用就把这个换算做了,省得自己手算。

接线示范:TRIG和ECHO错开到两个数字脚

经典接法是这样:模块VCC接Arduino的5V,GND接GND,TRIG接9号数字脚(发触发脉冲),ECHO接10号数字脚(读回波高电平)。ECHO返回的是高电平脉宽,用Arduino自带的脉冲测量指令就能读到,也可以用NewPing库一行搞定。

代码思路不复杂:循环里发一个触发脉冲,接着读回波时间,套公式算出厘米数,打印出来或去做避障判断。想要更稳,可以多次测量取平均,能明显抑制个别毛刺读数。

能做点啥:避障小车到自动感应开关

最经典的玩法是避障小车:车头的HC-SR04不停测前方距离,小于某个阈值就转向或后退,简单可行。再升级可以做倒车雷达、自动感应水龙头、或做个会“看到人靠近就亮灯”的感应装置。配合舵机云台还能让“眼睛”转起来扫一圈。

HC-SR04的测量范围标称2厘米到400厘米,典型精度在厘米级,做避障和感应完全够用,而且防伪款满大街都是,坏了换一块也不心疼。

测不准、数值乱跳,多半是这几个原因

最常见的问题是读数一直720(超出量程)或跳得厉害。先查供电:一定要给5V并且共地。再看目标物体:软布、倾斜面、太细的物体反射弱,声波会“漏掉”回波,测不准很正常。还有两个模块叠着用会互相干扰,保持间距。

另外ECHO脚是5V逻辑,接某些3.3V核心板要注意电平匹配;但接Arduino Uno这类5V板子直接就行,千万注意别把TRIG和ECHO接反。

HC-SR04是零门槛进入“测距避障”的一块好模块。记住四个引脚、发个脉冲、算个时间,小车能躲、装置能亮,从这儿起步最现实。


作者:机械臂装配侠
链接:https://www.aiddithome.com/p/ad5648fad71a4.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
老张装机
1楼 · 2026-10-18 16:35:37

距离公式除以2那步最容易漏,来回嘛,千万别忘

触底反弹的Tony
2楼 · 2026-10-18 16:35:37

供电一定要5V吃满,我试过3.3V距离真的飘

电烙铁爱好者
3楼 · 2026-10-18 16:35:37

软布和斜面反射弱测不准是常识坑,我给小车装的时候就吃过亏

阿伟不emo
4楼 · 2026-10-18 16:35:36

TRIG发个10微秒脉冲再等回波,思路真的很直白,一下就懂了