How To Control a Track Linear Actuator with Arduino

كيفية التحكم في مشغل خطي بمسار باستخدام Arduino

Adam Morissette
Adam Morissette
PA Engineer

يُعد المشغل الخطي بمسار PA-18 أكبر مشغل لدينا بطول ثابت، ويُستخدم على نطاق واسع في الخزائن المخصصة وأتمتة المنازل والروبوتات. يمكنك بسهولة التحكم في مشغل باستخدام لوحة Arduino، وستعرض هذه المقالة كيفية بناء وبرمجة مشغل خطي متحكم به عبر Arduino ويمكن تكييفه بسهولة ليلائم تطبيقك!

 

الأجهزة المطلوبة

العناصر التالية من العتاد مطلوبة لمشغل خطي متحكم به عبر Arduino، وجميعها يمكن شراؤها من Progressive Automations:

 

توصيلات النظام

المشغل المستخدم في هذا الإعداد يحتاج إلى جهد دخل 12VDC وحتى 8A من التيار عند الحمولة الكاملة. هذه القيم أعلى بكثير مما يستطيع متحكم Arduino توفيره، وقد تتسبب في خروج دخان "سحري" من الأردوينو. لتجنب تلف Arduino، نستخدم جسر H من نوع MegaMoto Plus. فهذا الجسر قادر على تلبية متطلبات القدرة ويمكن استخدامه بسهولة للتحكم في مشغل عبر Arduino.  

في هذا النظام، هناك توصيلات من Arduino إلى جسر H MegaMoto Plus، وإلى زري الضغط. كل زر ضغط يحتاج إلى دخل واحد يُختار من أطراف GPIO المتاحة في Arduino. لدى جسر H أربعة توصيلات مع Arduino، ثلاثة مخارج ومدخل واحد. الأطراف التي يستخدمها جسر H محددة مسبقاً ولا يمكن تغييرها.

 

المخطط الكتلي

يوضح المخطط الكتلي أدناه متطلبات القدرة والتوصيلات باختصار. يعمل Arduino على تغذية 5V ويعمل جسر H على 12V. إذا كنتَ تستخدم مزودَي طاقة منفصلين، فمن المهم توحيد نقاط التأريض بينهما لتجنب سيناريو الأرضي العائم.

 

مخطط كتلي

 

أوامر Arduino

ستحتاج إلى تثبيت بيئة Arduino IDE على كمبيوتر مكتبي أو محمول. ضع في اعتبارك أن توصيلات نظامك ستؤثر على كود Arduino الخاص بك. لذلك من المهم التحقق المزدوج من توصيلاتك ومقارنتها مع الكود الذي أدخلته.

يُستخدم أمر pinMode في Arduino لتعريف الأطراف كمدخلات أو مخارج. ولتغيير الإشارة التي يرسلها Arduino إلى طرف معين، تُستخدم الأوامر digitalWrite و analogWrite. بالإضافة إلى ذلك، تُستخدم الأوامر digitalRead و analogRead عندما يحتاج Arduino إلى التحقق من الإشارة على طرف معين.

في البرنامج أدناه، يُستخدم الأمر digitalWrite لتمكين أو تعطيل جسر H، ولتهيئة الأطراف المستخدمة لأزرار الضغط. ويُستخدم الأمر analogWrite لتعيين قيمة إشارة PWM ضمن النطاق من 0 إلى 255 إلى جسر H. كما يُستخدم الأمر digitalRead للتحقق مما إذا كانت أزرار الضغط قد تم ضغطها أو تحريرها. ويُستخدم الأمر analogRead لقياس سحب التيار بواسطة محرك المشغل، والذي يؤكد وصول المشغل إلى نهاية طول الشوط الخاص به.

 

كود Arduino

