开源改变世界

支持分立式步进驱动器和 H 桥 #56

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

关闭
nullsub 打开了这个问题 2012 年 2 月 4 日 · 18条评论
关闭

支持分立式步进驱动器和 H 桥#56

nullsub 打开了这个问题 2012 年 2 月 4 日 · 18条评论

注释

支持分立式步进驱动器和 H 桥 #56

嗨,
我目前正在使用带有 2 个 ULN2003 晶体管阵列(每个步进器)的 grbl。
步进器像这样连接http://ssecganesh.blogspot.com/2008/05/driving-stepper-motor-using-uln2003.html
我也用 L293D H 桥测试了我的代码,它运行良好。这可以降低 grbl 步进驱动板的价格。

这个功能在 grbl 中受欢迎吗?它需要一个配置选项来决定是编译步进驱动程序还是编译 H 桥代码。
谢谢

支持分立式步进驱动器和 H 桥 #56
成员

有趣的!看到 grbl 被砍成碎片来支持和做不同的事情真是太棒了。但是,目前,随着所有的开发工作的进行,很难支持所有的东西。当代码库稳定在 v1.0 时(希望到夏天),事情可以开始向前发展,支持不同的东西。

最主要的是确保它适用于特定架构,我们或其他人必须拥有硬件并对其进行测试和支持。我不知道使用 Github 的 fork 是否是一个好方法。我认为开始讨论我们或其他人如何管理将 grbl 与其他硬件一起使用并仍然保持连贯性是个好主意。也许按照社区支持的网站/wiki 的方式设置一些东西,人们可以在其中发布他们的技巧和流程。

支持分立式步进驱动器和 H 桥 #56
成员

另外,当您说价格较低的 grbl 板时。Pololu 和 easydriver 步进电机驱动器每个大约 12-15 美元。这会更便宜和/或更强大吗?

支持分立式步进驱动器和 H 桥 #56
作者

我知道目前将太多(未使用的)东西放入 grbl 不是一个好主意。我想我会在 wiki 中添加一条注释。
uln2003 晶体管阵列(如果像我一样背负使用)可以在高达 36V 的电压下驱动 1.2 安培,但它没有电流限制(这通常是个问题)。它肯定更便宜,因为一个 uln2003 的成本约为 0.5 美元。
我估计 3 轴驱动板的价格为 5 美元

支持分立式步进驱动器和 H 桥 #56
成员

我还使用 grbl 来位爆炸 H 桥以较低的速度运行步进器。我的经验是它工作得很好,而且比简单的驱动程序更可靠(至少我的,我遇到过一些噪音问题)。我同意这对于 wiki 来说是一个不错的小东西,也许粘贴了修改后的代码?

支持分立式步进驱动器和 H 桥 #56
贡献者

我们应该把它移到维基吗?

支持分立式步进驱动器和 H 桥 #56

我如何将 grbl 与 arduino mega 2560 和 uln2003 步进驱动器一起使用?

支持分立式步进驱动器和 H 桥 #56

这个想法被放弃了吗?我在维基上没有发现这个。

支持分立式步进驱动器和 H 桥 #56

我也有兴趣修改代码以将 ULN2003 与 Mega2560 一起使用……有人这样做了吗?

支持分立式步进驱动器和 H 桥 #56

就个人而言,使用步进驱动器的优势远远超过
使用分立元件的优势,成本差异与
代码变化的复杂性,一个是 mega,然后必须管理微步进
控制并为每个步进使用 4 个引脚。
特里·怀特

在 2014 年 8 月 23 日星期六下午 5:20,hipatetik notifications@github.com写道:

我也有兴趣修改代码以将 ULN2003 与 Mega2560 一起使用……
有人这样做了吗?


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

支持分立式步进驱动器和 H 桥 #56

大家好。

我真的很感激任何地方都有任何代码,这样我就可以让我的机器运行了。我凭直觉“设计”了它,最终在类似的问题上苦苦挣扎。后来我发现 grbl 是为了在步进/方向上驱动步进器而不是时钟相位方式。

我想将其构建为概念证明,这样我就可以学习和实践足够的知识,以构建更好更大的模型。

支持分立式步进驱动器和 H 桥 #56
支持分立式步进驱动器和 H 桥 #56
支持分立式步进驱动器和 H 桥 #56

就我个人而言,我不知道确切的原因,但我听说一些关于 L298N 上缺乏电流感应的问题,显然可以通过替换为 easydriver(或类似的东西)来解决,添加 L297 IC 进行编码/解码(不确定是否正确)这里的词)从 4 针相位时钟到步进/方向的信号。我也听说过并阅读过以这种方式工作的早期版本的 grbl,但我在 GitHub、Google 搜索和 IRC 上尽可能多地挖掘了该代码,但找不到任何线索。

