 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:333
|
|
01-08-2017, 07:26 PM
المشاركة 5
|
|
محركات الخطوة Step Motors
محركات الخطوة هى أجهزة كهروميكانيكية تقوم بالدوران المتقطع (المجزء) فى شكل خطوات وكل خطوة بقيمة معينة من الدرجات . يوجد نوعان من محركات الخطوة هما الأحادى القطبية unipolar والثنائى القطبية bipolar .
المحرك أحادى القطبية له أربع ملفات حيث يتم تنشيط ملف أو اثنين فى نفس الوقت ، ودائما تكون بنفس القطبية ( أحادى القطبية) .
محركات الخطوة ثنائية القطبية لها ملفان فقط حيث يتم تنشيطها فى نفس الوقت بقطبية متناوبة (ثنائى القطبية) .
هذا التأثير يولد تسلسل قطبية بالملفات . بالتحكم فى سرعة التتابع يتم التحكم فى سرعة دوران المحرك بينما ترتيب التسلسل يتحكم فى اتجاه دوران المحرك .
الشكل الآتى يبين المظهر الطبيعى ورموز برنامج إيزيس لهذه المحركات :

المحركات أحادية القطبية unipolar :
المحركات أحادية القطبية unipolar ، عموما لها خمسة أو ستة أطراف والتى تناظر أربع أطراف للملفات ، وطرف أو اثنين مشتركة .
الشكل التالى يبين دائرة ملفات المحرك أحادى القطبية :

تسلسل التنشيط للمحركات أحادية القطبية يمكن أن يكون فى أحد شكلين :
• تنشيط دخل واحد فقط .
• تنشيط دخلين فى نفس الوقت .
عندما يتم تنشيط دخلين فى نفس الوقت يتم زيادة عزم الدوران torque للمحرك ولكن فى نفس الوقت يكون التيار أكبر .
الجدول التالى يبين طريقة تسلسل التفعيل فى الحالتين :

المثال التالى يبين طريقة التحكم فى محرك إحادى القطبية بالميكروكونترولر PIC16F628A مع استخدام ساعة بتردد 4MHz ، لهذا الغرض يتم حفظ تسلسل المحرك فى مصفوفة ، شكل البرنامج كما يلى :
كود:
//Constants with sequence of steps.
const unsigned short STEPS[4] =
{
0b00000001,
0b00000010,
0b00000100,
0b00001000
};
void main( void )
{
//Declaration of variables.
unsigned short STEP=0;
//Port initiation
TRISB = 0xF0;
PORTB = 0;
OPTION_REG = 0; //Activation of the pull-up resistors.
while(1)//Infinite Loop.
{
//While loop to rotate in clockwise
//through pin RB6
while( Button( &PORTB, 6, 100, 0) )
{
PORTB = STEPS[STEP];
STEP++;
if( STEP==4 )STEP=0;
}
//While loop to rotate in a counterclockwise
//through pin RB7
while( Button( &PORTB, 7, 100, 0) )
{
PORTB = STEPS[STEP];
STEP--;
if( STEP==255 )STEP=3;
}
}
}
لمحاكاة هذا التدريب ببرنامج إيزيس تحتاج للأجهزة الآتية :
MOTOR-STEPPER, BUTTON, ULN2003A وبناء الدائرة الآتية :

لإجراء التمرين مع التسلسل الثنائى ببساطة يتم تغيير ترتيب التسلسل فى نفس البرنامج ونستخدم نفس دائرة المحاكاة . الترتيب الجديد يكون كما يلى :
كود:
//Constants with the sequence of steps.
const unsigned short STEPS[4] =
{
0b00000011,
0b00000110,
0b00001100,
0b00001001
};
المحركات ثنائية القطبية Bipolar motors :
التنفيذ بمحركات الخطوة ثنائية القطبية يتم من خلال قنطرة إتش H-bridge مزدوجة ، بحيث تسمح بتسلسل ثنائى القطبية . الشكل التالى يبين توزيع القدرة لهذه المحركات :

التحكم فى هذه المحركات يتطلب تسلسل قطبية بالشكل المبين بالجدول التالى :
إجراء التدريب بهذا المحرك يتم بنفس المتبع فى برنامج المحرك أحادى القطبية مع تغيير ترتيب التتابع ، فى الترتيب الجديد يفترض أن المنطق logic 1 هو + V والمنطق logic 0 هو –V . بهذه الطريقة نحصل على الترتيب التالى :
كود:
//Constants with sequence of steps.
const unsigned short STEPS[4] =
{
0b00000101,
0b00001001,
0b00001010,
0b00000110
};
البرنامج :
كود:
//Constants with the sequence of steps.
const unsigned short STEPS[4] =
{
0b00000101,
0b00001001,
0b00001010,
0b00000110
};
void main( void )
{
//Declaration of variables.
unsigned short STEP=0;
//Port initiation
TRISB = 0xF0;
PORTB = 0;
OPTION_REG = 0; //Activation of the pull-up resistors.
while(1)//Infinite Loop.
{
//While loop to rotate in clockwise
//through pin RB6
while( Button( &PORTB, 6, 100, 0) )
{
PORTB = STEPS[STEP];
STEP++;
if( STEP==4 )STEP=0;
}
//While loop to rotate in a counterclockwise
//through pin RB7
while( Button( &PORTB, 7, 100, 0) )
{
PORTB = STEPS[STEP];
STEP--;
if( STEP==255 )STEP=3;
}
}
}
للمحاكاة بواسطة برنامج إيزبس نحتاج لدائرة بها محرك ثنائى القطبية ومشغل H-bridge فى شكل دائرة متكاملة . هذه الدائرة المتكاملة هى L293D والتى تتضمن بداخلها 2 قنطرة إتش فى نفس الغلاف ، وميزتها أنها نموذجية لهذا النوع من المحركات .
المحاكاة ببرنامج إيزيس يحتاج للأجهزة الآتية :
16F628A, BUTTON, MOTOR-BISTEPPER, L293D وبناء الدائرة الكهربية التالية :

|