给出串行命令时打印作业停止

3D打印 挤出机 加热床
2021-05-02 06:24:39

我想访问 3D 打印机的床温。我能够使用串行连接获取温度(感谢 Demetris 的帮助(通过串行连接访问 3D 打印机的温度传感器数据))。我现在面临的问题是,一旦我发出命令,我就会得到温度值,但是打印作业会停止。有办法解决吗?我想在打印作业进行时获取温度值。蒂亚!

1个回答

打开与打印机的串行连接通常会重置微控制器,停止打印。

串行接口有一条称为请求发送 (RTS) 的线路,它向微控制器指示计算机已准备好接收数据。当端口关闭时,这条线为 HIGH(表示计算机未准备好),当您打开串行连接时,该线变为 LOW(表示计算机现在已准备好)并且从 HIGH 到 LOW 的转换触发复位。

有多种方法可以防止这种情况:

  • 在软件中:禁用关闭时挂断 (HUPCL)。这可以防止 RTS 线在您关闭后变为高电平,从而允许其随后打开而不会导致重置。但是,这不适用于第一次尝试(第一次初始连接仍会导致重置)。如何配置取决于您的软件/驱动程序设置,但它得到广泛支持。

  • 在软件中:首先禁用 RTS 线变为低电平。我不确定这是否可以通过常见的串行驱动程序轻松实现。

  • 在软件中:修改您的工作流程以始终保持连接打开,防止发生相关的重置。

  • 在硬件方面:您的打印机主板上有一些电路,可以将 RTS 线从高电平转换为低电平以触发复位,这通常以 RTS 和 RST 之间的单个电容器的形式实现。RST 通常用一个上拉电阻(大约 10k 左右)拉高,当 RTS 转换为低电平时,电容器短暂地允许一些电流流动,将 RST 拉低。防止这种情况的一种方法是包括一个更强的上拉电阻,以克服与 RTS 线变低相关的电流消耗。DisablingAutoResetOnSerialConnection建议在 VCC 和 GND 之间使用一个 330 欧姆的电阻器。

  • 在硬件中:拆焊前面提到的电容器。