开源改变世界

设置改变激光 PWM 频率 #55

推推 grbl 2年前 (2023-01-21) 787次浏览
打开
chamnit 打开了这个问题 2016 年 12 月 9 日 · 42条评论
打开

设置改变激光 PWM 频率#55

chamnit 打开了这个问题 2016 年 12 月 9 日 · 42条评论

注释

设置改变激光 PWM 频率 #55
贡献者

来自#34(评论)

添加“$”设置以允许不同的激光 PWM 频率。可能会将其作为当前$32激光模式设置的值来实现,例如123将指示不同的频率。

需要研究 PWM 频率如何影响激光器以及是否需要这样做。

设置改变激光 PWM 频率 #55

我运行一个 5W 激光二极管,我的 TTL 激光驱动器不喜欢默认的 1KHz PWM。我将我的频率改为 8KHz,它运行完美。驱动程序记录的频率是 10KHz,但 8 已经足够接近了。

我认为部分问题在于我运行它的速度。如果我以 F4800 进给并且光栅分辨率为每毫米 10 像素,即每秒 800 像素。这可能意味着某些像素仅获得 1 个脉冲,而某些像素获得 2 个。在 8KHz 时,每个像素获得 10 个更短的脉冲,结果更加平滑。

所以回答你的问题,在我的情况下,PWM 频率确实有所不同。

设置改变激光 PWM 频率 #55 chamnit 添加了 增强 标签 2016 年 12 月 13 日
设置改变激光 PWM 频率 #55

我有一台带有专有控制器和软件的 5W 激光雕刻机,可以更改 pwm 频率(通过以毫秒为单位的周期持续时间)。这让我可以选择优化良好的灰度图或深度图。

设置改变激光 PWM 频率 #55

PWM 频率可以在 cpu_map.h 中第 140 行左右更改。

设置改变激光 PWM 频率 #55

我对 PWM 定时器有疑问。它似乎是一个 8 位定时器,对我的下一个项目来说不够高。
我计划将我的 50W 中国 CO2 激光控制板升级为 GRBL 1.1 控制器。电流控制的分辨率为 0.1% 或 50mW 步长。我在 5-15% 之间运行它,得到 100 步灰度。在 8 位使用 GRBL PWM 意味着每步大约 200mW,灰度在 5-15% 之间只有 25 步。

我有一个 5W 的激光,我使用了 15-60% 的功率,这给了我超过 100 种灰色阴影,看起来很棒。

关于在使用小功率范围时可以做些什么来提高分辨率的任何想法。

设置改变激光 PWM 频率 #55
贡献者作者
香奈儿 评论了 2016 年 12 月 20 日  

@mayhem2408: 唔。不是 100% 理解您的要求,但我认为您是在说您的激光驱动器在较小的控制电压范围内工作最佳。您希望在此范围内获得更高的分辨率。

我将是第一个承认我不是激光及其控制器专家的人。所以,我不确定是否有其他方法可以改善光栅雕刻,例如改变 PWM 频率、进给率或激光输入电压/功率。

对于 Grbl,没有比 8 位分辨率更高的计时器可用。步进中断正在使用一个 16 位定时器。所以,我帮不了你。但是,如果电压范围很低,例如 1V-2V,您可以尝试在 PWM 输出端放置一个分压电路。这将有效地缩小输出并通过电压比提高分辨率。如果你想要更大的范围,我认为如果你添加一个电压电平转换器来提高低端,与分压器结合使用,可能有一种方法可以做到这一点。不过,这都是理论上的。

另一种选择是使用单独的控制器将 Grbl 的输出转换为您的激光器更喜欢的输出。这可以给你最好的控制,但它需要一些中断编程来确保时序仍然准确。

设置改变激光 PWM 频率 #55
混乱2408 评论了 2016 年 12 月 20 日  

不安静。我的 50W 激光非常强大。在 100% 的功率下,它可以切割 6 毫米的胶合板。如果我想做光雕,我需要使用非常低的功率设置。激光控制器本身是TTL触发的,所以它只接受0和5V信号。发送它 4V 仍然打开,1V 仍然关闭。使用 8KHz+ 的 PWM 允许功率调制。

我有一个想法,即使用另一个 Arduino 以更高分辨率简单地控制 PWM,并通过第二个 Arduino 读取的 i2c 或 onewire 获得 GRBL 输出功率电平数据。不确定 GRBL Arduino 是否有足够的内存来使用这些库。
我的另一个选择是将它移植到 Mega2560 并在那里使用 16 位定时器。

设置改变激光 PWM 频率 #55
贡献者作者

@mayhem2408:Mega2560 比尝试将更多的东西塞进 328p 版本要理想得多,后者已经完全用完了。在休息期间,我计划将 Grbl-Mega 更新到 v1.1,所以我会等到我这样做。

设置改变激光 PWM 频率 #55

