外部步进电机驱动器
当您需要的功率超过小型插入式驱动器所能提供的功率时,通常会使用外部步进电机驱动器。您还可以获得闭环步进和伺服电机等高级功能。
只要它们接受步进和方向信号,您就可以使用它们。它们通常有使能信号,有些有故障信号。Grbl_ESP32 目前支持使能。我们希望在下一代 Grbl_ESP32 上支持故障信号。
连接
它们通常具有光电隔离输入。它们使用 LED 和光学传感器来隔离信号。电机侧的任何噪声或尖峰都不能跳过光学间隙并伤害控制器侧。这些 LED 通常适用于 5V。ESP32输出3.3V,一般不能直接接电机驱动。见下文。
注意:有些人声称驱动器在 3.3V 下工作正常。当心。很难说司机是一直开心,还是 99.9% 的时候都开心。遵循已发布的驱动程序规范。
信号
这些隔离输入功能会在检测步进、方向和使能信号的速度上增加一点滞后时间。Grbl_ESP32 有几个设置来弥补这一点。
许多信号也必须反转。隔离电路翻转信号,因此 Grbl_ESP32 可能需要为此进行调整。
在下图中,您可以看到脉冲长度要求和信号之间所需的间隙。PUL(阶跃信号)和 DIR 被反转。ENA 不是,但您仍然可能需要将其反转,因为 Grbl_ESP32 认为它是禁用信号。
设置
可以使用以下设置来满足信号要求。当您第一次尝试保守时,您可能会增加一些额外的时间。请记住,非常长的脉冲长度会限制您可以达到的最高速度。
这是设置。指示了上图中的“t”数字。
- $Stepper/Pulse (t4) 这是步进脉冲的持续时间(以微秒为单位)。
- $Stepper/StepInvert这会反转步进脉冲
- $Stepper/Direction/Delay (t2) 这是在方向信号改变后发送任何步进信号之前的延迟。
- $Stepper/DirInvert这会反转方向信号。出于多种原因可能需要这样做,并且每个轴可能不同。它是一个掩码,所以它是这样设置的$Stepper/DirInvert=XZ,根据需要添加轴。
- $Stepper/Enable/Delay这是设置方向信号之前和启用之间的间隙。
- $Stepper/EnableInvert (t1) 这会反转启用信号。
示例:机器定义值
#define DEFAULT_STEP_ENABLE_DELAY 5 // how long after enable do we wait for
#define DEFAULT_STEP_PULSE_MICROSECONDS 4 // length of step pulse. Must be greater than I2S_OUT_USEC_PER_PULSE (4) with I2S
#define STEP_PULSE_DELAY 6 // gap between enable and dir changes before step
#define DEFAULT_STEPPING_INVERT_MASK (bit(X_AXIS) | bit(Y_AXIS) | bit(Z_AXIS))
#define DEFAULT_DIRECTION_INVERT_MASK (bit(X_AXIS) | bit(Y_AXIS) | bit(Z_AXIS))
#define DEFAULT_INVERT_ST_ENABLE false
3.3V 至 5V 电平转换
一些控制器将内置此功能。6 件装有一个用于 3.3V 和 5V 输出选项的跳线选项。您应该使用 5V 输出。
注意:使用 5V 时,请勿将外部驱动器与 Trinamic 驱动器混合使用。他们将信号发回 ESP32 并会用 5V 损坏它
5V 必须有足够的电流来点亮 LED。电流通常小于 20mA,但这超出了一些便宜的电平转换所能提供的。一些电平转换器(如 TI TXB 类型)使用 5V 上拉电阻,这不会为 LED 供电。
适配器
有几个适配器可以帮助解决这个问题。它们都将信号发送到现有的连接器。
6 件装适配器。这只是将 5V 信号重新路由到接线端子。它还允许选择公共 5V 或公共接地。
注意:接线时要非常小心。如果将输出短路,可能会永久损坏控制器。
StepStick 适配器。该适配器进行电平转换并将信号重新路由到电机连接器。它将用于没有 5V 信号的控制器。它可用于 3.3V 或 5V 控制器。
接线
每个信号通常都有一个 + 和 – 连接。这使您可以将它们相互完全隔离。Grbl_ESP32这边的信号一般不会相互隔离,共用一个地。
最简单的接线方法是将所有负极连接在一起并将其接地到控制器上。将正端连接到信号。如下所示。
您也可以将 + 侧连接在一起并将其连接到控制器侧的 +5V。负端将连接到控制器端的信号。如下所示。
故障排除
- 步骤不稳定或遗漏这通常是由于步骤计时所致。这些驱动器通常需要更长的脉冲长度才能被可靠地检测到。尝试延长脉冲。请参阅上面的设置部分。