Contact me: hankecnc@gmail.com

CO2激光控制 #65

推推 grbl 3年前 (2023-01-29) 450次浏览
关闭
pityuka3d 打开了这个问题 2018 年 12 月 5 日 · 35条评论
关闭

CO2激光控制#65

pityuka3d 打开了这个问题 2018 年 12 月 5 日 · 35条评论

注释

CO2激光控制 #65

我喜欢你的工作,我想用这个控件而不是 Arduino Mega 进行 CO2 激光切割。
我做了一个测试台。我设置了激光模式和我发现的信息。但是当 gcode 运行时,激光不会打开。我在 80% 时测量并输出 0.15 伏。
如果我直接运行命令(gcode sender)那么它工作正常。

有没有办法连接下一个显示器?我想试验一下。

谢谢
,对不起,但我的英语不好。

CO2激光控制 #65
所有者

您是用示波器还是逻辑分析仪检查 PWM?您可能需要将电压从 3.3v 变为 5v。

没有添加显示器的计划。手机或网络浏览器是目前的计划。

话虽如此,我认为添加显示器并不难。

CO2激光控制 #65
作者

谢谢回复!
我确定您必须切换到 3.3 伏。因为激光器的电源是5,所以是PWM工作的。这就是为什么我认为我会尝试平滑的 Led。
有趣的是,它只是在工作期间无法正常工作。试运行或直接命令效果很好。你建议改变什么?

CO2激光控制 #65
所有者

@gflaser-au他的 CO2 激光取得了巨大的成功。他对 PWM 进行了一些更改以获得最佳性能。我不记得确切的变化,但他确实通过电平转换器改变为 5V。

CO2激光控制 #65
作者

非常感谢您的帮助!
不幸的是,现在是 2 点钟,我没有太多选择。
我用NPN三极管来解决移位。您对 PWM 设置是正确的。现在您可以打开每个程序的激光。但是你不能超过80%。如果我在上面设置了这个值,请不要打开激光。或者我不能低于 2。(有这么多 S1 命令)

CO2激光控制 #65
所有者

最大 RPM 设置为 1000 这里是 S950 (95%)

CO2激光控制 #65

使用 S10 (1%)

CO2激光控制 #65

这些是我的设置

#ifdef CPU_MAP_ESP32
	// This is the CPU Map for the ESP32 CNC Controller R2	
	
	  // It is OK to comment out any step and direction pins. This
    // won't affect operation except that there will be no output
		// form the pins. Grbl will virtually move the axis. This could 
		// be handy if you are using a servo, etc. for another axis.
		#define X_STEP_PIN      GPIO_NUM_12
		#define Y_STEP_PIN      GPIO_NUM_14
    #define Z_STEP_PIN      GPIO_NUM_27		
		
		#define X_DIRECTION_PIN   GPIO_NUM_26
		#define Y_DIRECTION_PIN   GPIO_NUM_25  
		#define Z_DIRECTION_PIN   GPIO_NUM_33 
		
		// OK to comment out to use pin for other features
		#define STEPPERS_DISABLE_PIN GPIO_NUM_13		
		
		// *** the flood coolant feature code is activated by defining this pins
		// *** Comment it out to use the pin for other features
		#define COOLANT_FLOOD_PIN 	GPIO_NUM_16			
		//#define COOLANT_MIST_PIN   	GPIO_NUM_21
		
		// If SPINDLE_PWM_PIN is commented out, this frees up the pin, but Grbl will still
		// use a virtual spindle. Do not comment out the other parameters for the spindle.
		#define SPINDLE_PWM_PIN    GPIO_NUM_17 
		#define SPINDLE_PWM_CHANNEL 0
		// PWM Generator is based on 80,000,000 Hz counter
		// Therefor the freq determines the resolution
		// 80,000,000 / freq = max resolution
		// For 5000 that is 80,000,000 / 5000 = 16000 
		// round down to nearest bit count for SPINDLE_PWM_MAX_VALUE = 13bits (8192)
		#define SPINDLE_PWM_BASE_FREQ 5000 // Hz
		#define SPINDLE_PWM_BIT_PRECISION 12   // be sure to match this with SPINDLE_PWM_MAX_VALUE
		#define SPINDLE_PWM_OFF_VALUE     0
		#define SPINDLE_PWM_MAX_VALUE     4096 // (2^SPINDLE_PWM_BIT_PRECISION)
		
		#ifndef SPINDLE_PWM_MIN_VALUE
				#define SPINDLE_PWM_MIN_VALUE   1   // Must be greater than zero.
		#endif
		
		#define SPINDLE_PWM_RANGE         (SPINDLE_PWM_MAX_VALUE-SPINDLE_PWM_MIN_VALUE)		
		
		// if these spindle function pins are defined, they will be activated in the code
		// comment them out to use the pins for other functions
		//#define SPINDLE_ENABLE_PIN	GPIO_NUM_16
		//#define SPINDLE_DIR_PIN			GPIO_NUM_16		
		
		#define X_LIMIT_PIN      	GPIO_NUM_2  
		#define Y_LIMIT_PIN      	GPIO_NUM_4  
		#define Z_LIMIT_PIN     	GPIO_NUM_15 	
		#define LIMIT_MASK      	B11
		
		#define PROBE_PIN       	GPIO_NUM_32  
		
		#define CONTROL_SAFETY_DOOR_PIN   GPIO_NUM_35  // needs external pullup
		#define CONTROL_RESET_PIN         GPIO_NUM_34  // needs external pullup
		#define CONTROL_FEED_HOLD_PIN     GPIO_NUM_36  // needs external pullup 
		#define CONTROL_CYCLE_START_PIN   GPIO_NUM_39  // needs external pullup    		
		
