Contact me: hankecnc@gmail.com

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

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

关闭
gentlejim 打开了这个问题 2013 年 7 月 18 日 · 16条评论
关闭

运行 GRBL 的 Arduino Mega 2560 的限制和定位#253

gentlejim 打开了这个问题 2013 年 7 月 18 日 · 16条评论

注释

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

嗨,我是 CNC 铣削的新手,刚刚将 Proxxon 小型铣床转换为使用 GRBL 控制器运行 gcode 我正在运行 Windows 7,Arduino Mega 2560 运行 GRBL 8 Triblax 并且一切运行完美所以现在决定安装限制两端X & Y 轴和 Z 轴的正端,并将它们用作归位停止,这些现在已经到位,我尝试以非常小的成功操作它们,引脚注册警报状态 pos 并将机器锁定在开关处的电压是 4.95 伏特,所以不确定是什么问题看起来这个问题之前已经讨论过你找到解决方案了吗希望你能赐教。
谢谢吉姆

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
成员

请检查电气干扰。这是最常见的问题。这可能是由于电线绝缘不良、靠近风扇、电源或电机,或者开关或连接不良造成的。试着拆下开关,将它们和它们的电线从所有东西上移开,然后用手操作它们(确保你把机器放慢一点,或者手放在急停按钮上)。如果它解决了问题,那么您肯定有 EM 干扰。如果不是,请检查所有接线并进行排除。

EMF 的解决方案是在限制线上添加一个低通滤波器,换句话说,将一个小电容与地和开关并联。这将防止任何高频 EM 噪声错误地触发限制。祝你好运。

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
作者

感谢您的建议,我刚刚出去买了一些屏蔽线和电容器,所以会重新布线,使它们远离其他电线和电机等,你也知道 grbl 8 triblax 是否已更改以接受由提到的修改cnc4fun 3月30号到Makefile,config.h,serial.c改完后明天给大家回复,希望有好消息。
干杯吉姆

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

@gentlejim正如 cnc4fun 指出的那样,我认为您可能还需要更改 Mega 上的限制引脚号。我更改了引脚并且必须编译几次才能正确编译,但从来没有机会用物理限位开关测试它们。在我的邮件 ID 上给我发消息,我会寄给你一份副本。如果有效,则可以与社区共享。无论如何,请分享您的发现。

@chamnit 我在开关上也有抖动问题,在某处读到我们可能需要从 MCU 引脚到 5 vols(MCU 逻辑高电平)的更强上拉 1-4 K,将同时尝试…

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
作者

嗨,Samitray
,我现在已经使用屏蔽线更改了限位开关接线,并尽我所能将其远离其他接线,在每条线上的接地和引脚之间添加了 3 个小电容器,但警报仍在触发。代码说明是ALARM:Hard Limit。硕士?
这就是我的 config.h 文件的读取方式,所以不确定限制引脚应该是什么
// 定义引脚分配
// 注意:所有步进位和方向引脚必须位于同一端口上。
#define STEPPING_DDR DDRA
#define STEPPING_PORT PORTA
#define X_STEP_BIT 0 // Mega2560 数字引脚 22
#define Y_STEP_BIT 2 // Mega2560 数字引脚 24
#define Z_STEP_BIT 4 // Mega2560 数字引脚 26
#define X_DIRECTION_BIT 1 // Mega2560 数字引脚 23
#define Y_DIRECTION_BIT 3 // Mega2560 数字引脚 25
#define Z_DIRECTION_BIT 5 // Mega2560 数字引脚 27
#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1 <<Z_STEP_BIT)) // 所有步进位
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // 所有方向位
#define STEPPING_MASK (STEP_MASK | DIRECTION_MASK) //所有与步进相关的位(步进/方向)
#define STEPPERS_DISABLE_DDR DDRC
#define STEPPERS_DISABLE_PORT PORTC
#define STEPPERS_DISABLE_BIT 7 // Mega2560 数字引脚 30
#define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)
// 注意:所有限制位引脚必须在同一端口上
#define LIMIT_DDR DDRC
#define LIMIT_PIN PINC
#define LIMIT_PORT PORTC
#define X_LIMIT_BIT 6 // Mega2560 数字引脚 31
#define Y_LIMIT_BIT 5 // Mega2560 数字引脚 32
#define Z_LIMIT_BIT 4 // Mega2560 数字引脚 33
#define LIMIT_INT PCIE0 // 引脚更改中断使能引脚
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // 引脚改变中断寄存器
#define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // 所有限制位

