限位开关怎么接线?Arduino机械臂做回零保护和开关去抖避坑

工位上的小周硬件DIY 2026-10-16 19:55:53 4阅读 举报

做机械臂、3D打印机或者任何有一个运动范围的东西,限位开关都是保命的存在。它用来在最端点卡一下,让控制器知道“到顶了”“到头了”,防止机构一路撞到硬限位把自己干废。这篇讲限位开关怎么接、怎么读、怎么用在回零和脱手保护上。

限位开关是什么

说白了就是一个机械挡片式的微型开关,常见的叫微动开关(micro switch)。机构撞到它顶端的弹簧片,内部触点就会接通或断开。它有三个端子:公共端C、常开NO(平时断开、按下接通)、常闭NC(平时接通、按下断开)。在机器人上,最常用的就是NO,用来做位置触发的开关信号。

限位开关接线方式选择

接Arduino最稳妥的是“常开+内部上拉”的方案:把C端接GND,NO端接数字引脚,然后在代码里pinMode设为INPUT_PULLUP。这样没触发时引脚被上拉到高电平,一按下去被拉低,读到LOW就说明触发。这种方式抗干扰又省外接电阻。

至于用NO还是NC,是有讲究的。安全相关的地方推荐用常闭NC——万一线路断了,系统能立刻检测到信号丢失当作故障处理,比常开更防呆。快关只有一对常闭更安全,临时标记或非安全用常开图省事。装上两个开关一A一B,就能做双向限位。

开关去抖和回零实现

微动开关切换时会有1到5毫秒的抖动,直接读引脚会看到电平乱跳。省事的做法是用ezButton这类库,内置50毫秒消抖,代码很短。自己写也行——检测到变化后延时几十毫秒再确认一次,抖动就滤掉了。

限位开关最常见的用途是“回零”(homing):开机时让轴慢速往一个方向走,撞到端点的开关就停,把这个位置当作零点参考,之后的所有位置都基于它来算。这几乎是所有自带参考系的机械结构第一步要做的事。有了它,机械臂每次开机都能知道自己在哪里,不会跑飞撞机。

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


登录 后发表评论
3条评论
周五下班搞一搞
1楼 · 5小时前

回零真是机械臂开机第一步,不然它不知道自己在哪

好说好说
2楼 · 5小时前

消抖用ezButton库挺省事,50毫秒默认就够

修啥都行二哥
3楼 · 5小时前

常闭NC更防呆这个点说得对,断电断线能立刻发现