#endif```


CO2激光控制 #65
贡献者

我可以稍后发布我的设置,但是:
1,npn 将反转信号,除非你使用两个。
2、大部分激光电源需要20kHz以上的pwm频率。
3,激光器在低于约 10% pwm 时不会发射。要解决这个问题,grbl 有一个最小的 pwm 设置。(你可以在我稍后发布时看到我的设置)

4,我使用高速光耦合器代替 npn,将 esp32 与激光 psu 隔离。

Esp32 grbl 非常适合用于 Co2 激光器。我的 100w 确实遇到了一些噪音干扰问题。我已经通过硬件和固件更改的组合解决了这些问题,但现在效果很好!

CO2激光控制 #65
作者

我试图将负极与晶体管连接。我用 2 个晶体管尝试了正极。但是没有任何迹象出现。当 Gcode 运行时,几乎没有任何东西。现在我将看到几乎恒定的接地信号输出。所以你不能用它来蜂蜜。但是正极光纤的直径是3v买的。
不幸的是,我无法测量示波器,因为它坏了。
我认为这对这种控制也非常有用。到目前为止,我做了 Arduino Uno,但我不喜欢它,所以我把它换成了 Arduino Mega。如果能有这种控制就好了。我要做。但是我卡住了。:-(

CO2激光控制 #65
贡献者

我建议向发件人输入一些 g 代码命令。然后你可以更容易地测试。(我用的是LaserGRBL)
(归位后,或设置零位后)
手动输入:
M3S500
G1x1y1

如果最大速度为 1000,您将看到 50% 的 PWM 输出 – 前提是您不使用任何其他会导致激光关闭的命令。(例如 G0)。
然后您可以使用:
M3S250 设置 25%,M3S750 设置 75% 等。

如果您没有示波器,那将很困难——但请尝试在 DC 上使用万用表并检查平均 DC 值(如果您的仪表有频率,则检查平均 DC 值)。
尝试在 ESP32 PWM 引脚上不连接晶体管。然后从那里继续。

我很高兴检查你的设计。您可以张贴带有 NPN 晶体管的电路原理图以及所有零件名称和电阻值吗?

记得设置:
#define SPINDLE_PWM_BASE_FREQ 20000 // Hz
以获得 20kHz。

CO2激光控制 #65
所有者

@gflaser-au

你能提供你所有的主轴#defines吗?

CO2激光控制 #65
贡献者

我可以——只是不是马上。我暂时离我的家庭办公室不近。
如果我们能想出一种将机器特定的 cfg 文件添加到 repo 的方法,那就太好了;)

作为起点,默认值 + 20kHz 应该没问题。
我将我的设置保持在 8 位分辨率,但默认设置应该可以测试硬件设置。

CO2激光控制 #65
所有者

我在主分支 cpu_map.h 中添加了一些额外的机器。看看我是怎么做到的,看看你是否可以添加你的机器。

CO2激光控制 #65
作者

我正在使用 laserWeb(和其他)不幸的是,您输入的说明没有打开激光。仅用于程控控制。现在我有一个万用表。明天我想买个勺子。板子(17pin)的输出为3.3m:
Feed 0,S 1000 = 2.31v 输出
Feed 1000,S 1000 = 0.0v 输出
Feed 1000,S500 = 0.8v 输出
Feed 0,S500 = 1.15 输出
Feed 10,S1000 = 0.15v输出
Feed 10, S500 = 0.0v输出
不响应任何程序中输入的M3指令。(打印“OK”)运动命令没有问题。
明天我将测试一些晶体管设置并绘制图纸。
我查看文件 cpu_map.h。根据你的示意图,我编织了所有的腿。但是为了测试,我不做 PCB。
除了建议的 20,000 Hrz 之外,一切都在工厂#defines 中。

CO2激光控制 #65
贡献者

M3 只是将主轴控制状态设置为打开。S 设置速度 它不会移动任何轴。
您是否在 grbl cfg 中启用了激光控制?
如果您在重置后没有进行任何 g1 移动,请使用
G1x1y1F1000
(需要设置进给率,但如果您错过了该设置,您应该会看到警告。)

在激光模式下,需要 G1 cmd 才能实际启动 pwm – 作为一项安全功能,除非在运动中,否则激光 pwm 将禁用。G0 将强制 PWM = 0,即使仍然设置了 M3S500。

