开源改变世界!!

步进器只保持扭矩,但不移动 #815

推推 grbl 2年前 (2022-10-27) 137次浏览 0个评论
打开
thomasveit 打开了这个问题 on 12 Oct 2015 · 26 条评论
打开

步进器仅保持扭矩,但不移动#815

thomasveit 打开了这个问题 on 12 Oct 2015 · 26 条评论

注释

步进器只保持扭矩,但不移动 #815

你好,
我有一个问题,希望你能帮助我。
我正在构建自己的 CNC Maschine 并从此链接使用 GRBL 0.8 库https://github.com/Protoneer/GRBL-Arduino-Library

现在我已经将我的一个带有步进销的简易驱动程序连接到 Arduino 引脚 2 和方向引脚到 arduino 引脚 5。所有其他电缆都已正确连接。

如果我使用自己的草图,步进器会移动,一切都很好。但是如果我使用 grbl 步进器只能保持扭矩并且不会移动。我是 CNC 技术的新手,我使用 G 代码命令“G91 X10”来测试步进运动,但它只能保持静止,easydriver 变得越来越热。

请你帮助我好吗?我不知道它有什么问题。也许必须更改配置?有没有办法通过配置禁用保持扭矩,所以如果它在我测试时没有燃烧?

亲切的问候
托马斯

步进器只保持扭矩,但不移动 #815

试试:G1 X10。
G91 不是移动指令。

步进器只保持扭矩,但不移动 #815

嗨,
我也试过这个命令,没有任何反应。

我必须连接启用/禁用步进引脚吗?因为在我的测试草图中,这不是必需的。

亲切的问候
托马斯

步进器只保持扭矩,但不移动 #815

那是 Protoneer 的 GRBL 库,而不是 GRBL G 代码解析器。
有一点区别(比如3年没维护过)

你有什么方法可以验证“Step”引脚上是否有任何脉冲?

易司机?
模型链接?

我建议在你需要它之​​前把电流调低,这样它就不会过早升温。
(您也可能需要安装更大的散热器或风扇)

步进器只保持扭矩,但不移动 #815
贡献者

精英工程师 评论 on 12 Oct 2015

您是否 100% 确定您已正确连接电机?大多数此类问题是由于接线错误造成的。

使用万用表检查电线的电阻(不要使用颜色编码,因为不同的电机制造商使用不同的颜色编码)。

您不必连接启用/禁用引脚,因为大多数驱动程序都已启用=LOW,请查看该驱动程序的数据表。

步进器只保持扭矩,但不移动 #815

所以步进器连接正确。因为如果我使用自己的草图,我用针脚 2 转动步进器,用针脚 5 转动步进器,它可以毫无问题地工作。只有 grbl 软件会出问题。我使用这个库是因为直到现在我只使用我的 arduino mega 的 arduino IDE,我不确定 grbl 是否会覆盖普通的 arduino 引导加载程序,有时我可能需要 Arduino 用于其他项目。

驱动器是带有 A3967 IC 的 EasyDriver v4.4
步进电机是 42BYGHW609

我还检查了所有连接的电阻等等,正如你在我自己的草图中看到的那样,步进电机转动正确。

我已经有一个风扇躺在这里,只需将其连接到我的内置电路板即可。到目前为止,我只连接了大约 30 秒,因为没有步进电机转动。我此时也只连接了一个步进器,以找出它不工作的原因。我的电路板是这样设计的,因此我可以弹出我的 EasyDriver 来更改它们或禁用轴。

步进器只保持扭矩,但不移动 #815

easydriver 的供应商应该很有趣。我有这些版本 4.4:http ://www.schmalzhaus.com/EasyDriver/

步进器只保持扭矩,但不移动 #815

您知道 EasyDriver 的电流不会超过 750mA,而您列出的 NEMA17 可能需要高达 1.7A 的电流,具体取决于应用。

