نحوه اتصال و تنظیم میکروسوئیچ‌ها بر روی بورد کنترلر RAMPS1.4

ماشین آلات و تجهیزات -> پرینتر های سه بعدی 2025 کاربر آکادمی پارتینه

لزوم بهکارگیری میکروسوئیچ در پرینتر سه بعدی 

نقش اصلی میکروسوئیچ‌ها در واقع اعلام نقطه‌ی ابتدایی و انتهایی هر محور پرینتر سه‌ بعدی است. با استفاده میکروسوئیچ‌ها می‌توان از عبور بیش از حد از مرزهای یک محور پرینتر و همچنین آسیب‌های ناشی از این اتفاق جلوگیری کرد. اولین گام جهت اتصال این قطعات این است که پین‌هایی که قرار است میکروسوئیچ‌ها به آن متصل شوند، بر روی برد کنترلر Ramps1.4 پیدا کنید.

ترتیب پایه‌های میکروسوئیچ

اگر از زاویه‌ای به برد کنترلر Ramps1.4 نگاه کنید که ورودی تغذیه در سمت چپ شما قرار بگیرد، آنگاه پین‌های ورودی میکروسوئیچ در گوشه‌ی فوقانی سمت راست بورد قرار خواهند گرفت. از چپ به راست  X-min،  X-max، Y-min، Y-max، Z-min، Z-max را خواهید داشت. بالاترین پین، پین های سیگنال، پین‌های میانی زمین و پین های پایینی آن 5v / vcc است.

اتصال میکروسوئیچ

همانطور که در تصویر زیر مشاهده می‌کنید، اگر از یک میکروسوئیچ ساده به عنوان End stop استفاده شود، لازم است که تنها دو سیم آن به پین سیگنال و زمین متصل شوند. ترتیب اتصال آنها  فرقی نمی‌کند. سیگنال و زمین بالاترین پین‌ها هستند. میکروسوئیچ دارای سه پین است که پین شماره 1 برای سیگنال و 2 پین دیگر  NC و NO هستند که به ترتیب به معنای نرمال بسته و نرمال باز است.

انتخاب NC یا NO

 توصیه می‌شود از NC استفاده شود. به این معنا که همواره یک جریان روی پین میکروسوئیچ وجود داشته باشد. با این کار در هنگام فشار دادن اهرم میکروسوئیچ، مدارباز شده و پاسخی ایجاد می‌شود. همچنین این بدان معناست که در حالت عادی اگر سیم و یا کانکتوری قطع شود، بلافاصله خطایی دریافت می‌شود.

اگر از NO استفاده می‌کنید، زمانی که اهرم میکروسوئیچ بسته شود مدار بسته شده و جریانی ایجاد می‌شود، در این حالت اگر سیم یا کانکتوری در حالت بسته نشدن اهرم قطع شود متوجه آن نخواهیم شد.

سابقا استفاده از پایه‌ی NO به عنوان روشی مطلوب شناخته شده بود. زیرا در مقابل نویز حساسیت کمتری داشت و بر اثر نویز ایجاد شده از جانب موتورها به طور کاذب فعال نمی‌شد. در حال حاضر به دلیل اعمال روش های فیلترینگ مناسب بر برد کنترلر ارزان قیمت Ramps حساسیت به نویز کاملا از بین رفته است.  بنابراین توصیه می‌شود از پین NC استفاده شود.

میکروسوئیچ‌های سه‌ پین

در ماژول‌های میکروسوئیچ‌های که پیشرفته‌تر بوده و دارای نشانگر LED هستند، از سه سیم استفاده می‌شود. یکی برای سیگنال ، دیگری زمین و پین دیگر به عنوان  5v/ vcc می‌باشد. در تصویر زیر نمونه ای از این ماژول‌ها را مشاهده می‌کنید.

اتصال صحیح این نوع میکروسوئیچ‌ها دارای اهمیت زیادی است. توجه داشته باشید که اگر کانکتور آن اشتباه متصل شود، در مدار بورد کنترلر Ramps1.4 اتصال کوتاه ایجاد شده و از بین خواهد رفت. توصیه می‌شود تمامی اتصالات، قبل از اعمال تغذیه توسط مولتی‌متر تست شوند.

تعیین وضعیت میکروسوئیچ با استفاده از Pronterface و فریمور مارلین 

پس از اینکه از اتصال صحیح میکروسوئیچ‌ها اطمینان پیدا کردید، باید تنظیماتی که در ادامه بیان می‌شود را بر روی کنترلر اعمال کنید.

 استفاده از Pronterface

پرینتر را به نرم‌‌افزار متصل کنید. دستوری که به منظور دریافت وضعیت میکروسوئیچ‌های متصل‌شده به کنترلر باید ارسال شود، M119  است. ابتدا با استفاده از این دستور مطمئن شوید که هیچکدام از میکروسوئیچ‌ها در حالت Trigger قرار نگرفته‌اند. در صورتیکه تنظیمات به طور صحیح انجام شده‌ باشد، در موقع عدم اعمال فشار بر اهرم میکروسوئیچ باید همگی در وضعیت Open باشند.

به منظور عیب‌یابی سیستم تمامی میکروسوئیچ‌هایی را که در حالت Open قرار گرفته‌اند، تک‌به‌تک به صورت دستی فعال کرده و دستور M119 را ارسال کنید. اگر به حالت Trigger تغییر وضعیت ندادند، نشان‌دهنده‌ی قطع بودن اتصالات و یا وجود خطا در تنظیمات فریمور است.

پیکربندی فریمور مارلین در کامپایلر Arduino IDE

تب Configuration.h را باز کرده و قسمت section homing را پیدا کنید. اطمینان حاصل کنید که عبارت زیر به صورت کامنت نباشد. در غیر این صورت از حالت کامنت خارج کرده و مجددا برنامه را بر روی پردازنده آپلود کرده و مراحل بالا را تکرار کنید.

#define ENDSTOP PULLUPS

به یاد داشته باشید که قبل از آپلود فریم مارلین باید اتصال خود را Pronterface قطع کنید. در غیر این صورت در Arduino IDE با خطا مواجه می‌شوید. در این مرحله وضعیت میکروسوئیچ‌ها را به حالت true تغییر دهید. در این صورت تمامی میکروسوئیچ‌ها در حالت Open  قرار خواهند گرفت.

#define X_MIN_ENDSTOP_INVERTING true 
#define Y_MIN_ENDSTOP_INVERTING true 
#define Z_MIN_ENDSTOP_INVERTING true
#define X_MAX_ENDSTOP_INVERTING true
#define Y_MAX_ENDSTOPINVERTING true
#define Z_MAX_ENDSTOP_INVERTING true