使用带有限位开关和终端挡块的 E0/E1 将步进电机作为挤出机归位

3D打印 挤出机 坡道-1.4 固件 重复者 终点站
2021-05-11 18:05:30

注意:我已经扩展了我的问题,因为你们中的一些人提到这个问题不清楚。

我正在使用带有 Arduino mega 2560 的 RAMPS 1.4 板。我需要使用 E0 或 E1 驱动步进电机作为挤出机。我正在使用 Repetier-Firmware 并且可以使用 E0 (RAMPS 1.4) 驱动挤出机(步进电机)。现在对于我的应用,我需要确保挤出机在第一次开始驱动之前处于初始位置。我正在尝试使用开关连接到终点站并执行此归位操作。我可以对 X、Y 和 Z 轴执行此操作。我想知道如何(硬件连接和固件修改)我可以为挤出机做到这一点?

2个回答

编辑的问题似乎提到打印头的实际挤出机需要归位/限制自己. 答案是这不是必需的。当操作直接或鲍登驱动的挤出机设置时,您知道(或者您可以通过实验测量或找出)长丝从​​挤出机入口到热端(例如加载新长丝)的距离。如果已经加载,因为您之前打印过,您也知道耗材在哪里(打印后耗材可能会停止,我个人在打印后将耗材缩回几毫米)。例如,当新打印开始时,您通常会在温度下反转回缩并挤出一些额外的灯丝以准备喷嘴以抵消渗出的灯丝。那时,喷嘴已准备好,然后使用 gcode G92 E0 告诉挤出机这是零长度的开始,即长丝的原始位置。所有这些通常在切片器的启动代码中完成,

下面的这个答案解决了最初的问题,这个问题不太清楚。它被描述为包含需要正确归位的挤出机的头部正常的终端挡块(可以是机械或光学开关)已经确保打印机头(包含一个或多个挤出机)正确归位(如果在您的打印机固件中正确配置)。您在固件中定义的原点偏移定义您从原点 (0,0,0) 开始。

您的问题没有说明您使用什么固件,但例如在 Marlin 固件中,这些设置可以在固件配置文件中找到

在这个文件中定义了以下内容:

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0

这些值必须根据您的开关与热床原点之间的偏移量进行更改(例如 Prusa 型打印机的原点位于左前)。

对于我的 Prusa 克隆打印机,我定义了:

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -35
#define Y_MIN_POS -12

这表示 X 轴的归位开关位于原点左侧 35 mm 处,依此类推。

我认为这个问题已经得到了回答(如果可能的话,因为这个问题仍然不清楚你的意思),但让我尝试用不同的方式来表达。

你必须问自己什么是归位,你为什么要这样做。归位轴的目的是在空间中设置它们的 0 位置。这意味着任何后续移动都将与这些 0 位置相关,并且假设电机不跳过任何步骤,应该允许在整个打印过程中在构建体积内准确定位打印头。换句话说,它们的相对位置应该与它们的绝对位置相匹配。如前所述,挤出机轴不会像这样工作。

现在,我认为您的问题中的一些混淆来自您将挤出机归位的意思。挤出机位置由前面提到的 X、Y 和 Z 轴定义。然而,挤出机轴控制着热端内长丝的位置,因此有多少长丝被挤出到构建体积中。该轴在打印开始时使用 G92 任意设置为 0,因为与空间轴不同,该轴的绝对位置不是特别重要。严格来说,如果您要关心挤出机轴的绝对位置,home 可能是滚动的开始。然而这无关紧要。在打印过程中,您所关心的只是挤出机轴在整个打印过程中保持一致,以实现准确的挤出。

因此,通常在打印开始时,您将灌注喷嘴以确保塑料已准备好被挤出,因为上次打印的渗出液可能会在移动挤出机轴和实际挤出塑料之间产生延迟。然而,一旦喷嘴准备好,轴位置将仅设置为 0,然后该轴的所有未来位置都将相对于它在卷上开始的位置。

希望这会有所帮助,但如果没有,我认为我们仍然需要对您实际尝试完成的内容进行更多说明。