开源改变世界

步进器的电源控制,重新访问 #1674

推推 grbl 3年前 (2022-10-27) 409次浏览 0个评论
打开
getgray 打开了这个问题 2020 年 10 月 12 日 · 16 条评论
打开

电源控制到步进器,重温#1674

getgray 打开了这个问题 on 12 Oct 2020 · 16 条评论

注释

步进器的电源控制,重新访问 #1674

格格雷 评论 2020 年 10 月 12 日  

我有一个仅限 XY 的应用程序,我需要能够在不使用时关闭步进器的保持电流。但我需要他们至少在最后一个命令之后保持几秒钟。如果我什至进行微步,我的“工具”将不会丢失微步。我的电机占空比很低,GCODE 会“突飞猛进”,它们之间会有几秒钟的延迟,有时下一个命令之间会有很多分钟。一直开着电机对我的应用来说是不切实际的。但是,我需要“大脑”活得好好的,随时等待下一步行动,除了启用之外没有启动延迟。如果我将重置作为“唤醒”发送,我可能会丢失在唤醒后立即发送的 GCODE 命令。我可以失去微步,

我正在从通过人机界面提供 GCode 的上游设备“控制”GRBL。我可以在那里开发一个空闲时间计时器,当触发时,向 GRBL 发送命令以禁用。我想我可以使用“Sleep/$SLP”命令来关闭电机。这很好,但我不需要重新启动来重新打开它们。

另外,为什么要使用 Ctrl-X 进行重置?我很感激使用文本命令(与 CTRL F 相比)来“唤醒”(重置)设备,因此我不必发送“Ctrl-X”,因为某些终端设备不允许使用该字符(通用 Gcode发件人一)。打开和关闭步进电机电源是否需要完全“睡眠”?我阅读了上一期,其中建议弯曲一些引脚,以便可以连接启用引脚上的开关。如果您不使用 CNC 屏蔽板,是否有必要使用更大的驱动程序?

当然有更好的方法来表示启用/禁用?特别是对于像 Gecko 201 这样的大型驱动程序。我可以从发送 GCODE 的上游控制设备控制引脚、继电器,但我需要一种通过 GRBL 进行通信的方法来关闭(编辑:并重新打开)电机。理想情况下无需重新启动/重置即可打开,尽管对于后者,更简单的 $ 命令重置将不胜感激。

一开始我认为 1 美元的超时值很棒。但后来我发现 254 毫秒是最大延迟,对我的目的毫无用处。由于惯性原因,我想保持稳定几秒钟,这样我就不会失去整个步骤。但在那之后它可以“跛行”,等待下一步行动。我希望能够将延迟设置为 10,000 毫秒(10 秒)。

也许我错过了一些明显的解决方案或误解了一个细节,感谢任何解决方法/解决方案的帮助。

步进器的电源控制,重新访问 #1674

如果您可以忍受它在延迟期间没有响应,只需更改 stepper.c 中的第 224 行

步进器的电源控制,重新访问 #1674

“我有一个只有 XY 的应用程序,我需要能够关闭步进器的保持电流”
为什么?为什么步进器不能保持供电?一个明确的答案可能会帮助您找到正确的解决方案。

步进器的电源控制,重新访问 #1674
作者

格格雷 评论 2020 年 10 月 13 日  

为什么?为什么步进器不能保持供电?一个明确的答案可能会帮助您找到正确的解决方案。

他们当然可以,但我将使用可能有 90% 的时间处于空闲状态的大电流步进电机。锁定台阶不是问题,对我来说,坐在那里可能连续几个小时拉很多电流是一个问题。如果没有其他原因浪费电源和电力。但用户也不会喜欢它。我可以,(如果我解决了这个问题,很可能会)在最近的用户暂停后将保持电流保持几分钟。但如果它闲置一段时间就关闭。这不是一个CNC路由器,这种行为没有意义,它完成了工作然后退出。我的应用程序有间歇性、主动使用。

步进器的电源控制,重新访问 #1674

如果您可以忍受它在延迟期间没有响应,只需更改 stepper.c 中的第 224 行

我不跟。感谢您的详细说明。我看到了 st_wake_up 函数,我看不出更改它的名称会有什么帮助。也许你的意思是别的。

步进器的电源控制,重新访问 #1674

第 224 行是禁用步进器之前的延迟

步进器的电源控制,重新访问 #1674

第 224 行是禁用步进器之前的延迟

我的 stepper.c (grbl-1.1h.20190825) 上的第 224 行是:
void st_wake_up()

步进器的电源控制,重新访问 #1674

如果您使用的是 1.1,为什么要在 0.9 的存储库中发布?

https://github.com/gnea/grbl/blob/master/grbl/stepper.c第262行

步进器的电源控制,重新访问 #1674

连接冷却液引脚 (A3) 并使用 M8/M9 从您的程序切换步进控制器启用引脚。切换引脚 A3 之前的 G4Px 延迟会在禁用之前提供您的时间延迟吗?只是一个想法。

步进器的电源控制,重新访问 #1674
作者

格格雷 评论 2020 年 10 月 13 日  

如果您使用的是 1.1,为什么要在 0.9 的存储库中发布?

https://github.com/gnea/grbl/blob/master/grbl/stepper.c第262行

因为我是一个 git dummy,对不起。无论如何,谢谢你纵容我。

我认为我不能只是将延迟值更改为相对较长的时间(例如 5 分钟),而不会在某处搞砸中断。最大为 255,我假设这是分配的单个字节,它必须更大才能获得更大的值。

步进器的电源控制,重新访问 #1674

连接冷却液引脚 (A3) 并使用 M8/M9 从您的程序切换步进控制器启用引脚。切换引脚 A3 之前的 G4Px 延迟会在禁用之前提供您的时间延迟吗?只是一个想法。

我喜欢这个建议的声音。请允许我提出一个愚蠢的问题。触发启用/禁用将释放电机,对吗?保持电流 ($1=255) 将停止,直到使能引脚翻转回启用?不会导致控制器重置?

获得 OT 但不确定 CNC 屏蔽板是否允许我进行测试,这就是另一个问题正在讨论的问题,有人说引脚必须弯曲,但不确定他们的意思。

步进器的电源控制,重新访问 #1674

现在有点超出我的工资等级,但是使用冷却液销来控制步进器启用功能应该对 1 美元 = 255 美元的设置没有影响——我认为将其保持在 255 美元。我建议您查看步进驱动程序的文档,了解切换启用引脚时步进电源会发生什么情况。切换冷却液销时不应发生控制器重置,否则将毫无价值。

用电压表轻松测试引脚 A3。我认为不需要弯曲销钉?如果您的 CNC 屏蔽板没有可用的引脚 A3(我的 gShield 板没有),则直接连接到 Uno 板本身。???

步进器的电源控制,重新访问 #1674

现在有点超出我的工资等级,但是使用冷却液销来控制步进器启用功能应该对 1 美元 = 255 美元的设置没有影响——我认为保持在 255 美元。我建议您查看步进驱动程序的文档,了解切换启用引脚时步进电源会发生什么情况。切换冷却液销时不应发生控制器重置,否则将毫无价值。

用电压表轻松测试引脚 A3。我认为不需要弯曲销钉?如果您的 CNC 屏蔽板没有可用的引脚 A3(我的 gShield 板没有),则直接连接到 Uno 板本身。???

收到了。谢谢。“备用”冷却剂控制应该是可行的 IO 路径。我的控制设备可以发出 Gcode 并确定理想的空闲时间。同意,那么我可以留下 1=255 美元,所以它一直处于暂停状态,直到/除非通过启用控制被告知要进入睡眠状态。这假设启用(禁用)引脚关闭了电机的电流。那个,我很模糊。现在调查。

步进器的电源控制,重新访问 #1674

在我的 32 位端口中,我更改了“进入空闲”延迟以注册回调到一个函数,该函数在延迟到期时禁用电机。如果在延迟期间重新开始运动,则取消回调。8位的可行选择吗?

步进器的电源控制,重新访问 #1674

在我的 32 位端口中,我更改了“进入空闲”延迟以注册回调到一个函数,该函数在延迟到期时禁用电机。如果在延迟期间重新开始运动,则取消回调。8位的可行选择吗?

这听起来像是一个很好的解决方案,尽管实施起来有点超出我的技能水平。任何指针?我在 Arduino Uno FWIW 上运行 GRBL。如果可以解决问题,我愿意升级该硬件。你能详细说明或分享细节吗?

步进器的电源控制,重新访问 #1674

任何指针?

你可以在这里找到我的港口。延迟的设置值仍被限制为最大 255 毫秒,但我认为没有理由不取消此限制 – 这是将延迟变量从 8 位更改为 16 位的问题。

我在 Arduino Uno FWIW 上运行 GRBL。

然后可以使用Nucleo-64 板,我有 STM32F4xx 处理器的驱动程序 – 对 STM32F446 的支持已准备好提交到 github。请注意,这些处理器在 3.3V 下运行 – 您已确保屏蔽可用于此。

受支持的处理器范围的顶部是在 Teensy 4.x 板上找到的 iMRXT1062 @ 600MHZ。

你能详细说明或分享细节吗?

更多详细信息可在 github 页面上找到,

步进器的电源控制,重新访问 #1674

terjeio:这看起来令人印象深刻,但实施超出了我的技能范围。我需要更多的手持/操作方法来实施,而不是对我来说显而易见。唉,使用 Arduino 有足够的虚拟指南,而使用 GRBL 则非常简单。不过,我确实喜欢你的港口的声音。

喜欢 (0)

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