如果您自己的代码似乎可以工作,但 GRBL 库代码却不行,我会说问题出在代码中。
(请注意;我绝对讨厌以这种方式使用“草图”这个词……我想对决定这样做的人做一些无法形容的事情)
我建议改为下载 GRBL 0.9,然后尝试一下。

步进器只保持扭矩,但不移动 #815

好的,当我下班回家时,我今天会试试这个,如果它有效,请给出反馈。

PS:我也只是使用“草图”,因为它是这个的正式名称。我是 Java 开发人员,对我来说,每个“草图”都是一个自己的“项目”或简单的“源文件”。

步进器只保持扭矩,但不移动 #815

愚蠢的问题,但是,您是否先用 $X 解锁了 GRBL?

https://github.com/grbl/grbl/wiki/Interfacing-with-Grbl

2015-10-12 11:31 GMT+01:00 Thomas Veit notifications@github.com :

好的,当我下班回家时,我今天会试试这个,如果它
有效,请给出反馈。

PS:我也只是使用“草图”,因为它是这个的正式名称。
我是 Java 开发人员,对我来说,每个“草图”都是一个自己的“项目”或简单的
“源文件”。


直接回复此电子邮件或在 GitHub
#815(评论)上查看。

Com os melhores cumprimentos,
维尼修斯席尔瓦

步进器只保持扭矩,但不移动 #815

不,我没有,因为正如我所说,我是新手,不知何故我从来没有发现我必须发送这个命令:)

步进器只保持扭矩,但不移动 #815

另外,试试:G1 X10 F1270。

我不知道是否所有版本的 GRBL 都设置了默认进给率,但最新版本没有,因此需要 Fx 命令进行测试。

步进器只保持扭矩,但不移动 #815

默认进给速度应为 F=0。所以你需要一个带有 G1 命令的进给率。另一个问题是您使用的是什么接口,您是否设置了正确的波特率。有时您可能会在波特率设置错误的情况下建立连接,但计算机和 Arduino 无法相互理解。你用什么接口来发送命令?

步进器只保持扭矩,但不移动 #815

看来你回复错帖了。。。。

握持时过热。
这是因为驱动器在握住时向电机提供的功率比移动时更多,这也导致驱动器本身消耗更多的功率(和更多的热量)。
(实际上,它提供相同的电流,但现在它是连续的,而不是短脉冲)

对此只有三种解决方案:

  1. 尽可能减少电流,
  2. 添加散热器和/或风扇。
  3. 机器静止时禁用驱动程序。
步进器只保持扭矩,但不移动 #815

有没有办法在无事可做的情况下禁用驱动程序?也许使用启用/禁用引脚?如果是这样,那么 grbl 是否会在开始命令之前和完成之后自动设置此引脚?

步进器只保持扭矩,但不移动 #815

您必须连接启用引脚,然后设置 $2=(小于 255)

这将在空闲时禁用驱动程序,但请注意,在没有电源的情况下,电机可能会在适当的情况下漂移,例如,如果电源断开并且齿轮有点松动,我的铣床上的 Z 轴会慢慢降低头部。 . 不确定简单的驱动器,但许多步进驱动器都有空闲电流减少,与运行相比,它们在空闲期间进入较低的功率输出状态。这里的优点是电机仍然始终有一些电力,以便它们可以保持其位置。

步进器只保持扭矩,但不移动 #815

您的驱动程序是否真的过热或只是加热。

在正常操作中,这些驱动器会变热(摸起来很热),但如果你不从它们那里汲取太多电流(这个驱动器的电流超过 750mA),它们会很高兴地运行一整天。

我认为这些芯片具有热保护功能(大约 165 摄氏度),因此如果它们过热,它们就会切断,直到它们冷却下来。我已经设法让驱动程序进入热关机几次,从驱动它们到硬,但它们都幸存了下来。

散热器有帮助而且很便宜。

