主轴设置
概述
注意:这是一项正在进行的工作,将添加更多
Grbl_ESP32 使用主轴功能来控制主轴和激光器。它使用 PWM 信号来设置主轴速度或激光功率水平。它也可以设置为仅针对主轴或主轴继电器开/关。
并非所有机器都有主轴或激光器。如果您不定义 SPINDLE_PWM_PIN,Grbl_ESP32 会将主轴视为虚拟设备。所有主轴命令将继续被处理和报告,但不会有 I/O。
所有主轴都被视为变速。如果您想使用单速(开/关)型主轴或主轴继电器,只需将 30 美元的最大速度设置设置为 1。然后您为主轴设置的任何速度都将全开。
参数
姓名 | 功能 |
---|---|
SPINDLE_PWM_PIN | 这是放置 PWM 信号的引脚。它应该被分配一个 GPIO_PIN,比如#define SPINDLE_PWM_PIN GPIO_PIN_2 |
SPINDLE_PWM_CHANNEL | 这是一个内部 ESP32 硬件值。它应该被分配给 0,比如#define SPINDLE_PWM_CHANNEL 0 |
SPINDLE_PWM_BASE_FREQ | 这是 PWM 信号的频率(以 Hz 为单位)。像这样分配它,#define SPINDLE_PWM_BASE_FREQ 5000(详见下文) |
SPINDLE_PWM_BIT_PRECISION | 这是占空比的位精度。像#define SPINDLE_PWM_BIT_PRECISION 8一样分配它 |
SPINDLE_PWM_OFF_VALUE | 这是关闭值。它通常应该是 0 |
SPINDLE_PWM_MAX_VALUE | 这是最大价值。它通常是位精度中的最高数字。 |
INVERT_SPINDLE_PWM | 选修的。如果定义,PWM 输出将被反转。关闭时信号会很高。 |
SPINDLE_ENABLE_PIN | 选修的。这定义了一个引脚,当主轴打开时变高,当主轴关闭时变低。一些基于工业 VFD 的主轴需要此信号 |
INVERT_SPINDLE_ENABLE_PIN | 选修的。反转上述信号。 |
命令
- M3 以最近一次 S 参数指定的速度正转启动主轴
- M4(主轴模式) 反转开启主轴
- M4(激光模式) PWM 值可以立即更改并且仅在活动 G1 移动期间打开。在此处查看更多详细信息。
- M5 关闭PWM信号
- Sxxx 根据您设置的范围设置速度
SPINDLE_PWM_BASE_FREQ
这是 PWM 信号的基频。默认值 5000 适用于大多数主轴。一些激光器可能需要更高的频率。
SPINDLE_PWM_BIT_PRECISION
PWM 信号基于 80,000,000 Hz 计数器。如果您的频率为 5000 Hz,则每个周期有 16000 (80,000,000 / 5000) 个计数可用于分辨率。分辨率以位为单位指定,因此分辨率为 8 将指定 0 到 255 的范围。固件将您指定的位范围缩放到实际范围(上例中为 16000)。您应该为 5000Hz 示例指定的最高分辨率为 13 位。该范围(0 到 8191)是小于 16000 的最高值。
分段线性拟合(高级)
一些主轴 RPM 与 PWM 信号的线性关系不是很好。如果您希望这些主轴在命令速度下更准确,您可以#define ENABLE_PIECEWISE_LINEAR_SPINDLE
在 config.h 中启用。doc/script 文件夹中有一个名为 fit_nonlinear_spindle.py 的 python 脚本。脚本中有关于如何在脚本注释中使用它的说明。
这是之前和之后的示例。