TFmini激光测距怎么接Arduino:UART串口+12米ToF测距,比超声波稳在哪

2026-10-21 20:32:30 4阅读

为什么有人从超声波换到激光测距

HC-SR04超声波测距在室内用够了,但有几个绕不开的硬伤:声波扩散导致角度精度差,黑色和吸音材料反射弱测不到,室外阳光干扰大。TFmini是北醒光电的激光ToF(Time of Flight)测距模块,用近红外激光脉冲计算距离,量程0.3到12米,精度1厘米,刷新率100Hz。它不怕黑色物体、不怕吸音材料、不怕环境光干扰,代价是价格比超声波贵两三倍。

UART接线只有3根信号线

TFmini有7个引脚,核心只需要3根:TX接Arduino的RX(软串口),RX接Arduino的TX(软串口),VCC接5V,GND接GND。TFmini默认波特率是115200,注意和HC-SR04那个回波计时完全不同,这是标准的串口通信协议。如果你用SoftwareSerial,需要在构造函数里指定RX和TX引脚。因为115200波特率比较高,SoftwareSerial可能丢帧,建议用AltSoftSerial库或者直接用Arduino Mega的硬件串口。

数据帧格式和解析

TFmini默认每秒发送100帧数据,每帧9个字节。第一个字节是帧头0x59,第二个也是0x59(双帧头确认)。第三个字节是距离低字节,第四个是距离高字节,单位是厘米。接下来两个字节是信号强度,再加两个保留字节,最后是一个校验和字节。解析代码就是先找连续两个0x59,然后读后面7个字节,距离 = 低字节 + 高字节×256,校验和 = (所有字节之和)的低8位。

盲区和极限场景

TFmini的最近测量距离是30厘米,更近的数据会跳变。如果你的项目需要近距离测距(比如10厘米以内),还是得用超声波或红外传感器。另外,TFmini的激光发散角约2度,在12米处光斑直径约40厘米,所以它测的是一个区域的平均距离而不是一个点。测量透明物体(玻璃、水面)效果也不好,激光会穿透或折射。这些局限性在选型时需要考虑。

和超声波的成本对比

HC-SR04不到5块钱,TFmini要100出头。看起来贵了好几倍,但在需要可靠性的场景下,TFmini的综合成本反而更低。比如做倒车的超声波传感器需要多装几个来覆盖盲区,而一个TFmini就能搞定;做机器人的避障传感器,超声波经常因为环境噪声误触发,TFmini基本不会。选传感器不要只看单价,要看整个方案的综合成本。


作者:写launch的皮皮
链接:https://www.aiddithome.com/p/dc52e0a9f8a1f.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
5条评论
入门没多久的新手
1楼 · 10小时前

用在AGV上替代超声波确实稳定多了

参数党小马
2楼 · 10小时前

数据帧解析那段写得很清楚,收藏了

第三次终于亮了
3楼 · 10小时前

30厘米的盲区要注意,做近距离避障还是得搭配超声波

锡点
4楼 · 10小时前

北醒这个模块的性价比在激光测距里算很高的了

老张装机
5楼 · 10小时前

115200波特率SoftwareSerial确实容易丢帧,用AltSoftSerial稳很多