随着天气变冷,3D打印机容易出现热床温度加热不上去的情况。如果设置热床温度80度,经常加热到5,60度,系统就显示温度失控,报警重启设备了。 有的时候打印到中途,出现热床温度失控的情况,打印中止。
通过一段时间的摸索,终于成功的解决了这个问题。现在热床设置为80度,可以稳定的升温并且保持,没有再出现热床温度失控的问题。
打开Marlin的配置文件configuration_adv.h,
查找THERMAL_PROTECTION_BED_HYSTERESIS
可以看到以下的代码段:
/**
* Whenever an M104, M109, or M303 increases the target temperature, the
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
* hasn't increased by WATCH_TEMP_INCREASE degrees, the machine is halted and
* requires a hard reset. This test restarts with any M104/M109/M303, but only
* if the current temperature is far enough below the target for a reliable
* test.
*
* If you get false positives for "Heating failed", increase WATCH_TEMP_PERIOD
* and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set
* below 2.
*/
#define WATCH_TEMP_PERIOD 40 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* As described above, except for the bed (M140/M190/M303).
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
看注释的意思是在THERMAL_PROTECTION_BED_PERIOD的时间段内,温度需要达到THERMAL_PROTECTION_BED_HYSTERESIS值规定的温度变化,否则加热失败。
注释中同样给出了解决“加热失败”的方法,增大检测时间间隔或者减少温度值。
我将THERMAL_PROTECTION_BED_PERIOD改为120. THERMAL_PROTECTION_BED_HYSTERESIS改为10度。只要热床加热时离目标温度相差10度都不认为是温度失控,这样打印过程就再也不会因为热床温度失控而中断了。
在找到上述解决方法之前,尝试了以下方法:
1、 将固件换为Klipper. 出错的情况减少很多,可见Klipper固件的容错条件宽裕很多。同样,KLipper固件这个容错值也是可以改的。
2、给热床增加保温棉,没有任何作用,但估计可以节约一点电能。
3、将12伏热床换成24伏,同样也没解决问题。
4、换一个功率更大的电源
5、 升级Marlin固件。
另外一个是校准PID,也不能解决。 但在增加容错值之后,也最好还是校准一下PID.
发送以下命令
M303 E-1 C8 S80
校准过程结束后,将PID的值拷贝到配置文件中
编译上传。
打印一个测试方块试试: