End Stop 限位开关,3d打印机限位器开关End Stop 电路介紹对许多不熟悉电子电路的同好还说,是一团难以摸透的迷雾。控制板上明明有三个脚位,為什麼接两隻脚就可以用?微动开关上,接点有分NC、NO,是什麼意思啊?控制板上的S脚位是作什麼用的?S脚位直接跟 "-" 脚位短接在一起,為什麼不会烧毁?Marlin设定裡面,X_MIN_ENDSTOP_INVERTING 到底要设成 "true",还是"false"?
RAMPS控制板上的限位开关脚位
先来解释RAMPS控制板上,关於限位开关的脚位。总共有六组限位开关脚位,分别定义给XYZ三轴的MAX/MIN位置。每组脚位各自有 "S"脚位、"-"脚位、"+"脚位。"+"脚位连结到RAMPS系统裡的5V电源供应系统;"-"脚位连结到接地线路;"S"脚位连结到Arduino的数位输出/入脚位(IO),在Arduino+Marlin系统内,是设定成以一根电阻拉到高电位的"数位输入"脚位。
电路I/O脚位的秘密
Pull high 电路示意图
上图中,PIN12是CPU侦测电位高低的IO脚位。透过一支10K殴母的电阻,接到系统的电源供应线路(5V)。所以当S1按钮放开的时候,PIN12脚位侦测的的电压会非常接近5V,软体系统侦测这支脚位的状态时,会读取到"1"的结果。这个状态下,软体系统会定义為"Triggered"。当S1按钮被按下,这时PIN12会直接接地,软体系统侦测这支脚位的状态时,会读取到"0"的结果,判定為"Open"。这时5V的电源,会透过10K的电阻再接到接地点,所以并不会发生电源直接短路到接地线而烧毁电源供应系统(5V稳压IC)。註1
微动开关脚位的定义
微动开关一般有三支接脚,分别為 "C"共同接脚、"NO" Normal Open 通常开路接脚、"NC" Normal Close 通常短路接脚。顾名思义,"通常开路接脚",在微动开关被放开的时候,跟"C"接脚是断开的,被按压后,跟"C"接脚才短路接在一起;"通常短路接脚"则是在放开时,跟"C"接脚短路接在一起,被按压后才跟"C"接脚断开不通电。所以透过不同的接线方法,可以选择被按压时,是要让线路通电、或是要断电。
Marlin内与限位器相关的设定
再来要了解Marlin Configuration.h裡,对於End-Stop脚位状态的定义,要怎麼设定。一般软体设计,都会定义IO脚位读取值為1时,是為脚位驱动(Triggered)。Marlin裡也是这麼设计的。所以当RAMPS的S脚位浮接(不接任合线路)时,会视為Triggered。但是如果硬体线路必须要定义成S脚位為低电位时当作Triggered,这时可透过"ENDSTOP_INVERTING"的设定,改变Marlin对S脚位的定义。当设定值為"true",S脚位接地会变成"Triggered"。
另外还有 "DISABLE_MAX_ENDSTOPS" 跟 "DISABLE_MIN_ENDSTOPS" 两个设定值,是用来告诉Marlin,是否有接 "MAX_ENDSTOPS" 跟 "MIN_ENDSTOPS"。例如没有接MAX End-Stop的话,可以把 "//#define DISABLE_MAX_ENDSTOPS" 最前面的 "//" 删掉,这样Marlin就不会去读取MAX End-Stop的状态了。
融会贯通
综合上述的所有设计细节,就可以融会贯通的解答END STOP相关的问题了。
如果单纯使用微动开关当作限位器,那一定要接RAMPS上的 "S" 跟 "-" 脚位。因為"S"脚位在控制板CPU内部已经被Pull-up到高电位了,所以想要让"S"脚位的状态改变,只有把他拉去接地一途。"S"接到"+"是没有作用的。
"S"脚位在CPU内部已经内见Pull-up电阻了,所以直接连接到"-"接地脚位,是不会烧毁的。
"ENDSTOP_INVERTING"设定值要看End-stop硬体线路的接法而定,如果希望"S"脚位為高电位或浮接时,定义為"Triggered",则"ENDSTOP_INVERTING"要设定成"false";反之如果希望"S"脚位為低电位或接地时,定义為"Triggered",则"ENDSTOP_INVERTING"要设定成"true"。
整个系统上有好几个会改变状态的变数,要全部融会贯通,才能设计出让限位器正常工作的设定。如果不太确定自己能设计出对的设定,建议还是先依照i3组装笔记内的说明进行安装。而且务必检查有没有接错,再开始做马达的测试。
最后,祝大家列印愉快~
註1:ATmega-2560 的IO pin 有内建 Pull-Up 电阻在IC内部,不需要在外部电路另外安排 Pull-Up 电阻。Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf
|
|