减少电流有很大帮助。仅仅因为驱动器可以输出一定的电流并不意味着您实际上需要该量的电流来移动/保持步进器。

这一切都取决于您对 CNC 的用途以及您推动它的力度。

步进器只保持扭矩,但不移动 #815

他们只是变热了。到目前为止,我已经用最新的 0.9 版本的 GRBL、Arduino UNO 而不是我的 MEGA 解决了所有问题,并在我的接口板上使用了铜散热器和一个大风扇。所以非常感谢大家的帮助。你太棒了:)

欢呼
托马斯

步进器只保持扭矩,但不移动 #815

@thomasveit您介意分享您为使 GRBL 正常工作所做的工作吗?我的电机保持扭矩但不工作,我处于同样的情况。

步进器只保持扭矩,但不移动 #815

我也挣扎了一段时间。
使用 Arduino Duemilanove,protoneer cnc shield v3,grbl 0.9。

最初电机会保持扭矩,但当它应该移动时,它正在失去扭矩,然后会移动并重新获得扭矩。

解决方法是:跨过屏蔽上的 grnd/en 引脚,并确保 $4=0。

现在它像魅力一样工作。

这是我的设置转储:

`Grbl 0.9j [‘$’ 寻求帮助]

$$
$G
(step port invert mask:00000000)
$0 = 10 (step pulse, usec)
$1 = 25 (step idle delay, ms)
$2 = 0 (0000000)
$4 = 0 (step enable invert, bool)
$3 = 0 (dir port invert mask:0vert, bool)
$6 = 0 (probe pin invert, bool)
$10 = 3 (status report mask:00000011)
$11 = 0.010 (junction deviation, mm)
$5 = 0 (limit pins in02 (arc tolerance, mm)
$13 = 0(报告英寸,布尔值)
$12 = 0.0ft(限制,布尔值)
$21 = 0(硬限制,布尔值)
$20 = 0(唯一,布尔值)
$23 = 0(归位目录反转掩码:00000000)
$22 = 0(归位周期(归位进给,mm/min)
$25 = 500.000(归位寻道,mm/min)
$24 = 25.000=250(归位去抖动,毫秒)
$27 = 1.000(归位拉断,mm)
$100 = 250.000(x,步长/mm)
$101 = 250.000(y,步长/mm)
$260.000 (z, step/mm)
$110 = 500.000 (x max rate, mm/min)
$111 = 500.000 (y max rate, mm/min)
$112 = 500.000 (z max rate, mm/min)
$120 = 10.000 (x 加速度,mm/sec^2)
$102 = 25^2)(Z 轴行程分辨率,步长/mm)
$122 = 10.000(z 加速度,mm/sec^2)
$130 = 200.000(x 最大行程,mm)
$131 = 200.000(y 最大行程,mm)
$121 = 10.000(y 加速度,mm/sectravel,mm)`

步进器只保持扭矩,但不移动 #815

希望这会对某人有所帮助:
我遇到了类似的问题。发动机保持扭矩,发出噪音,摇晃但不旋转。
原来我用的是现成的电机电缆(两边都有插头)。
原来电线是:(从我的引擎出来)a1,a2,b1,b2,
但是屏蔽顺序是a2,a1,b1,b2 – 我切换电线并且一切正常。

步进器只保持扭矩,但不移动 #815

我正在使用带有 Arduino nano 的 cnc shield v4。在我的情况下,步进销连接到方向销,反之亦然。我通过以编程方式切换它解决了这个问题grbl/cpu_map/cpu_map_atmega328p.h(在评论中留下他们的原始值):

// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
#define STEP_DDR        DDRD
#define STEP_PORT       PORTD
#define X_STEP_BIT      5  // Uno Digital Pin 2
#define Y_STEP_BIT      6  // Uno Digital Pin 3
#define Z_STEP_BIT      7  // Uno Digital Pin 4
#define STEP_MASK       ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits

