开源改变世界

同时使用 NO/NC 作为限位开关 #275

推推 grbl 3年前 (2023-01-21) 183次浏览

关闭
Mark-81 开启了这个问题 2017 年 9 月 22 日 · 5 条评论
关闭

同时使用 NO/NC 作为限位开关#275

Mark-81 开启了这个问题 2017 年 9 月 22 日 · 5 条评论

注释

同时使用 NO/NC 作为限位开关 #275

你好!我通读了文档和其他问题,但没有找到答案。如果我搜索不好,我深表歉意!我的 CNC 已经将限位开关连接到 NO(到 GND)和 NC(到 3.3V)。公共端被路由到 Arduino 输入。通过这种方式,线路被强制拉高或拉低,并且永远不会“浮动”(即依靠内部上拉)。

你看到这样做有什么问题吗?

同时使用 NO/NC 作为限位开关 #275
jahnj0584 评论了 2017 年 9 月 22 日 通过电子邮件
同时使用 NO/NC 作为限位开关 #275

@Mark-81是也不是……
开关接线本身将按预期工作——主要是。
我遇到的问题是长电线直接连接到 µC 端口,穿过 EMC 攻击性环境,例如 CNC 铣床(即使是小型铣床)。

同时使用 NO/NC 作为限位开关 #275
作者
马克-81 评论了 2017 年 9 月 22 日 通过电子邮件
同时使用 NO/NC 作为限位开关 #275

为什么将输入引脚保持在低阻抗轨(gnd 或 3.3V)比仅仅依靠内部上拉更糟糕?

我没有说使用内部上拉更好……
如果我是你,我至少会在信号线(开关和引脚之间)串联一个电阻,比如 1k,Arduino 之间有一个 100nF 的电容引脚和地。我还会直接在 Arduino 板上放一个 10k 下拉电阻,这样如果开关处断线,整个事情就会做出反应

同时使用 NO/NC 作为限位开关 #275

(合格的电气和电子工程师)
这个问题应该/可以与“限位开关接线”合并吗?

NO+NC 在这种情况下没有优势。
Arduino 接口的限位开关至少需要这些东西或等价物:

  1. 典型的限位开关需要约 5mA(5V 时为 1kohm)的润湿电流以保持触点清洁。ATmega 内部上拉还远远不够(大约 60k),但它可以与新开关一起使用。
  2. ATmega 需要防止噪声尖峰,例如以串联电阻的形式(见 3),否则尖峰会损坏 ATmega 输入。
  3. 噪声过滤,例如电容/电阻低通滤波器,通常为 10kohm 和 100nF。没有这个 GRBL 会自发跳闸。在大多数情况下,大约 1ms-10ms 的时间常数 (C x R) 应该足够长,足以消除最大的尖峰,但不会降低归位进给速率下的归位精度。

此外,强烈推荐这些:

  1. 屏蔽电缆,以便首先避免开关线上的噪音。
  2. 隔离(光隔离器)以防止尖峰、ESD、接地环路和短路。
  3. 容错,例如使用在机器超出限制时关闭的开关。这是因为开关和电线最常见的故障模式是开路。(注意:这通常意味着使用标记为“常闭”的触点,除了一些在超出限制时保持开关按下的 CNC 机器。)

在您的情况下,您可以保留 NO 联系人,并将其视为 NC to +ve。使用 1k 下拉(5mA @ 5V)和 10k/100nF 滤波器。所有 C 和 R 都在电缆的 arduino 端。电容器可以达到 +ve,因此您不会得到瞬态限制,但我认为 GRBL 不受此影响。理想情况下,开关 +ve 电源的电压应与 Arduino +ve 电源的电压相同,以获得最佳的抗噪性。
(当GRBL最需要时,NC在非极限状态下给出最低阻抗。但是电缆电感仍然可以让高频噪声通过。我认为极限状态下的低阻抗没有那么重要)

喜欢 (0)