我还阅读了限制和 makefile 可能也需要更改,如果您有更改的副本,也许您可​​以将它们发送给我。
 谢谢大家的帮助干杯吉姆


发件人:samitray notifications@github.com
收件人:grbl/grbl grbl@noreply.github.com
抄送:gentlejim rbjg@xtra.co.nz
发送时间:2013 年 7 月 20 日,星期六,上午 7:29
主题:回复:[grbl] 限制和在运行 GRBL 的 Arduino Mega 2560 上归位(#253

@gentlejim正如 cnc4fun 指出的那样,我认为您可能还需要更改 Mega 上的限制引脚号。我更改了引脚并且必须编译几次才能正确编译,但从来没有机会用物理限位开关测试它们。在我的邮件 ID 上给我发消息,我会寄给你一份副本。如果有效,则可以与社区共享。无论如何,请分享您的发现。
@chamnit这么低通?
______ 单片机
| |
|—— 开关
帽__ |
| |
| R (1-10K)
|___|
GND
我在开关上也有抖动问题,在某处读到我们可能需要从 MCU 引脚到 5 vols(MCU 逻辑高电平)的更强上拉 1-4 K,将尝试两者……

直接回复此电子邮件或查看它在 GitHub 上。

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
作者

嗨,Samitray & Chamnit,
我现在已经使用屏蔽线更改了限位开关接线,并尽我所能使其远离其他接线,在每条线上的接地和引脚之间添加了 3 个小电容器,但警报仍在触发。代码说明是ALARM:Hard Limit。硕士?
这就是我的 config.h 文件的读取方式,所以不确定限制引脚应该是什么
// 定义引脚分配
// 注意:所有步进位和方向引脚必须位于同一端口上。
#define STEPPING_DDR DDRA
#define STEPPING_PORT PORTA
#define X_STEP_BIT 0 // Mega2560 数字引脚 22
#define Y_STEP_BIT 2 // Mega2560 数字引脚 24
#define Z_STEP_BIT 4 // Mega2560 数字引脚 26
#define X_DIRECTION_BIT 1 // Mega2560 数字引脚 23
#define Y_DIRECTION_BIT 3 // Mega2560 数字引脚 25
#define Z_DIRECTION_BIT 5 // Mega2560 数字引脚 27
#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1 <<Z_STEP_BIT)) // 所有步进位
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // 所有方向位
#define STEPPING_MASK (STEP_MASK | DIRECTION_MASK) //所有与步进相关的位(步进/方向)
#define STEPPERS_DISABLE_DDR DDRC
#define STEPPERS_DISABLE_PORT PORTC
#define STEPPERS_DISABLE_BIT 7 // Mega2560 数字引脚 30
#define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)
// 注意:所有限制位引脚必须在同一端口上
#define LIMIT_DDR DDRC
#define LIMIT_PIN PINC
#define LIMIT_PORT PORTC
#define X_LIMIT_BIT 6 // Mega2560 数字引脚 31
#define Y_LIMIT_BIT 5 // Mega2560 数字引脚 32
#define Z_LIMIT_BIT 4 // Mega2560 数字引脚 33
#define LIMIT_INT PCIE0 // 引脚更改中断使能引脚
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // 引脚改变中断寄存器
#define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // 所有限制位

我还阅读了限制和 makefile 可能也需要更改,如果您有更改的副本,也许您可​​以将它们发送给我。
谢谢大家的帮助干杯吉姆

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
作者

嗨,Samitray & Chamnit
已经找到如何阻止限制和归位不断跳闸的方法 我的 10 mm/min 归位寻道时间在 Z 轴上非常慢,因为减少了 26 到 1 默认值为 250 mm/min。我的去抖动是 25 毫秒,但我已将其更改为 125 毫秒,这可能是导致问题的原因,尤其是在我的寻道速度较慢的情况下。

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

这是个好消息,一旦您的操作稳定后,您可以发布您的更改吗?
低通滤波器有什么不同吗?

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
作者

嗨,Samitray
,你有一份修改后的 Makefile、config.h 和 serial.c 文件的副本,其中包含对 Mega 2560 上的限制引脚号的更改,因为 cnc4fun 解决了问题,因为事情仍然无法正常工作。
非常感谢吉姆

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

@gentlejim通过电子邮件离线回复您

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
作者

嗨 Samitray
感谢您的帮助,但电子邮件尚未通过。
问候吉姆

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

你能在 samit_ray 给我发一封测试邮件吗 AT redifmail DOT com
将再次发送。我回复了来自github的电子邮件通知,它有一些复杂的id……

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
贡献者

你为什么不只是要点 ( http://gist.github.com ) 所以这里的人可以看到
并且以后搜索的人可以找到它

在 2013 年 7 月 24 日星期三上午 7:20,samitray notifications@github.com写道:

你能在 samit_ray 给我发一封测试邮件吗 AT redifmail DOT com
将再次发送。我回复了来自github的电子邮件通知,它有
一些复杂的id……


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ /issues/253 #issuecomment-21487916

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253
作者

最后,我的归位在所有轴上都正常工作,它们工作得非常好,但限制是另一件事,我无法阻止它们跳闸,除非我用 $16=0 关闭它们。您是否必须将它们重新连接到另一组引脚,或者程序中是否有某些东西将引脚从归位更改为极限,有人可以尝试为我解释一下吗,因为我是 CNC 的新手。
干杯吉姆

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

有同样的问题 – 现在我正在使用一个简单的 RC 组合来消除线条的噪音。
arduinos 的输入端有施密特触发器以允许“慢速边缘”。
但现在不记得确切的值。

更新:

  • 每个轴并联两个开关
  • 连接到 GND 的限位开关(对)的一侧
  • 开关的另一侧连接到:
    a) 通过 10k 电阻连接到 5V
    b) 通过 100n 电容连接到 GND
    c) 连接到相应的限制输入引脚