有一段机器运行硬编码的视频。:(
http://youtu.be/r4sJaOgYkec

如果可能,请提供给我们。

谢谢,

支持分立式步进驱动器和 H 桥 #56

有一个使用 Arduino UNO 使用 ULN2003 或任何其他晶体管阵列的 grbl 0.7 版本,但没有限制开关或电流限制。但是,我认为这可以使用具有更多引脚的 Mega2560 来解决,但我刚刚找到了一个仅具有 STEP/DIR 的 Mega2560 的 GRBL 0.8 版本……也许是具有 GRBL 0.8 的 Mega2560,具有晶体管阵列和限制引脚。 ..有趣,至少对我而言!我正在尝试“合并”这些东西……

支持分立式步进驱动器和 H 桥 #56

有谁知道这个故事是如何结束的(如果结束的话)?我正在尝试查找有关如何将 grbl 与 ULN 一起使用的一些信息,但似乎最近没有人对此进行过研究……但我也没有找到有关有人谈论的能够做某事的先前版本的信息。
谢谢。

支持分立式步进驱动器和 H 桥 #56

这很容易,但是需要 4 个引脚而不是 2 个引脚,并且可能也需要启用
pwm
引脚以便在 pwm 中使用更高的电压。

2015-02-27 20:25 GMT,Daniele Pasciuto notifications@github.com

有谁知道这个故事是如何结束的(如果结束的话)?我正在尝试查找
有关如何将 grbl 与 ULN 一起使用的一些信息,但似乎
最近没有人在这方面工作过……但我也没有找到有关有人
谈论的能够做某事的先前版本的信息。
谢谢。


直接回复此邮件或在 GitHub 上查看:
#56(评论)

支持分立式步进驱动器和 H 桥 #56

http://arduino.cc/en/Reference/StepperUnipolarCircuit
用于 3 轴步进器,您可以使用六角反相器 ic 代替,然后
您只需要
两个 uln 而不是 3 个并且没有电阻器。另外 4 uln 是免费的,或者如果
使用 uln2003 2 uln 是
免费的,您可以将其用于 relais。
序列为:
Step C0 C1
1 0 0
2 0 1
3 1 1
4 1 0
其中C0为dir,C1为step pin
STEP_PULSE_DELAY必须注释掉

您必须更改此代码:
if (st.counter_x > st.exec_block->step_event_count) {
st.step_outbits |= (1<<X_STEP_BIT);
st.counter_x -= st.exec_block->step_event_count;
如果 (st.exec_block->direction_bits & (1<<X_DIRECTION_BIT)) {
sys.position[X_AXIS]–; }
else { sys.position[X_AXIS]++; }
}
为此,对于其他两个轴也用 Y 和 Z 代替
X

st.counter_x -= st.exec_block->step_event_count;
如果 (st.exec_block->direction_bits & (1<<X_DIRECTION_BIT)) {
#ifdef UNIPOLAR
uint8_t t; t=STEP_PORT;// 假设 STEP==DIRECTION PORT
位假(st.dir_outbits,位(X_DIRECTION_BIT));
bit_false(st.step_outbits,位(X_STEP_BIT));
if(bit_false(t,bit(X_DIRECTION_BIT)))
bit_true(st.dir_outbits,bit(X_STEP_BIT));
if(bit_true(t,bit(X_STEP_BIT)))
bit_true(st.dir_outbits,bit(X_DIRECTION_BIT));
#endif
sys.position[X_AXIS]–;
}
else {
#ifdef UNIPOLAR
uint8_t t; t=STEP_PORT;// 假设 STEP==DIRECTION PORT
bit_false(st.dir_outbits,bit(X_DIRECTION_BIT));
bit_false(st.step_outbits,位(X_STEP_BIT));
if(bit_false(t,bit(X_STEP_BIT)))
bit_true(st.dir_outbits,bit(X_DIRECTION_BIT));
if(bit_true(t,bit(X_DIRECTION_BIT)))
bit_true(st.dir_outbits,bit(X_STEP_BIT));
#endif
sys.position[X_AXIS]++;
}
}

在DIRECTION_PORT =的每一行上,
你应该将它包含在
#ifndef UNIPOLAR
DIRECTION_PORT =
#endif
中,除了 st_reset() 中的代码
当然不要反转 step 和 dir 引脚。

这应该足够了。

2015-02-27 20:39 GMT,Cri S phone.cri@gmail.com

这很容易,但是需要 4 个引脚而不是 2 个引脚,并且可能也需要启用
pwm
引脚以便在 pwm 中使用更高的电压。

2015-02-27 20:25 GMT,Daniele Pasciuto notifications@github.com

有谁知道这个故事是如何结束的(如果结束的话)?我正在尝试
查找
有关如何将 grbl 与 ULN 一起使用的一些信息,但似乎最近没有人对此进行

研究……但我也没有找到有关有人
谈论的能够做某事的先前版本的信息。
谢谢。


直接回复此邮件或在 GitHub 上查看:
#56(评论)

支持分立式步进驱动器和 H 桥 #56

ygornac,你有没有让它工作过?你的设置看起来和我的一样,我想知道你是否设法使用 GRBL 得到它。如果有效的话会很酷。

支持分立式步进驱动器和 H 桥 #56

@cri-s那个电路太可怕了,你必须在非常低的电压下运行它并且速度慢到无用,或者调高电压并让晶体管在几秒钟内自毁

大多数步进电机都是几欧姆,需要恒流驱动,电源电压超过几伏,并且需要高压恒流驱动,否则它们会非常慢。

支持分立式步进驱动器和 H 桥 #56

嗨,有些人使用其他 arduino 制作 uln2003 驱动程序以具有 STEP、DIR 行为。
这是一个很好的解决方案。
对于两个轴:
https
://github.com/latonita/SoftwareStepDirUnipolarDriver/blob/master/SoftwareStepDirUnipolarDriver.ino#L46 对于树轴:
latonita/SoftwareStepDirUnipolarDriver@ 3b91208

支持分立式步进驱动器和 H 桥 #56
whitetd 评论了 2020 年 3 月 28 日 通过电子邮件
喜欢 (0)