另一种选择是从 GRBL 获取 PWM,将其馈送到另一个 Arduino,然后相应地缩放它。所以我会有一个智能激光控制器。GRBL 在 256 步输出 0-100%,但第二个 Arduino 使用 16 位定时器仅发送 5-15% 的任务,甚至将其缩放回 10-12 位,从而提供 100-400 步的分辨率。第二个 Arduino 中将有大量资源用于设置 LCD 屏幕和按钮。

但是,在 Mega2560 上运行可以解决问题。将 PWM 移动到 16 位定时器是您想要做的事情吗?

设置改变激光 PWM 频率 #55
贡献者作者

@mayhem2408: 它已经在 16 位定时器上,但限于 1024 级。我不记得确切的原因。我认为这与 OEM 请求有关。

设置改变激光 PWM 频率 #55

1024 级对我来说听起来不错。我当前的 50W CO2 驱动程序有 0.1% 的增量,即 1000 级,并且工作正常。我目前的 5-15% 范围会给我 102 个级别,这比我现在得到的要多一点。迫不及待地想看到 grbl-mega 1.1。我会很乐意做测试。

设置改变激光 PWM 频率 #55
混乱2408 评论了 2016 年 12 月 20 日  

想想看,在 16MHz 时钟下,1024 级意味着大约 15.6KHz PWM,这几乎是 50W 激光驱动器电源的 16KHz 最佳 PWM 的敲击声。

设置改变激光 PWM 频率 #55

@mayhem2408您介意在 STM32 目标上尝试我的 GRBL 1.1 端口吗?它可以有 16 位的 PWM 定时器。应该足以满足您的要求。

设置改变激光 PWM 频率 #55

@usbcnc我目前没有STM32。你能推荐一个吗?

设置改变激光 PWM 频率 #55
USBCNC 评论了 2016 年 12 月 20 日  

@mayhem2408 这是我使用的 (<$2)。我还买了一个 STlink(也 < 2 美元)来快速编程。它也可以通过串行端口进行编程。
https://www.aliexpress.com/item/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino/32721357650.html

设置改变激光 PWM 频率 #55
贡献者作者

@mayhem2408: 坚持。我刚刚对 Mega 分支做了一个初步的移植。它可以编译,但我还没有测试过。

设置改变激光 PWM 频率 #55

@chamnit: 我挂了。我的 Mega2560 已准备就绪,可以进行刷机

设置改变激光 PWM 频率 #55
贡献者作者

@mayhem2408: 抱歉,今晚没来得及。我忙于追踪与警报、归位和无限循环相关的严重错误。从理论上讲,Grbl-Mega 应该可以使用。如果您喜欢冒险,那么它很有可能会正常工作。否则,我明天得去处理它。天色已晚。

设置改变激光 PWM 频率 #55

我已经将它上传到我的准系统 Mega2560,到目前为止一切顺利。CNC.js、LaserWeb 和 LaserGRBL 均正常运行并报告正常。接下来是连接我的步进驱动器以确保它们响应正常。

设置改变激光 PWM 频率 #55

我的激光切割机 (HPC) 上有电压控制。我将 pwm 输出带到一个简单的积分器,以根据 PWM 为激光器生成电压。为了在低端创建更精细的控制,我将尝试一个简单的运算放大器,该运算放大器配置为使用对数输入到输出进行操作。电路很简单,它应该可以让我在较低的功率水平下进行更精细的控制。

设置改变激光 PWM 频率 #55

我刚刚遇到这个,它非常接近我的问题。

我正在寻找控制焊接电流脉冲的方法。
最简单的方法是改变 gcode 的速度,但这会导致
每 1 秒移动多达 20 行 gcode,所以我担心它会淹没串行连接。

我想在 S 字中添加参数以完成脉冲,例如:
S100 D1 R40 L40
在上面(仅用作示例的单词)
S 是高焊接电流
D 是十分之一秒的焊接脉冲持续时间
R 是焊接脉冲关系,脉冲持续时间的百分比是高电流
L 是低电流作为高电流的百分比
这应该使 S 循环,以便值 40ms 100,然后是 60ms 40。

这应该不是很复杂的添加功能,但我的大问题是
我应该在代码的什么地方添加它?

由于 8 位 pwm 已经在 100A 焊机上提供 0.5 安培分辨率,因此主轴速度控制应该
作为准备好的起点工作
一些抖动是可以接受的,因此状态机解决方案就足够了。

我打算使用 usbcnc 的 STM32 端口

Rgds ,科普

设置改变激光 PWM 频率 #55

我有一个 60W CO2 电源,事实上是一个 HY-T60。它有几个输入;TH 和 TL 线,作为启用引脚;如果 TH 线被拉至 5V 或 TL 线被拉至地,它会触发。它还具有一条IN线,可以通过0-5V模拟信号或“5V PWM f >= 20kHz”进行控制。
我从管子里取出不稳定的光束;我应该在 PWM 线路上放置一个低通滤波器吗?

