这一节将教你配置3D 打印机每个轴中的限位开关。用G28 命令会让3D 打印机的3个轴回零方向运动直到碰到限位开关。限位开关如果没有5V 电源作为产生信号源的话,配置ENDSTOPPULLUPS 会确保让固件产生一个信号、当限位开关接通时才会产生明确的数字信号0。
如需了解更多请参考RepRap wiki 的(机械限位开关)Mechanical Endstop, OptoEndstop 2.1(光学限位开关) and Gen7 Endstop 1.3.1。(最好就是按机械开关的原理图来制作限位开关,这样的效果最好。)
限位开关上拉电阻总体控制–194行
// corse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
Marlin固件默认是需要限位开关的上拉电阻的。从207行开始固件为每个限位开关分配独立一个上拉电阻,如果194行被取消则从197行开始的上拉电阻控制都会一并取消。这样方便你自己的3d 打印机采用不同类型的限位开关。一般来说X轴和Y 轴采用机械限位开关,可以不需要制作3线的数据口,而Z轴的光学开关默认为3线的数据口。这是光学开关就不需要使用到ENDSTOPPULLUPS注释。
限位开关上拉电阻细分控制 – 196行
#ifndef ENDSTOPPULLUPS
// fine Enstop settings: Individual Pullups. will be ignord if ENDSTOPPULLUPS is defined
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
#endif
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
// set to true to invert the logic of the endstops.
const bool X_ENDSTOPS_INVERTING = false;
const bool Y_ENDSTOPS_INVERTING = false;
const bool Z_ENDSTOPS_INVERTING = false;
通常情况下Z轴的限位开关是放在Z轴最大限位,这样可以使hot end 可以免受挤压。为了达到这个目的,这样就需要去掉注释。但是这行对于那些没有最大限位开关的主控板是没有用的哦!
关闭轴 – 228 行
// Disables axis when it’s not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z true
#define DISABLE_E false // For all extruders