开源改变世界

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

推推 grbl 3年前 (2022-10-31) 404次浏览 0个评论
关闭
gentlejim 打开了这个问题 2013 年 7 月 18 日 · 16 条评论
关闭

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

gentlejim 打开了这个问题 on 18 Jul 2013 · 16 条评论

注释

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

嗨,我是 CNC 铣削的新手,刚刚将 Proxxon 迷你铣床转换为使用 GRBL 控制器运行 gcode 我正在运行 Windows 7,Arduino Mega 2560 运行 GRBL 8 Triblax,一切运行良好,所以现在决定在两端安装限制X 和 Y 轴和 Z 轴的正端,也将它们用作归位挡块,这些现在已经到位,我尝试在很少成功的情况下操作它们 引脚注册警报状态 pos 并将机器锁定在开关处的电压是4.95伏所以不知道是什么问题看起来这个问题之前已经讨论过你找到解决方案希望你能启发我。
谢谢吉姆

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

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

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

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

感谢您的建议,我刚出去买了一些屏蔽线和电容器,因此将重新布线以使它们远离其他接线和电机等,您还知道 grbl 8 triblax 是否已更改以接受由提及的修改cnc4fun 于 3 月 30 日对 Makefile、config.h、serial.c 进行修改,希望能在明天回复您一些好消息。
干杯吉姆

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

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

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

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

嗨 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 引脚 1-4 K 到 5 vols(MCU 逻辑高),将尝试两者…

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

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

嗨 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 #253的 Arduino Mega 2560 的限制和归位

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

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

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

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

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

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

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

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

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

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

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

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

tmpvar 评论 2013 年 7 月 25 日

你为什么不直接把它(http://gist.github.com)给这里的人看
,以后搜索的人可以找到它

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

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


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

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

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

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

有同样的问题 – 现在我正在使用一个简单的 RC 组合来对线条进行降噪。
arduino 的输入上有施密特触发器,以允许“慢边”。
但现在不记得确切的值了。

更新:

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

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

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

@gentlejim,@mschorer 您能否添加对您在抑制噪音方面的努力的额外描述,这将极大地有利于其他搜索他的主题的人。

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

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

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

如果电路是闭合的,它的电阻非常小……大约 0.2 到 1 欧姆,这样你的限位引脚就会稳定。我敢打赌,它会击败一个 10k 电阻器,将一条线保持 10k 倍;>

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

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

如果在检测到停止后您仍然有奇怪的行为..您可能会想到一个外部上拉电阻,因为 arduino 中的电阻相当高。但对我来说,它适用于内部电阻..

并且 tehre 是一个很好的副作用 .. 如果您的限制线出现问题,例如某些电缆断开 grbl 将引发限制警报:> 但如果线路短路,它将超过限制.. 所以也可能反对:D

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

至于噪声.. EMF“电磁场”高电阻电路始终是干扰的容易目标,试图保持电路低电阻。低电阻 = 需要更多的 EMF 场功率来建立线路中的电压。在低于 1 ohm 的线路与 10kohm 的线路上,1 ohm 线路上的 EMF 功率必须大 10k 倍才能建立与 10kohm 线路上相同的电压。

像带有长电缆的开路开关这样的开路就像天线一样工作……它们通过电感乞求干扰;>

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

我希望这能有所帮助 …

运行 GRBL #253的 Arduino Mega 2560 的限制和归位
喜欢 (0)

您必须 登录 才能发表评论!