يستعرض القسم التالي تعريفات البرنامج، والإعداد، والحلقة الرئيسية، ودوال أزرار الضغط لمشغل خطي متحكم به عبر Arduino. من المهم استعراض الكود سطراً بسطر لفهم كيفية عمله. هذا الفهم سيسمح لك بإجراء التعديلات بناءً على تطبيقك.

تعريفات البرنامج

هذا الجزء من الكود هو إعداد توصيلات الأطراف. تحقّق جيداً من أن توصيلاتك مع لوحة Arduino تتوافق مع الأرقام المُدخلة. يمكن تغيير هذه القيم اعتماداً على ما إذا كنت ستضيف مكونات إضافية إلى Arduino قد تتطلب إعادة توزيع توصيلات الأطراف.

كود Arduino

إعداد البرنامج

يقوم هذا الجزء من الكود بتهيئة الأطراف المتصلة كمدخلات أو مخارج. يمكن ضبط الزرين على HIGH أو LOW بحسب طريقة توصيلهما (سحب لأعلى أو سحب لأسفل). وبالرغم من أن Arduino يحوي مقاومات سحب داخلية، قد ترغب بإضافة مقاومة خارجية لإزالة الاهتزاز (debounce) عن المفاتيح ومنع التفعيل الخاطئ.

كود Arduino #2

الحلقة الرئيسية

تتحقق الحلقة الرئيسية باستمرار مما إذا كانت الأزرار قد ضُغطت، وتُشغّل قسماً معيناً من الكود حسب نتيجة دالة زر الضغط. تتضمن الشفرة جزء حالة (State Machine) لتحديد ما الذي يفعله المشغل الخطي المتحكم به عبر Arduino وكيف يجب أن يستجيب بناءً على المدخلات (أي أزرار الضغط).

كود Arduino #3
كود Arduino #4

 

دوال أزرار الضغط

تقرأ هذه الدوال حالة أزرار الضغط رقمياً للتحكم في مشغل باستخدام Arduino. تحتوي كل دالة زر ضغط على حلقة لإزالة الاهتزاز داخل عبارة if الرئيسية لمنع التفعيل الخاطئ وإرسال إشارة خاطئة إلى Arduino. وتكون قيمة منطقية (Boolean) هي خرج هذه الدوال. على سبيل المثال، إذا تم الضغط على زر البدء، سيتغير متغير startButton إلى true. ثم تُستخدم القيمة المنطقية في الحلقة الرئيسية لاتخاذ قرارات أخرى.    

كود Arduino #5

 

كلمات أخيرة

تفوق وظائف هذا النظام ما عُرض في هذه المقالة. إذ يمكن استخدام متحكم Arduino وجسر H MegaMoto Plus لتنفيذ روتينات تحكم أكثر تعقيداً. هذا الإعداد قادر على التحكم بالسرعة المتغيرة من خلال استخدام الأمر analogWrite لتعيين إشارة PWM. ويمكن مراقبة تيار محرك المشغل لاستخدامه في استشعار الحمولة لتفعيل أوامر إضافية.

إضافة إلى ذلك، يمكن توصيل حساسات إضافية للحصول على مشغل خطي متقدم متحكم به عبر Arduino. على سبيل المثال، يمكن توصيل حساس فوق صوتي لبدء/إيقاف تشغيل المحرك عندما تكون على مسافة معينة، أو يمكن استخدامه لتفعيل مجموعة من الوظائف الممتعة الأخرى. الاحتمالات لا تنتهي. ومع ذلك، إذا بدأت أطراف Arduino بالنفاد، يمكنك اختيار طراز Arduino مختلف. وبدلاً من ذلك، يمكن ربط عدة لوحات Arduino على التوالي للتواصل فيما بينها ومع مختلف المكونات، لكن هذا المسار سيتطلب قدراً جيداً من خبرة البرمجة.

لمزيد من المعلومات، يرجى مراسلتنا عبر البريد الإلكتروني على sales@progressiveautomations.com، أو الاتصال بنا على 1-800-676-6123.