注释
额外的想法:由于速度不必改变太快,I2C DAC 应该足以驱动 VFD 上的 0-10V 输入。 所有形式的 PWM 都需要一个额外的计时器,IIRC,我们没有留下。 另外,我确定您指的是“S”而不是“F”(F 是进给,S 是速度);-) |
我不确定你所说的充分论证是什么意思。如果您在谈论雕刻机和主轴同步线程,他的问题是将每个主轴脉冲与一定的步数同步。这很困难,但是像您所说的那样可以为您的特定机器做一些事情。 需要做的就是设置 Arduino (Timer1) 中的最后一个可用时间作为主轴控制.c 中的 CTC 倒数计时器。每当启用主轴时,计时器就会开始计时,以所需的速率倒计时。每次触发时,它都会翻转所需的主轴速率销(主轴方向可以正常工作)。你基本上有PWM。唯一的问题是这不应该有高 PWM 频率。这可能会导致步进算法出现故障,正如 Simen 曾在尝试增加 PWM 主轴速度时提到的那样,但在您的 10Hz 下应该没问题。 |
这是我如何为 ppm 做的一个例子:https ://github.com/tmpvar/grbl/blob/ppm-spindle/spindle_control.c |
很酷@tmpvar. 当我有时间时,我必须将它添加到 Grbl 中,可能作为编译时选项。看起来非常有效。 |
@chamnit谢谢你! 我认为将常量移出 |
如果 timer1 可用并且主轴启用可以移动到输出比较引脚之一,(我相信是 PB1/PB2) |
我想尝试硬件 PWM 没有问题。我不知道 Simen 在尝试安装 PWM 以进行主轴速度控制时遇到的确切问题。我很好奇这是否有效。我们将不得不按照您所说的交换一些接线,以适应您所说的引脚 9 和 10。我们可能需要保持旧引脚的向后兼容性,并将其作为编译时选项执行,如果它有效. |
很抱歉这个愚蠢的问题,但是您的工作是否有一个分支或其他一些使用 PWM 作为主轴的开发? 除了适用于 XYZ 轴的步进器之外,我们的工具头是一个便宜的小型 RC 伺服电机(沿轴移动螺栓),我希望重用一些比我自己的更熟练的代码:) |
感谢您的提示,tmpvar 似乎使用 0.7fork,我不确定他的意图到底是什么,但看起来也像方向销上的脉冲。我们的伺服电机需要 50hz 左右的 1ms – 2ms 脉冲(0 – 180° 运动)。因此,我猜想根据最后一个 M0/M3 命令设置 Timer1 以进行脉冲处理将适合我们的需求。当我刚刚进入 C++ 时,你能提示我在哪里最好地查看当前分支吗? |
@maldex我的意图是为遥控直升机使用 bldc 作为主轴。我的代码基于 master(0.9 版本)并与一个爱好 esc 一起使用。 |
@tmpvar:听起来很有希望,因为我不仅是 CNC 菜鸟,而且对 github 也是新鲜的,我想我看错地方了……你能快点告诉我在哪里可以找到你的叉子吗?嘿酷,非常感谢 |
在考虑了一段时间之后……是否值得实施 I2C 来扩展 GRBL 的功能? 我做了一个快速测试,在那里我拿了我的 Arduino IDE 库并将 Wire 库包含在其中。它编译了它,使用的总空间刚刚超过 29K。这只是一个编译和大小测试,但它似乎是可行的。 我最初的想法是有一个 ATTiny84 屏蔽,通过 I2C 引脚(A5-6)连接到主 GRBL 板,然后从 GRBL 接收命令来控制主轴或您想要添加的任何设备。 ATTiny 有几个 PWM 引脚,可以很好地与 HobbyKing.com 这样的 ESC 配合使用(它们在 7-14V 上运行)http://www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=3731&aff=784150 和这样的主轴电机:http: 你们有什么感想?如果有人感兴趣,我可以在这样的盾牌上工作……(我迟早会在我开始下一个项目时这样做) |
加上 I2C,我认为您最多可以连接 32 个设备.. 大声笑一个 30+ 核心 (MCU) GRBL 系统…? |
如果您忽略供应商特定的地址预订,我认为最多 127 个。但是 I2c 真的很漂亮,因为有大量的半导体已经实现了 DA 和 AD 以及其他电子转换器。请记住,不带信号放大器的 I2c 仅限于半米电缆,而不是更长。 |
我认为这值得付出努力,尤其是当我们转向 ARM 时。从我的角度来看,唯一关心的是我们是否在 328p 上有足够的空间使其有用。不仅要编译的 i2c 代码,而且与 Grbl 接口的支持代码会占用最多的空间。 我们可能需要开始考虑创建编译时选项的方法,以便为用户想要的特定事物腾出空间。这意味着如果有人不打算使用硬限制或物理引脚分配来启动循环,他们可以注释掉该选项并为 i2c 内容腾出空间。像这样分解事情将是一项艰巨的任务,但当事情继续发展时可能是必要的。我们希望尽可能地模块化代码。 |
是的……模块是要走的路。 使用“接口”也很好。这样我们设置基本方法 然后接口的用户编写代码以适应他的主轴硬件 这还将把一些负载转移到硬件设计人员身上,以
|
证言 评论 on 8 Mar 2013
我看到以前的请求没有得到很好的论证,因此关闭了。
有许多中国 400Hz 主轴(从 800W 到 2.5KW),可配备 VFD 转换器。这些转换器可以接受设置速度和开/关:
所有的东西都在转换器内完成,所以不需要“闭环”……只有 PWM。
还应该实现对 M3 Fxxxx (xxx=speed..) 的 Gcode 支持。但是有足够的地方吗…