تحكم في الاستيبر مــــــــــوتور مع الدريفر A4988 باستخدام الاردوينو اكتب تعليقُا

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

ـــــــــــــــــــــــــــــــــــــــــــــــــــــ

إذا كنت تخطط لإنشاء طابعة ثلاثية الأبعاد أو آلة CNC ، فستحتاج إلى التحكم في مجموعة من المحركات ذات السائر أو المعروفة باسم الاستيبر موتور . ووجود سيطرة واحدة على الاردوينو كلها يمكن أن تأخذ الكثير من المعالجة ولا تترك لك مساحة كبيرة لفعل أي شيء آخر ؛ ما لم تستخدم درع قيادة أو درايفر مخصصًا للمحرك السائر – A4988 .

يمكن أن يتحكم في كل من السرعة والاتجاه الدوار للمحرك السائر ثنائي القطب مثل NEMA 17 مع اثنين فقط من الاطراف . كم ذلك رائع !

هل تعرف كيف تعمل محركات السائر ؟

تستخدم محركات السائر عجلة مسننة ومغناطيسات كهربائية لتدوير العجلة خطوة واحدة في وقت واحد .

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

تؤثر الطريقة التي تنبض بها على هذه الملفات بشكل كبير على سلوك المحرك .

  • يحدد تسلسل النبضات اتجاه دوران المحرك .
  • يحدد تردد النبضات سرعة المحرك .
  • يحدد عدد النبضات مدى دوران المحرك .

A4988 Stepper Motor Driver Chip

في قلب الوحدة ، يوجد درايفر Microstepping من Allegro – A4988 . إنها صغيرة الحجم (0.8 ″ × 0.6 ″ فقط) .

A4988-Stepper-Motor-Driver-Chip

يتمتع محرك السائر A4988 بسعة إخراج تصل إلى 35 فولت و 2 أمبير ، ويسمح لك بالتحكم في محرك السائر ثنائي القطب بتيار إخراج يصل إلى 2A لكل ملف مثل NEMA 17 .

الدرايفر لديه مترجم مدمج لسهولة التشغيل . هذا يقلل من عدد دبابيس التحكم إلى 2 فقط ، واحد للتحكم في الخطوات والآخر للتحكم في اتجاه الحركة .
يقدم الدرايفر 5 قرارات خطوة مختلفة بمعنى . خطوة كاملة ، نصف خطوة ، ربع خطوة ، الخطوة الثامنة ، و الخطوة السادسة عشرة .

أطراف A4988 Motor Driver

يحتوي الدرايفر A4988 على 16 دبوسًا يربطه بالعالم الخارجي . الاتصالات كالتالي :

A4988-Stepper-Motor-Driver-Pinout

دعونا نتعرف على جميع الاطراف واحدة تلو الأخرى .

دبابيس اتصال الطاقة

يتطلب A4988 بالفعل اتصالين بالطاقة .

A4988-Stepper-Motor-Driver-Power-Supply-Inputs
  • VDD & GND يستخدم لقيادة الدوائر المنطقية الداخلية التي يمكن أن تكون 3V إلى 5.5 V .

بينما،

  • VMOT & GND يوفر الطاقة للمحرك الذي يمكن أن يكون من 8 فولت إلى 35 فولت .

وفقًا لورقة البيانات ، يتطلب تزويد المحرك مكثفًا مناسبًا للفصل قريبًا من اللوحة ، ويكون قادرًا على تحمل 4A .

تحذير :

يحتوي هذا الدرايفر على المكثفات الخزفية المنخفضة ESR على متنها ، مما يجعله عرضة لارتفاع الجهد . في بعض الحالات ، يمكن أن تتجاوز هذه الطفرات 35V (أقصى قدر من الجهد من A4988) ، مما قد يؤدي إلى تلف دائم في الوحة وحتى المحرك .

تتمثل إحدى طرق حماية الدرايفر من مثل هذه الطفرات في وضع مكثف كبير كهربائياً يبلغ 100µF (47µF على الأقل) عبر دبابيس تزويد الطاقة في المحرك .

دبابيس التحديد Microstep

يسمح الدرايفر A4988 microstepping من خلال السماح بتحديد مواقع الخطوة المتوسطة . يتم تحقيق ذلك من خلال تنشيط الملفات ذات المستويات الحالية المتوسطة .