设置改变激光 PWM 频率 #55

你应该做两件事:

  1. 更改 PWM 基频。默认值适用于基本的主轴控制,如果我没记错的话大约是 1kHz。您可以将其提高到更高的水平以进行激光控制。IIRC 您需要编辑 grbl 源中的设置并重新编译。
  2. 然后你可以放置一个时间常数更短的低通滤波器,这样你就可以获得清晰快速的功率控制。
设置改变激光 PWM 频率 #55

@mayhem2408你能把你用过的更改后的代码发给我吗?我的激光器是 2.5W,带有 arduino nano,但我无法更改 kHz
“”我运行一个 5W 激光二极管,我的 TTL 激光驱动器不喜欢默认的 1KHz PWM。我将我的频率改为 8KHz,它运行完美。驱动程序记录的频率是 10KHz,但 8 已经足够接近了。

我认为部分问题在于我运行它的速度。如果我以 F4800 进给并且光栅分辨率为每毫米 10 像素,即每秒 800 像素。这可能意味着某些像素仅获得 1 个脉冲,而某些像素获得 2 个。在 8KHz 时,每个像素获得 10 个更短的脉冲,结果更加平滑。

所以回答你的问题,在我的情况下,PWM 频率确实有所不同。””

设置改变激光 PWM 频率 #55

可以选择脉冲脉冲,我的铣床主轴由变频驱动器驱动(它是一个高达 2 马力的三相电机)。频率驱动器接受 0-10v 输入以将其输出频率更改为 100hz 附近的某个位置,在 50hz 时我得到 3600R pm,但在 100hz 时我得到 7600 Rpm。来自 Grbl 的 pwm 是一个从 0 到 255 的数据值,无论主轴 RPM min max 设置为多少。如果可以输出代表 pulse/hz 的数字脉冲序列,即数字写入频率脉冲而不是 pwn(如无延迟闪烁 – 基本示例),那将会很好然后高达 2mhz 脉冲是可能的(没有任何其他代码)获得 2khz甚至更好的 20khz 脉冲串会非常有用。
对于我所有的 Arduino 项目,现在我已经放弃了 PWM(内置模拟写入),因为它的用途有限。如上所述,我正在使用第二个 arduino 来转换 pwm – 它实际上恰好将速度发送到 vfd(那里有另一个 Arduino)并通过一些电路将远程速度输入馈送到 vfd 上。它们之间的连接是 RS485,因为铣床是一台改装的工业铣床,电噪音很大。如果有任何人能够提出一种点按脉冲的方法或者它已经完成并且我只是误解了术语,我将非常乐意为他们提供帮助。

设置改变激光 PWM 频率 #55

@MeJasonTGrbl 不使用 arduino analogWrite,它经过高度优化并且已经通过定时器中断生成了 PWM 本身!AVR328 中几乎没有剩余空间来添加 I2C 或 RS485 接口。我建议使用 Mega256 或更好的 32 位 MCU。

设置改变激光 PWM 频率 #55

嗨 cprezzi,我查看了 cpumap.h 并发现输出已经有点爆炸信号而不是模拟写入。你知道我如何提高频率以提供 50% 的开/关脉冲,提供 2khz 可变频率吗?我的计划是将频率读入另一个已经连接了 rs485 接口的 Atmega 328,并将 2 字节值传输到第三个 Atmega328,后者正在接收 RS485 并通过 i2c DAC IC 将值传输到我的变频驱动器。
当前的 PWM 输出只给我一个从 20 到 255 的值。这相当于每位 74 RPM。这是主轴速度的巨大差异。我想我想问的是,我想要一个分辨率更高的值——其余的对于具有我的电子知识的人来说是小菜一碟。不幸的是,我不是程序员,也不会那样乱用 GRBL,我可以相信它的可靠性。最好请教专家。干杯 J。

设置改变激光 PWM 频率 #55

为什么需要变频?这就是 VFD 的用途。通常,您为 VFD 提供模拟 0..10V 信号(也可以与电位计一起使用)。
Grbl 只能为主轴创建具有固定频率的 5V PWM 信号。您需要的是像这样的 PWM 到 0..10V 转换器https://de.aliexpress.com/item/PWM-zu-Spannung-Konverter-Modul-0-100-zu-0-10-vfr-PLC- MCU-Digital/32834921874.html

设置改变激光 PWM 频率 #55

@MeJasonT为了获得更高的分辨率,您可以制作一个 PWM 电压转换器,它只产生 0..5V 并添加 0V 或 5V 与来自雾或洪水等数字输出之一的 mosfet 串联。

设置改变激光 PWM 频率 #55
罗密奇斯 评论了 2018 年 10 月 30 日 通过电子邮件
喜欢 (0)