CO2激光控制 #65
作者
pityuka3d 评论了 2018 年 12 月 6 日  

启用激光控制。
但是PWM的强度不行!!!
我试图让它更简单。

如果轴移动,它们会取消该值。但在直立位置它只有 2.15 伏特或 3.3 伏特。

我关闭了安全最小移动。这就是 M3 命令现在的工作方式。
但到目前为止,LaserWeb 已经能够将激光转向测试。即使 G0

更新:
我移除了 D17 的所有硬件。如果轴不移动,它们在 100% (M3S1000) 时有 3.3 伏,在 50% (M3S500) 时有 1.64 伏。
如果任何轴移动(例如:M3S500 G1x1y1),该值将降至 0.15 伏或更低!

对不起,我的英语还是不好!

CO2激光控制 #65
作者
pityuka3d 评论了 2018 年 12 月 6 日  

我遇到了一个带有 GRBL 的 Arduino Mega。基本上,它也适用于 5 V PWM。所以没有必要提高水平,但这不是重点。
在 100% 50% 的情况下为 4.75 伏特
为 2.41 伏特
轴在运动和不运动时是相同的。

但是这里没有停机监控功能,跟你做的固件差距太大了!

CO2激光控制 #65
贡献者

你读过这个页面吗?
https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode

它解释了 grbl 的激光模式,以及 M3 / M4 的工作原理。

你对pwm at s1000 / s500的描述没问题。
我不知道为什么它会在轴移动时发生变化(g1 命令)

绘制电路并上传。我们会为您检查。

另外,请确保您的电源足够强大以运行步进电机和具有一些额外容量的控制器。我将 10A 12V 用于 2 nmea 17 步进电机(~ 2A 额定值)

CO2激光控制 #65
作者

大多数我在这里阅读了相关的m3对M4的描述。这是我建造的第三台激光切割机。虽然 M4 对我来说从来都不够好,但它是 M3-在我使用它的时候。目前还没有电子电路,因为我把它完全清理干净了,那不会打扰任何东西!

这里有几张来自问题的图片:
如果轴移动会影响 PWM 性能。
(我不能更简单地写下来)
CO2激光控制 #65
CO2激光控制 #65
CO2激光控制 #65
CO2激光控制 #65

PWM 级别赢得了一个在网络上迈出的一步,我尝试了一些。这里有一个例子:
https ://www.incrediblediy.com/2013/02/simple-33v5v-level-shifter.html
https://www.google.hu/search?q=3v3+pwm+to+5v&source=lnms&tbm =isch&sa=X&ved=0ahUKEwjohaefuovfAhWNyqQKHWR-A20Q_AUIDigB&biw=1931&bih=1267

我尝试了很多,但 3.3voltos 有一个标志有问题。
您将如何绑定它以及使用什么样的设置?发送,我试试看。

CO2激光控制 #65
作者

我忘记了 12v 10A 我使用营养品 2 可能是 3 Nema 和 17 个引擎(一个接一个 1.7 安培)
来自单独电源的泵我操作它。
现在应该只给出一个输出信号,或者控制一个 LED。
我不明白这是怎么回事。我将它重新排列到另一个输出 cpu_map.h 禁令上。并且出现了这种现象。我已经考虑过错误的董事会

CO2激光控制 #65
作者

这可能有帮助: 我知道这个工具现在有一个游戏但是这个。 控制器板现在什么都没有,只有范围
CO2激光控制 #65

CO2激光控制 #65
味三 评论了 2018 年 12 月 7 日 通过电子邮件  

CO2激光控制 #65
作者

我不希望它处于这种+3v3 的状态就这样吧。但是 3.26v/100% 对我来说已经很好了!
我希望它在工作期间通过该标志(雕刻,切割)而不是在火灾情况下进行测试。
目前,如果他认为它控制引擎,那么与工作期间的测试相比,你运行的 gcode 比他的第十次要少一些。

CO2激光控制 #65
作者

我不能将此错误消息发送到包含 M4 指令的 gcode 吗?

错误:20 – 在块中发现不受支持或无效的 g 代码命令。

M3 没有这样的错误信息。
GRBL_Mega 适用于 M4。

CO2激光控制 #65
所有者

仅当您定义了主轴方向销时才启用 M4。它没有在基本的 cpu_map 中定义。如果未定义引脚,您将收到该错误。

我没有对 M4 做太多。M4有特定的激光功能吗?

CO2激光控制 #65
作者

There is a difference, but both of them should work. M3 is a continuous laser performance and M4 is dynamically changing. One is better for the diode laser than the other for the CO2 laser. Here, however, it would link the firmware to the gcode movement with the power of PWM.
Let me know how to log in.
I try every idea! :-D Or where to find the fault?
If you also set an esp board, is this the bug for a laser?

CO2激光控制 #65
Owner

I have never used M4 mode for lasers. I think the code is in ESP32 version but disabled because of the pin definition. I can check into in a few days.

喜欢 (0)