على سبيل المثال ، إذا اخترت قيادة NEMA 17 ذو 1.8 درجة أو 200 خطوة لكل دورة في وضع الربع خطوة ، فسيقوم المحرك بإعطاء 800 خطوة في الدورة.

A4988-Stepper-Motor-Driver-Microstep-Selection-Inputs

يحتوي الدرايفر A4988 على ثلاثة مدخلات من حجم محدد للقرار (الدقة) وهي MS1 و MS2 و MS3 . من خلال تحديد مستويات منطقية مناسبة لهذه الاطراف ، يمكننا ضبط المحركات على أحد دقة الخطوات الخمس .

MS1 MS2 MS3 Microstep Resolution
Low Low Low Full step
High Low Low Half step
Low High Low Quarter step
High High Low Eighth step
High High High Sixteenth step

يتم سحب دبابيس تحديد microstep الثلاثة هذه بواسطة مقاومات سحب داخلية ، لذلك إذا تركناها منفصلة ، فسيعمل المحرك في وضع التدرج الكامل .

التحكم في دبابيس الإدخال

الدرايفر  A4988 لديها اثنين من مدخلات التحكم وهي STEP و DIR.

A4988-Stepper-Motor-Driver-Motor-Control-Inputs
  • تتحكم مدخلات STEP في خطوات المحرك . كل نبضة عالية يتم إرسالها إلى هذا الدبوس تخطو المحرك بعدد من الخطوات الدقيقة المحددة بواسطة دبابيس تحديد Microstep . كلما كانت النبضات أسرع ، كلما كان المحرك يدور بشكل أسرع .
  • يتحكم إدخال DIR في اتجاه دوران المحرك . سحبها عالية يقود المحرك في اتجاه عقارب الساعة وسحبها LOW يدفع المحرك عكس اتجاه عقارب الساعة .
    إذا كنت تريد فقط تدوير المحرك في اتجاه واحد ، يمكنك ربط DIR مباشرة بـ VCC أو GND وفقًا لذلك .

لا يتم توصيل دبابيس STEP و DIR إلى أي جهد معين داخليًا ، لذلك يجب ألا تتركها تطفو في مشروعك .

دبابيس التحكم على حالات الطاقة

يحتوي A4988 على ثلاثة مدخلات مختلفة للتحكم في حالات الطاقة الخاصة بها . EN ، RST ، و SLP .

A4988-Stepper-Motor-Driver-Power-States-Control-Inputs
  • يعتبر EN Pin من المدخلات المنخفضة النشطة ، عند تمكينها LOW (المنطق 0) ، يتم تمكين تشغيل A4988 . افتراضيًا ، يتم توصيل هذا الدبوس LOW بحيث يتم تمكين التشغيل دائمًا ، إلا إذا قمت بتوصيلها بقيمة مرتفعة .
  • SLP Pin إدخال منخفض . بمعنى أن توصيل هذا الدبوس LOW يضع الدرايفر في وضع السكون ، مما يقلل من استهلاك الطاقة . يمكنك استدعاء هذه الخاصية عندما لا يكون المحرك قيد الاستخدام للحفاظ على الطاقة .
  • RST هو أيضا إدخال منخفض . عند توصيلها بجهد منخفض ، يتم تجاهل جميع مدخلات STEP ، حتى توصل بقيمة عالية. يقوم أيضًا بإعادة التشغيل عن طريق تعيين المترجم الداخلي إلى حالة Home محددة مسبقًا . الحالة الرئيسية هي الموضع الأولي من حيث يبدأ المحرك ويختلف باختلاف دقة microstep .
تلميح :

دبوس RST العائم . إذا كنت لا تستخدم الدبوس ، فيمكنك توصيله بمقبس SLP / SLEEP المجاور لجعله مرتفعًا وتمكين الدرايفر .

دبابيس الإخراج

يتم تقسيم قنوات الإخراج الخاصة بمحرك المحرك A4988 إلى دبابيس 1B و 1A و 2A و 2B .

A4988-Stepper-Motor-Driver-Output-Pins

يمكنك توصيل أي محرك استيبر موتور ثنائي القطب له فولتية بين 8V إلى 35 V .

