أنت هنا:إصنعها»المحركات»المحركات الخطوية»برمجة المحرك الخطوي الجزء 1

برمجة المحرك الخطوي الجزء 1

كتبه المحركات الخطوية 28208 1
آخر تعديل في الأحد, 06 كانون1/ديسمبر 2020 17:57
برمجة المحرك الخطوي - الجزء 1
قيم الموضوع
(7 أصوات)

يستعمل المحرك الخطوي (أو خطوة خطوة) في صناعة الكثير من الآلات كالطابعات وقارئ الأقراص المرنة وآلات التقطيع CNC والأذرع والأيادي الآلية وما إلى ذلك... ونظرا لأهمية سنسرد لكم في هذا المقال كيف تتعاملون معه بسهولة.


المحرك الخطوي

 

المحرك الخطوي (stepper motor, moteur pas à pas) هو من أدق المحركات الكهربائية حيث يمكنه أن يدور بزاوية محددة في اتجاه عقارب الساعة أو العكس. التحكم بزاوية الدوارن له أهمية كبيرة في صناعة الآلات التي تعتمد على الدقة في الأداء كالطابعات واللأذرع الآلية وما إلى ذلك. إذا استعطت أن تفهم كيفية برمجته سيكون من السهل عليك إنجاز آلات دقيقة متعددة.

 

سندرج لك في هذا المقال الطريقة الأولى للتحكم بهذا المحرك. وهي صناعة كنترولور المحرك (المتحكم بالمحرك أوMotor controller ) باستعمال مركبات اليكترونية بسيطة. أما الجزء الثاني فسنتناول فيه، إن شاء الله، استعمال كنترولورات مصنعة مخصصة لهذا العمل دون الحاجة إلى صنعها.

 

تعني كلمة خطوة أصغر زاوية يمكن للمحرك أن يدور بها.

يوجد نوعين من المحركات الخطوية: أحادية القطب (unipolar) وثنائية القطب(bipolar).

image002

  


أين تجد المحرك الخطوي؟

 

تجده في العديد من الأجهزة. ويمكنك الحصول عليه بسهولة من الأجهزة القديمة كقارئ الأقراص المرنة (floppy reader, lecteur disquettes) و الطابعات.

 


كنترولور المحرك الخطوي

 

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

 

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

 


استعمالات 

 

 


مكونات المحرك الخطوي

 

image003

يتكون المحرك الخطوي في حالاته المبسطة من 4 وشيعات.

تنشيط هذه الوشيعات يمكن المحرك من الدوران بخطوات في الاتجاه المرغوب.

image004

  


التحكم بواسطة الترنزستور (طريقة 4 أسلاك كهربائية)

 

تقديم

ربما من بين أسهل الطرق لصناعة كنترولور المحرك الخطوي هو الاعتماد على الترنزستورات. وهذا ما نريد أن نريه اليوم لك.

ستحتاج بطبيعة الحال إلى بعض المقاومات الكهربائية والصمامات الثنائية.

 

 

الدارة الكهربائية

 image005

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

 

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

 

رغم بساطة تركيبها إلا منفعتها كبيرة. يمكن استعماله كعاكس كهربائي أي: (انظر إلى طريقة السلكين الكهربائيين أسفله)

  • عندما يكون المدخل في حالة خمول (low) يصبح المخرج في حالة نشاط (high)
  • عندما يكون المدخل في حالة نشاط (low) يصبح المخرج في حالة خمول (high)

 

من الأفضل أيضا إضافة صمام ثنائي من صنف (snubber diode) لإيقاف أي تيار قد ينتج بسبب الوشيعة داخل المحرك الخطوي.

 image006

بما أن للمحرك الخطوي أربع وشيعات سنحتاج إذن لأربع ترنزسيتورات. وبالتالي بناء على هذه الدارة البسيطة ستكون الدارة الكهربائية لكنترولور المحرك الخطوي كما يلي:

image007 

image008 