10k 电阻将输入拉高。比 avr 内置引体向上有点“难”。
100n 过滤噪声。
关闭开关会缩短电容并立即将输入拉低。
打开开关“慢慢地”通过 10k 为盖子充电。

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

@gentlejim,@mschorer 能否请您补充说明您在抑制噪音方面所做的努力,这将对搜索他的主题的其他人大有裨益。

运行 GRBL 的 Arduino Mega 2560 的限制和定位 #253

避免干扰的最佳方法是使用常态闭端开关电路。你从 gnd 通过闭合开关回到限制引脚 .. 并启用 arduinos 内部上拉电阻。

所以每次开关打开电路时,引脚都会被内部电阻拉高,你就会停止。

如果电路闭合,它的电阻很小。大约 0.2 到 1 欧姆,这样你的限位销应该稳定。我敢打赌,这比一个 10k 的电阻高出 10k 倍;>

记得在 grbl9c 设置中反转 pin 或使用反转设置重新编译它

您还需要更改 limits.c 中的上拉引脚状态,因为 grbl9c 会在高电平有效时将其关闭……所以基本上您将拥有一个稳定的限制线,无需任何外部电阻器。

如果在检测到停止后你仍然有奇怪的行为..你可能会想到一个外部上拉电阻,因为 arduino 中的电阻具有相当高的电阻。但对我来说,它与内部电阻配合使用效果很好。

并且 tehre 是一个很好的副作用..如果你的限制线有问题,比如一些电缆断开了 grbl 会发出限制警报:>但是如果线路短路,它会超过限制..所以也可以反对者:D

只是一件奇怪的事情.. 当我以正常运动快速驾驶我的机器时,它运行良好。
但如果我将归位进给速率设置为相同的高速,它会在归位时开始停止??
使用 grbl9c。

至于噪音.. EMF“电磁场”高电阻电路总是很容易成为干扰的目标,以尽量使您的电路保持低电阻。低电阻 = 需要更多的 EMF 场功率来建立线路中的电压。在低于 1 欧姆的线路上与 10kohm 的线路相比,1 欧姆线路上的 EMF 功率必须大 10k 倍才能建立与 10kohm 线路上相同的电压。

开路,如带有长电缆的开路开关,就像天线一样工作。它们会通过电感寻求干扰;>

cnc 电机电缆以快速变化的电流运行,因此如果没有适当屏蔽,它们基本上是自制的 EMF 发电机,

我希望这个能有一点帮助 …

喜欢 (0)