// Define step direction output pins. NOTE: All direction pins must be on the same port.
#define DIRECTION_DDR     DDRD
#define DIRECTION_PORT    PORTD
#define X_DIRECTION_BIT   2  // Uno Digital Pin 5
#define Y_DIRECTION_BIT   3  // Uno Digital Pin 6
#define Z_DIRECTION_BIT   4  // Uno Digital Pin 7
#define DIRECTION_MASK    ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
步进器只保持扭矩,但不移动 #815

我正在使用带有 Arduino nano 的 cnc shield v4。在我的情况下,步进销连接到方向销,反之亦然。我通过以编程方式切换它解决了这个问题grbl/cpu_map/cpu_map_atmega328p.h(在评论中留下他们的原始值):

// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
#define STEP_DDR        DDRD
#define STEP_PORT       PORTD
#define X_STEP_BIT      5  // Uno Digital Pin 2
#define Y_STEP_BIT      6  // Uno Digital Pin 3
#define Z_STEP_BIT      7  // Uno Digital Pin 4
#define STEP_MASK       ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits

// Define step direction output pins. NOTE: All direction pins must be on the same port.
#define DIRECTION_DDR     DDRD
#define DIRECTION_PORT    PORTD
#define X_DIRECTION_BIT   2  // Uno Digital Pin 5
#define Y_DIRECTION_BIT   3  // Uno Digital Pin 6
#define Z_DIRECTION_BIT   4  // Uno Digital Pin 7
#define DIRECTION_MASK    ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits

嗨,kot9pko,

我也观察到了。在我的“Cnc nano shield V4”中使用 DRV8825 驱动程序交换了 Dir 和 Step 引脚。我按照您在 cpu_map_atmega328p.h 文件中的建议进行了修改。
打开 Arduino Studio -> 导航到 grblUpload 示例,编译并上传到 Nano。但问题并没有消失。如何确保在 cpu_map_atmega328p.h 中所做的更改实际上已写入 Arduino Nano 板。

提前致谢。 -问候
古鲁拉杰

步进器只保持扭矩,但不移动 #815
步进器只保持扭矩,但不移动 #815

谢谢白的回复。我确定我选择了 Arduino Nano 作为开发板。我在这里要问的是,如果我们对任何 grbl 文件(如 *.h 文件)进行更改,Android Studio 会在我们编译 grblUpload 项目时拾取它。生成的十六进制文件是否会包含我们的更改并刷新到目标板。事实上,我还有另一个 grbl 0.9 的纳米板。如果我将它插入 CNC 防护罩,一切正常。

步进器只保持扭矩,但不移动 #815

古鲁拉卡希卡尔 评论 2020 年 3 月 25 日  

大家好,

我找到了一种方法来知道我所做的更改是否被采纳。这个想法是故意在 .c 或 .h 文件中输入一些错误的条目。就我而言,我将文本“Gururaj”写入 cpu_map_atmega328p.h 文件的随机行。然后,当我在 Arduino IDE 中编译时(对不起,我在之前的帖子中提到过这个是 Android Studio。)我没有看到任何错误。这表明它没有选择我保存在 C:\Mydir\grbl-master\grbl 的修改文件

解决方案 :

  1. 在 Arduino IDE 中,在“草图”菜单下,单击“显示草图文件夹”。这将我带到了另一个目录,如下所示。
    C:\Users\Lenovo\Documents\Arduino\libraries\grbl
  2. 我在此目录下的 cpu_map_atmega328p.h 中进行了所有更改(包括错误行)。
  3. 当我尝试编译时,从插入“Gururaj”文本的行开始,我可以看到很多错误。
  4. 删除错误行,在 Arduino IDE 中重新编译 grblUpload 项目,生成 hex 文件。
  5. 将程序/十六进制文件上传到 Arduino Nano,一切正常。

谢谢大家。

问候,
大师

喜欢 (0)

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