وبالتالي بالنسبة لهذه الدارة الكهربائية سنحتاج للمركبات التالية:

  •         بطاقة Arduino
  •         المحرك الخطوي (unipolar)مؤخود من أحد الأجهزة التابعة للحاسوب.
  •          4 ترنزستورات من فئة 2n3904 NPN
  •          8 مقاومات كهربائية 2.2kohm
  •          4 صمامات ثنائية عادية 1n4000 
  •          أسلاك كهربائية

 

برمجة

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

 

والجدول جانبه يبين متتالية بسيطة المسببة لدوران المحرك.

 

image009

 

أما بالنسبة لتحقيق دورة كاملة للمحرك الخطوي الذي أملكه فهو يتطلب 200 متتالية.

 image010

#include <Stepper.h>  //استدعاء مكتبة دوال المحركات الخطوية
/* قم بتغيير القيمة التالية حسب عدد الخطوات التي يتطلبها محركك*/
#define STEPS 200 
/* قم بتعريف متغير للمحرك مصحوبا بعدد الخطوات وأرقام المرابط المتصل بها*/
Stepper stepper(STEPS, 2, 3, 4, 5); 
void setup()
{
/* تهيئة مولد الأعداد العشوائية*/ 
  randomSeed(analogRead(5));
void loop() {
/* لنأخذ عدد عشوائي من أجل الاتجاه والمسافة للتحرك*/ 
  int rand = random(-200, 200);  
   /* خذ سرعة عشواءية أيضا*/ 
  int spd = random(25, 100);  
 /*تنفيذ*/ 
  stepper.setSpeed(spd);
  stepper.step(rand);  
  delay(1000); 
}

  


التحكم بواسطة الترنزستور (طريقة السلكين الكهربائيين)

 

تقديم

للبطاقة Arduino عدد محدد من المرابط. وبالتالي فاستعمال الطريقة السابقة سيكلفك استغلال 4 مرابط من البطاقة Arduino. وهذا قد لا يناسبك عندما تريد بناء مشروع كبير يعني! فهل يمكننا استعمال سلكين فقط عوض أربع؟

قلنا مسبقا أن الجزء الرئيسي للدارة الكهربائية أعلاه يمكن أن يلعب دور العاكس الكهربائي. بمعنى أنه إذا أدخلت القيمة 0 فسيكون الخارج هو 1 والعكس بالعكس. باستعمال هذه الخاصية يمكننا الاعتماد على مربطين فقط عوض أربع.

 

إذا تمعنت في المتتالية جانبه للمحرك الخطوي، ستجد أن قيمتي 1aو 1bمختلفتين دائما (أي عندما تكون الواحدة منهما هي 1 تكون الأخرى 0 والعكس بالعكس).

image011

ونفس الشيء بالنسبة لقيمتي 2a و 2b.

 image012

 

الدارة الكهربائية

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

 image013

بالاعتماد على هذه التعديلات ستصبح دارة كنترولور المحرك كالتالي:

image014 

image015 

 

برمجة

اذهب إلى السطر في في الشيفرة الذي يبدوا كالتالي: 

Stepper stepper(STEPS, 2, 3, 4, 5); 

قم بتعديله كما يلي: 

Stepper stepper(STEPS, 2, 3); 

أما باقي الشيفرة فأبقه كما هو. 

 


تأليف

 

تأليف وترجمة بتصرف: محمد السهلي. 

{jumi [*3]}


المراجع

 

http://www.azega.com/controlling-a-stepper-motor-with-an-arduino/

http://www.azega.com/controlling-a-stepper-motor-with-an-arduino-part-2/

http://ar.wikipedia.org/wiki/D9%88%D9%8A

http://en.wikipedia.org/wiki/Stepper_motor

مقالات أخرى من نفس الفئة برمجة المحرك الخطوي الجزء 2 »

التعليقات  

كريمmj
0 # كريمmj 2017-01-15 05:41
هذه الذائرة لايمكن ان تعمل , باستعمال مربطين فقط.
رد | رد مع اقتباس | اقتباس | تقرير إلى المدير

أضف تعليقا


إصنعها يريد أن يتأكد أنك لست روبوتا، لذلك أحسب ما يلي:

كود امني
تحديث