开源改变世界

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

推推 grbl 2年前 (2023-01-23) 122次浏览

打开
thomasveit 打开了这个问题 2015 年 10 月 12 日 · 26条评论
打开

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

thomasveit 打开了这个问题 2015 年 10 月 12 日 · 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年没有维护了)

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

轻松的司机?
模型链接?

我建议在需要时调低电流,以免过早升温。
(你也可能想要安装更大的散热器或风扇)

步进电机仅保持扭矩,但不移动 #815
贡献者

您是否 100% 确定电机接线正确?大部分此类问题都是由于接线不正确造成的。

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

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

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

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

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

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

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

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

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

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

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

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

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

好的,当我下班回家时,我今天会尝试这个,如果它有效或无效,请提供反馈。

PS:我也只是使用“sketch”,因为它是这个的官方名称。我是 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:我也只是使用“sketch”,因为它是这个的官方名称。
我是 Java 开发人员,对我来说每个“草图”都是一个自己的“项目”或简单的
“源文件”。


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

Com os melhores cumprimentos,
Vinicius Silva

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

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

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

另外,尝试:G1 X10 F1270。

不知道是不是所有版本的GRBL都有默认的feed rate设置,最新的版本没有,所以需要一个Fx命令来测试一下。

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

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

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

貌似你回复错帖了。。。

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

只有三个解决方案:

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

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

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

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

这将在空闲时禁用驱动程序,但请注意,如果没有电源,电机可能会在适当的情况下漂移,例如,如果电源关闭并且 gibs 有点松动,我的轧机上的 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
(步进端口反转掩码:00000000)
$0 = 10(步进脉冲,usec)
$1 = 25(步进空闲延迟,毫秒)
$2 = 0(0000000)
$4 = 0(步进启用反转,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 accel, mm/sec^2)
$102 = 25^2) (Z-axis travel resolution, step/mm)
$122 = 10.000 (z accel, mm/sec^2)
$130 = 200.000 (x max travel, 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 板。

提前致谢。
– 问候
Gururaj

步进电机仅保持扭矩,但不移动 #815
whitetd 评论了 2020 年 3 月 25 日 通过电子邮件
步进电机仅保持扭矩,但不移动 #815

谢谢小白的回复。我确定我会为电路板选择 Arduino Nano。我在这里要问的是,如果我们对任何 grbl 文件(如 *.h 文件)进行更改,Android Studio 会在编译 grblUpload 项目时将其拾取。生成的 hex 文件是否包含我们的更改并闪存到目标板。事实上,我还有另一个带有 grbl 0.9 的纳米板。如果我将它插入 CNC 屏蔽,一切正常。

步进电机仅保持扭矩,但不移动 #815
whitetd 评论了 2020 年 3 月 25 日 通过电子邮件
步进电机仅保持扭矩,但不移动 #815
古拉杰卡希卡尔 评论了 2020 年 3 月 25 日  

大家好,

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

解决方案 :

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

谢谢大家。

问候,
大师

喜欢 (0)