GP2Y0A21红外测距传感器怎么接线?Arduino模拟口测10-80cm教程

隔壁老王的教程硬件DIY 2026-10-16 12:57:07 3阅读 举报

给小车加避障、给机器人加个“眼睛”看距离,除了超声波,夏普GP2Y0A21也是经典选择。它用红外反射原理测距,量程10到80厘米,输出的是模拟电压,接Arduino一个模拟脚就能读。这篇文章把接线和换算讲清楚。

三根线的连接器别接反

GP2Y0A21通常带一个JST/PH2.0的三针连接器,引出三根线,颜色和功能要认准:黄色是信号输出Vo,黑色是地GND,红色是电源正VCC。传感器要用5V供电(工作电压4.5到5.5V),别接3.3V,电压不够它工作不起来。

接线:黄色信号线接Arduino的模拟输入脚A0,黑色接GND,红色接5V。它输出的是随距离变化的模拟电压,距离越近电压越低(是非线性的反比关系),所以必须接模拟脚才能读,不能读数字脚。

电压换距离:非线性曲线要用公式

GP2Y0A21输出0.3V到约3.1V的电压,与距离成反比关系。它没有单一的线性公式,但官方/datasheet给了拟合曲线,常用近似公式是:distance = 25.3 / (voltage ^ 1.15)(厘米),其中voltage是模拟读到的电压。代码里先做 analogRead→换算成电压(0到5V),再用这个公式算出距离。

也可以用查表法:datasheet上的电压-距离对应表直接查,更贴近真实曲线。程序里把表存成数组,采到电压后插值查找,距离就出来了。

应用:红外避障、边防检测

量程10到80厘米,正适合小车做近距离避障——比超声波方向性更好、不吵、也测得更“从同一根轴”上有遮挡。还可以用来做接近报警,物体进入设定距离就触发。

它跟超声波比,好处是体积小、方向性好、价格也便宜;短板是对颜色和表面反射敏感(黑色墙面、亮面会偏)、量程不如超声波远、而且容易受强环境光(比如直射阳光)干扰。两者各有各的适合场景。

供电、采样和三个坑

GP2Y0A21上电瞬间会有一个稳定的建立时间,读取前最好等一下(比如上电后延时几十到几百毫秒)。还有它输出是模拟的,单独一次读取会有噪声,多采几次取平均更稳定。

坑有三个:一是必须5V供电,很多3.3V的控制器直接怼3.3V它不干活;二是信号线必须接模拟脚A0这类,接数字脚读出的只有高/低电平没法测距离;三是它和超声波不同,对斜面的角度、反射材质很敏感,用在避障时别期望它对所有障碍都均匀测到,实测校准一下换算系数更靠谱。强光直射时读数可能跳,尽量避开阳光直射窗口。

GP2Y0A21是给近距离测距需求一个“红外”思路的好选择。三根线、一个模拟脚、一个换算公式,量个10到80厘米的距离稳稳当当,做避障和边防够用。

版权声明:
作者:隔壁老王的教程
链接:https://www.aiddithome.com/p/8b3f3999b9952.html
来源:硬件DIY
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
修啥都行二哥
1楼 · 12小时前

多采几次取平均,单次读数会抖

刷视频进来围观
2楼 · 12小时前

电压和距离是非线性反比,那个换算公式记下来

隔壁工位的好奇宝
3楼 · 12小时前

对黑色亮面确实不灵敏,避障时要注意材质

下班才有空
4楼 · 12小时前

必须5V供电,接3.3V它根本不干活,踩过