يمكن لكل دبوس إخراج على الوحدة توصيل ما يصل إلى 2A للمحرك . ومع ذلك ، فإن مقدار التيار الموفر للمحرك يعتمد على إمداد الطاقة للنظام ، ونظام التبريد وإعداد الحد من التيار .

نظام التبريد - تقليل الحرارة

يؤدي تبديد الطاقة المفرط للدرايفر  IC A4988 إلى ارتفاع درجة الحرارة التي يمكن أن تتجاوز قدرة IC ، مما قد يؤدي إلى إتلاف نفسه .

حتى إذا كان IC driver A4988 لديه أقصى تصنيف حالي يبلغ 2A لكل ملف ، فلا يمكن للرقاقة توفير سوى حوالي 1A لكل ملف دون زيادة الحرارة .
لتحقيق أكثر من 1A لكل الفائف ، يلزم وجود المشتت الحراري أو طرق التبريد الأخرى .

A4988-Stepper-Motor-Driver-Heatsink

عادة ما يأتي A4988 مع غرفة تبريد . ينصح بتثبيتها قبل استخدام برنامج التشغيل .

الحد من التيار

قبل استخدام المحرك ، هناك تعديل صغير نحتاج إلى إجراؤه . نحن بحاجة إلى الحد الأقصى لمقدار التيار المتدفق عبر لفائف السائر ومنعها من تجاوز التيار المقنن للمحرك .

A4988-Current-Limiting-Potentiometer

هناك مقياس جهد صغيرأو مقاومة متغييرة في A4988 يمكن استخدامه لضبط الحد من التيار . يجب عليك تعيين حدود التيار ليكون أقل من تيار المحرك.

الأسلاك - توصيل A4988 مع اردوينو UNO

الآن بعد أن عرفنا كل شيء عن الدرايفر ، سوف نقوم بتوصيله إلى الاردينو لدينا .

الاتصالات بسيطة إلى حد ما . ابدأ بتوصيل VDD و GND (بجانب VDD) إلى دبابيس 5V والأرضي على الاردوينو . يتم توصيل دبابيس إدخال DIR و STEP باطراف الإخراج الرقمي رقم 2 و 3 على الاردوينو على التوالي .
قم بتوصيل محرك السائر بدبابيس 2B ، 2A ، 1A و 1B . في الواقع ، تم وضع A4988 بشكل ملائم لمطابقة الموصل ذي الأربعة أسنان في العديد من المحركات ثنائية القطب ، لذلك لن تكون هناك مشكلة .

تحذير :

قد يؤدي توصيل محرك السائر أو فصله أثناء تشغيله إلى تدمير الدرايفر .

بعد ذلك ، قم بتوصيل RST pin بمفتاح SLP / SLEEP المجاور للحفاظ على تمكين الدرايفر . احتفظ أيضًا بقطع دبابيس تحديد microstep لتشغيل المحرك في وضع الخطوة الكاملة .

أخيرًا ، قم بتوصيل مصدر طاقة المحرك بدبابيس VMOT و GND . تذكر وضع مكثف إلكتروليتي كبير 100µF  عبر دبابيس تزويد الطاقة ، بالقرب من اللوحة .

Wiring-Nema-17-Stepper-Motor-to-A4988-driver-Arduino
تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

الكود البرمجي- مشروع أساسي

سوف يوفر لك الكود التالي فهمًا تامًا لكيفية التحكم في السرعة واتجاه الدوران لمحرك السائر ذي القطبين مع الدرايفر A4988 لمحرك السائر ويمكن أن يكون بمثابة أساس لمزيد من التجارب والمشاريع العملية .

لتحميل الكود البرمجي اضغط هنا
// Define pin connections & motor's steps per revolution
const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 200;

void setup()
{
  // Declare pins as Outputs
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop()
{
  // Set motor direction clockwise
  digitalWrite(dirPin, HIGH);

  // Spin motor slowly
  for(int x = 0; x < stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(2000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(2000);
  }
  delay(1000); // Wait a second
  
  // Set motor direction counterclockwise
  digitalWrite(dirPin, LOW);

  // Spin motor quickly
  for(int x = 0; x < stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }
  delay(1000); // Wait a second
}

أنتهت !!!

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *