قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 31-07-2017, 06:03 PM المشاركة 1   
افتراضي المنفذات Actuators والقدرة الكهربية Power Twitter FaceBook Google+



المنفذات Actuators والقدرة الكهربية Power
المنفذات Actuators هى أجهزة كهربائية أو الكترونية والتى تقوم بإحداث تغير فى الكميات الطبيعية . هذه الكميات يمكن أن تكون درجة الحرارة temperature أو السرعة speed أو الضغط pressure أو الإضاءة light أو الرطوبة humidity أو الموضع الزاوى angularأو الخطى linear وغيرها . يمكن تشغيل المنفذات بواسطة التيار المتردد AC أو التيار المستمر DC . منفذات التيار المستمر تتضمن محركات التيار المستمر DC motors ومحركات السرفو servo motors والمصابيح المتوهجة والسلونويدات solenoids والريلايات relays وغيرها . منفذات التيار المتردد تتضمن محركات التيار المتردد AC motors والمصابيح المتوهجة والسخانات الكهربائية وغيرها .
القدرة هى كمية القدرة الكهربائية المطلوبة لمهمة معينة . وتعرف القدرة الكهربية كما يلى :



حيث Pe هى القدرة الكهربائية بالوات watts و V هو فرق الجهد عبر مقاومة الحمل الكهربائى R ، ومن ثم يمكن حساب التيار I . فى حالة استخدام الميكروكونترولر فى التحكم فى القدرة فغالبا ما يحتاج المنفذ لجهد وتيار أكبر من الذى توفره أطراف الميكروكونترولر . جهد خرج الميكروكونترولر هو 5 volts دائما والتيار يمكن أن يكون فى حدود قليل من الملى أمبير .

منفذات التيار المستمر DC Actuators :
منفذات التيار المستمر تتطلب تيار يمر دائما فى نفس الاتجاه . استخدام هذه المنفذات يستلزم نوعين من الأجهزة ، ترانزستورات القدرة power transistors أو الريلايات relays . الترانزستورات يمكن أن تكون "ترانزستورات ثنائية القطبية" BJT أو ترانزستورات موسفيت MOSFET . يتميز ترانزستورBJT بالتحكم فى التيار من خلال تيار آخر . فى ترانزستورات الموسفيت MOSFET يتم التحكم فى مرور التيار من خلال التحكم فى فرق الجهد . يعمل الترانزستور فى ثلاثة مناطق تعرف بمنطقة القطع cutoff ومنطقة التشبع saturation والمنطقة الفعالة active . المنطقة الفعالة هى الشائعة الاستخدام فى أنظمة تكبير الإشارات amplification . لكن فى حالة المنفذات يكون المطلوب فى معظم الحالات أن تكون إما فى حالة تفعيل activated أو فى حالة عدم تفعيل deactivated ، بمعنى أن يكون لها سلوك التحويل ON, OFF . وبعبارة أخرى تستخدم الترانزستورات فى الوصل والفصل . تحت هذه الشروط تعمل الترانزستورات كمفاتيح للتيار فى منطقة القطع وفى منطقة التشبع . الشكل التالى يبين رمز الترانزستور فى برنامج إيزيس :



فى الترانزستور MOSFET يتم التحكم فى مرور التيار بين المنبعsource S والمصب drain D عن طريق فرق الجهد الكهربائى للبوابة gate G .
فى الترانزستور BJT يتم التحكم فى مرور التيار بين المجمع collector C والمشع emitter E عن طريق التيار المار خلال القاعدة base B .
استخدام الأحمال الحثية inductive loads مثل المحركات والريلايات والسلونويدات له خاصية تخزين الطاقة فى شكل مجال كهرومغناطيسى ، وهذا يعنى أنه عند فصل الأحمال الحثية ، فإن طاقتها المخزنة يتم إعادتها عن طريق تيار عكسى ، هذه الظاهرة يمكن تسبب تلف ترانزستورات أنظمة التحكم ، لتجنب هذه المشكلة يتم استخدام ثنائى منحاز عكسيا لتفريغ الأحمال الحثية ، هذا الترتيب مبين فى الشكل التالى :



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



أخيرا يجب أن يتم استخدام هذه الأجهزة فى شكلها النهائى كما هو مبين بالدائرة الكهربية التالية والتى بها حمل يعمل على الجهد 120V AC :


احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً مشتاق الله ( شكر العضو على هذه المشاركة )
اعجاب مشتاق الله ( أعجبته المشاركة )
اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 31-07-2017, 06:09 PM المشاركة 2   
افتراضي


محركات التيار المستمر DC Motors :
محركات التيار المستمر ذات طبيعة حثية وبالتالى تستحق أن تعامل بنفس طريقة الريلاى .
فى المثال التالى يمكن للميكروكونترولر أن يتحكم فى تغيير سرعة محرك التيار المستمر ، لهذا الغرض يتم التنفيذ بوحدة (موديول) PWM والميكروكونترولر 16F628A بمذبذب 4MHz . كود البرنامج كما يلى :

كود:
void main( void )
{
	unsigned short CD=0;
	OPTION_REG = 0;     	//Activate the pull-up resistors.
	PWM1_Init( 500 );   	//PWM module starts at 500 Hz
	PWM1_Set_Duty(CD);
	PWM1_Start();
	while(1)          	//Infinite Loop.
	{
		//loop to increment PWM  when Bttton RB1 pressed.
		while( Button( &PORTB, 1, 10, 0 ) )
		{
			CD++; if( CD==0 )CD=255;
			PWM1_Set_Duty(CD);
			delay_ms(10);
		}
		//loop decrement PWM  when Bttton  RB0 pressed
		while( Button( &PORTB, 0, 10, 0 ) )
		{
			CD--; if( CD==255 )CD=0;
			PWM1_Set_Duty(CD);
			delay_ms(10);
		}
	}
}
لمحاكاة هذا البرنامج ببرنامج إيزيس يلزم جلب الأجهزة الآتية :
16F628A, BUTTON, RES, 2N3904, 1N4001, MOTOR ACTIVE لبناء الدائرة الكهربية التالية :




تبعا لشدة التيار المطلوب يمكن تغيير الترانزستور لتحسين أداء النظام . الترانزستور 2N3904 يمكنه التحكم فى تيار حتى 200m Amps والترانزستور TIP31 يمكنه التحكم فى تيار حتى 3 amps تبعا لنظام العمل ومنحنى الخواص .

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 31-07-2017, 06:20 PM المشاركة 3   
افتراضي


القنطرة(الجسر) إتش H Bridge
القنطرة H هى ترتيب (تنظيم) من الترانزستورات والذى يسمح بعكس قطبية الحمل الكهربائى عند توفير مصدر جهد مفرد (أحادى القطبية) single source . يمكن بناء القنطرة H باستخدام ترانزستورات منفصلة discrete أو باستخدام موديولات متكاملة والمتاحة تجاريا . هذا الترتيب يتضمن إشارتين تحكم للتمكين من اختيار القطبية الموجبة والقطبية السالبة . الشكل التالى يبين الدائرة الكهربائية للترتيب المنفصل :




لتفعيل القطبية الموجبة يتم تفعيل خط التحكم الأول control 1 ، بينما يتم فصل خط التحكم الثانى control 2 ، ولتفعيل القطبية السالبة يتم عكس حالة أطراف التحكم . مع الوضع فى الاعتبار أن خطى التحكم لن يتم أبد التحكم فيهما فى نفس الوقت ، حيث أن هذا الفعل ينتج عنه دائرة قصر short بين الجهد الموجب Vcc والأرضى ، مما يتسبب فى أضرار جسيمة بالترانزستورات .
المثال التالى يبين التحكم فى دوران محرك تيار مستمر DC motor عن طريق الميكروكونترولر 16F628A


كود:
void main( void )
{
     OPTION_REG = 0; //Activate the pull-up resistors.
     TRISB = 0x0F; //Configuring port B  as output and input .
     PORTB = 0;
     
     while(1) //Infinite Loop.
     {
              //Loop for detecting the rotation to the left button .
              while( Button( &PORTB, 0, 10, 0 ) )
              {
                     PORTB = 0; 	//Turn off the control pins.
                     PORTB.F7 = 1; 	//Activates the control pin 1.
              }
              
              //Loop for detecting the stop button.
              while( Button( &PORTB, 1, 10, 0 ) )
              {
                     PORTB = 0; 	//Turn off the control pins.
              }
              
              //Loop for detecting the rotation  to the right button.
              while( Button( &PORTB, 2, 10, 0 ) )
              {
                     PORTB = 0; 	//Turn off the control pins.
                     PORTB.F6 = 1; 	//Activates the control pin 2.
              }
     }
}
يتم تنفيذ المحاكاة ببرنامج إيزيس بعد بناء الدائرة الكهربية المبينة بالشكل الآتى :




احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً سعيد قادر ( شكر العضو على هذه المشاركة )
اعجاب سعيد قادر ( أعجبته المشاركة )

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 01-08-2017, 06:09 PM المشاركة 4   
افتراضي


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

مبدأ عمل دائرة القنطرة H Bridge :
الشكل التالى يمثل دائرة القنطرة H Bridge :



• عندما يتم توصيل ON المفتاح S1 والمفتاح S4 ، فإن المحرك سوف يدور فى اتجاه عقارب الساعة .
• عندما يتم توصيل ON المفتاح S2 والمفتاح S3 ، فإن المحرك سوف يدور عكس عقارب الساعة .
فى الواقع العملى يتم استبدال هذه المفاتيح بترانزستورات ، والآن تتوفر هذه القنطرة فى شكل دوائر متكاملة ، مثل الدائرة المتكاملة L293 .

دائرة H Bridge المكونة من ترانزستورات
:




فى هذه الدائرة يتم توصيل جميع الترانزستورات للعمل كمفاتيح .
• عندما يكون الدخل A مرتفع High والدخل B منخفض Low ، يتم توصيل الترانستوران Q2,Q3 ، ومن ثم يدور المحرك قى اتجاه عكس عقارب الساعة .
• عندما يكون الدخل B مرتفع والدخل A منخفض ، يتم توصيل الترانزستورين Q1,Q4 ، ومن ثم يدور المحرك فى اتجاه عقارب الساعة .
• الدايودات 1N4148 من النوع سريع التحويل وتسمى freewheeling diode ، وتستخدم لتجنب المشاكل الناتجة عن الجهد السالب الناتج القوة الدافعة العكسية لمحرك التيار المستمر .
• تستخدم المقاومات R1-R4 لتحديد تيار دخل الترانزستورات ويتم تصميمها بحيث يعمل الترانزستور كمفتاح .
• يتم اختيار الترانزستور تبعا للتيار المطلوب لمحرك التيار المستمر .

حسابات مقاومة الدخل :

كود:
IL = Max. Motor Current
Ib = IL/β, Minimum input current required to flow current IL through the load (active region).
Ib’ = 10xIb, To make sure that transistor works in saturation region.
Rin = (Vin – Vbe)/Ib’
Take Vbe = 0.7V
تستخدم هذه الدائرة أيضا فى الأنفرترات Inverters من أجل إنتاج تيار متردد عبر الحمل . فى إنفرترات الموجة المربعة ، يتم تطبيق الموجة المربعة إلى المداخل A,B ، وفى إنفرترات الموجة الجيبية يتم تطبيق الشكل الموجى المربع والمعدل بنظام تعديل عرض النبضة PWM إلى المداخل A,B .
يمكن الاستغناء عن الدايودات فى حالة الأحمال الأومية (مقاومة) .

الربط بين الميكروكونترولر PIC ومحرك التيار المستمر باستخدام الدائرة المتكاملة L293D :
لا يمكننا تشغيل محرك التيار المستمر مباشرة بالميكروكونترولر ، لأن محركات التيار المستمر تتطلب تيار مرتفع وجده مرتفع عن التى يتعامل معها الميكروكونترولر . الميكروكونترولر عادة يعمل على منبع +5V أو 3.3V ، وأطراف الدخل / الخرج يمكن أن توفر تيار حتى 25Ma . محركات النيار المستمر الشائعة تتطلب منبع 12V وتيار 300Ma ، علاوة على ذلك فإن ربط محركات التيار المستمر مباشرة مع الميكروكونترولر قد تؤثر على عمل الميكروكونترولر نتيجة القوة الدافعة الكهربية العكسية لمحرك التيار المستمر . لذلك من الواضح أنه ليس من الجيد ربط محرك التيار المستمر مباشرة مع الميكروكونترولر . حل هذه المشكلة هو استخدام دائرة القنطرة H-bridge المشروحة أعلاه .
الدائرة المتكاملة L293 ، تحتوى على 2 دائرة مشغل محرك على شكل قنطرة H-bridge ، وهذا يعنى أنه عن طريق استخدام دائرة متكاملة واحدة يمكننا التحكم فى محركين تيار مستمر فى كل من الاتجاهين ، اتجاه عقارب الساعة واتجاه عكس عقارب الساعة . الدائرة المتكاملة L293D يمكن أن توفر تيار تشغيل فى الاتجاهين حتى 600-mA عند جهد من 4.5V إلى 36V ، فى حين أن الدائرة المتكاملة L293 يمكن أن توفر حتى 1A عند نفس الجهود . كلا الدائرتين المتكاملتين مصمم لتشغيل أحمال حثية مثل محركات التيار المستمر ، محركات الخطوة ثنائية القطبية ، الريلايات ، والسلونويدات .
جميع مداخل هذه الدوائر المتكاملة متوافقة مع دوائر TTL ، ويتوفر داخليا فى الخرج دايودات الحماية .



مخطط أطراف الدائرة المتكاملة L293 :
يتم تمكين المشغلات فى أزواج ، مع المشغلات 1,2 يتم التمكين من الطرف Enable 1,2 بجعلة فى الحالة المرتفعة high ، ويتم تمكين المشغلات 3,4 من الطرف Enable 3,4 بجعله فى الحالة المرتفعة .
عندما يتم تمكين المشغلات فإن مخارجها سوف تكون فعالة وفى نفس طور مداخلها . عندما تكون المشغلات غير ممكنة ، فإن مخارجها تكون مفصولة OFF وسوف تكون فى حالة معاوقة مرتفعة .
جدول الوظيقة :



الربط مع الميكروكونترولر PIC :
الدائرة الكهربية :



يمكنننا تشغيل محركين تيار مسامر باستخدام دائرة متكاملة واحدة ، فى هذا المثال سوف نساخدم فقط أو زوج من المشغلات لتشغيل محرك مستمر واحد . زوج المشغلات الأول يتم تمكينها بجعل الطرف EN1 فى الحالة المنطقية المرتفعة . يتم توصيل المداخل IN1 , IN2 إلى أطراف الميكروكونترولر RB0 , RB1 على الترتيب والتى تستخدم لتوفير إشارة تحكم لمحرك التيار المستمر . يتم توصيل محرك النيار المستمر بالأطراف OUT1 , OUT2 للدائرة المتكاملة .
إشارات التحكم وحالات المحرك :



البرنامج :

كود:
void main()
{
 TRISB = 0; // PORT B as output port
 PORTB = 1; // Set RB0 to high
 do
 {
   //To turn motor clockwise
   PORTB.F0 = 1;
   Delay_ms(2000);//2 seconds delay

   //To Stop motor
   PORTB = 0; // or PORTB = 3 
   Delay_ms(2000);//2 seconds delay

   //To turn motor anticlockwise direction
   PORTB.F1 = 1;
   Delay_ms(2000);//2 seconds delay

   //To Stop motor
   PORTB = 0; // or PORTB = 3 (3 = 0b00000011)
   Delay_ms(2000); // 2 seconds delay

 }while(1);
}
التحكم فى سرعة محرك التيار المستمر باستخدام تعديل عرض النبضات PWM مع الميكروكونترولر PIC :
باستخدام تعديل عرض النبضات PWM يمكننا بسهولة التحكم فى القدرة المتوسطة التى تصل إلى الحمل ومن ثم يمكننا بسهولة التحكم فى سرعة محرك النيار المستمر .
قد يكون هناك تساؤل ، لماذا لا نستخدم مقاومة متغيرة على التوالى مع المحرك للتحكم فى سرعته ؟
هناك ثلاثة أسباب تجعل من خيار استخدام المقاومة خيار غير جيد للتحكم فى سرعة محرك التيار المستمر :
• المشكلة الرئيسية هى أن المحرك هو حمل كهربائى متغير ، لذلك فالمقاومة لا يمكنها القيام بهذه المهمة . فالمحرك يحتاج لقدرة أكثر خلال حالة البدء عنها قى حالة الدوران . المحرك يسحب تيار أكثر أيضا عن تطبيق حمل ميكانيكى على عامود المحرك .
• المقاومة تستهلك مزيد من الطاقة على شكل حرارة ، ومن ثم تكون غير مناسبة للأجهزة التى تعمل بالبطاريات .
• كلنا نعلم أم المحرك يتطلب تيار كبير ، لذلك سوف تكون المقاومة ذات مقنن قدرة مرتفع وتحتاج لمزيد من الطاقة المفقودة .
فى هذا المثال يتم ربط محرك تيار مستمر مع الميكروكونترولر PIC باستخدام الدائرة المتكاملة L293 (مشغل محرك) . يتم توفير 2 مفتاح ضاغط للتحكم فى سرعة المحرك . هنا سوف نستخدم محرك تيار مستمر 12V ويمكن تغيير قيمة متوسط الجهد المستمر الواصل إلى المحرك عن طريق تغيير نسبة دورة الخدمة لإشارة تعديل عرض النبضات . متوسط جهد التيار المستمر لدورة خدمة 0% يكون 0V ، ولدورة خدمة 25% يكون 3V ، ولدورة خدمة 50% يكون 6V ، ولدورة خدمة 75% يكون 9V ولدورة خدمة 100% يكون 12V .

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



يتم توصيل المفاتيح الضاغطة إلى الأطراف RD0 , RD1 والتى تستخدم للتحكم فى دورة الخدمة لإشارة PWM . الضغط على المفتاح UP يؤدى إلى زيادة دورة الخدمة ، مما يؤدة إلى زيادة سرعة المحرك ، فى حين أن الضغط على المفتاح DOWN يؤدى إلى تناقص دورة الخدمة ، مما يؤدى إلى تناقص سرعة المحرك . هنا سوف نستخدم الموديول CCP1 للميكروكونترولر PIC16F877A لتوليد PWM ويتم توصيلها طرف التمكين للدائرة المتكاملة L293 . يمكن التحكم فى اتجاه دوران المحرك باستخدام الأطراف RB0 , RB1 .

البرنامج :

كود:
void main()
{
  short duty  = 0; //initial value for duty

  TRISD = 0xFF; //PORTD as input
  TRISC = 0x00; //PORTC as output
  TRISB = 0x00; //PORTB as output
  PORTB = 0x02; //Run motor in anticlock wise

  PWM1_Init(1000);  //Initialize PWM1
  PWM1_Start();  //start PWM1
  PWM1_Set_Duty(duty); //Set current duty for PWM1

  while (1)        // endless loop
  {
     if (!RD0_bit && duty<250) //if button on RD0 pressed      
     {       
        Delay_ms(40);       
        duty = duty + 10;  //increment current_duty     
        PWM1_Set_Duty(duty);  //Change the duty cycle      
     }     
     if (!RD1_bit && duty >0) //button on RD1 pressed
     {
       Delay_ms(40);
       duty = duty - 10;  //decrement duty
       PWM1_Set_Duty(duty);
     }
    Delay_ms(10);      // slow down change pace a little
  }
}


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 01-08-2017 الساعة 06:14 PM
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى ( أعجبته المشاركة )

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: 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 وبناء الدائرة الكهربية التالية :





احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً سعيد قادر ( شكر العضو على هذه المشاركة )

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 03-08-2017, 07:42 PM المشاركة 6   
افتراضي


محرك السرفو Servo Motor :



ما هو محرك السرفو ؟
محرك السرفو هو فى الأساس محرك تيار مستمر عالى الجودة مزود بتروس ودائرة إلكترونية للتحكم فى اتجاه الدوران وموضع عامود محرك التيار المستمر .
يستخدم محرك السرفو إشارة تعديل عرض النبضات PWM للتحكم فى محرك التيار المستمر ، على خلاف PWM الذى يستخدم عادة فى محرك التيار المستمر العادى ، فإن إشارة PWM هذه لا تستخدم فى التحكم فى سرعة الدوران ، فبدلا من ذلك قإنها تستخدم فى التحكم فى اتجاه أو موضع المحرك . مغظم محركات السرفو تعمل على تردد 50 Hz لإشارة PWM ، هذا يعنى أن أشارة PWM يجب أن يكون زمنها الدورى 20ms . الدائرة الإلكترونية الموجودة داخل محرك السرفو سوف تستجيب لعرض نبضة إشارة PWM ، عرض نبضة PWM بالقيمة من 0.7ms إلى 1ms سوف يجعل محرك السرفو يدور مع عقارب الساعة CW ، وعرض نبضة PWM بالقيمة من 1.7ms إلى 2ms سوف يجعل محرك السرفو يدور عكس عقارب الساعة CCW . فى محرك السرفو القياسى عرض إشارة PWM بقيمة 1.5ms سوف يجعل محرك السرفو يدور لوضع المنتصف Center .
ميزة محرك السرفو تكمن فى حركته الزاوية الدقيقة . بعبارة أخرى ، يمكنك تحريك المحرك لأى زاوية تريدها ، على سبيل المثال إذا أردت تحريك المحرك 30 درجة ، يمكنك القيام بذلك بغاية السهولة ، وهذا مستحيل مع محرك التيار المستمر أو محرك الخطوة .
علاوة على ذلك ، محرك السرفو له ثلاثة أسلاك فقط ، الأول هو الأرضى GND ، والثانى للجهد الموجب Vcc والثالث ، وهو الأوسط فى الغالب ، لغرض إشارة التحكم . بمجرد تطبيق إشارة التحكم على الطرف الأوسط يبدأ المحرك فى الحركة . كمية الحركة سوف تعتمد على طول هذه الإشارة .

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

كيف يعمل محرك السرفو؟
يتم التحكم في محركات السرفو عن طريق إرسال إشارة رقمية إلى سلك التحكم في المحرك. الفكرة العامة هي إرسال إشارة موجة مربعة إلى المحرك ، حيث يحدد طول الموجة الزاوية التي سوف يتحركها المحرك.
على سبيل المثال ، عند إرسال شكل موجى مربع بنبضة عرضها 1ms إلى المحرك، فإنه سوف يتحرك إلى زاوية الحد الأدنى ، وهى صفر درجة 0 degrees ، وعند إرسال شكل موجى مربع بنبضة عرضها 1.5ms إلى المحرك ، فإنه سوف يتحرك الزاوية المتوسطة وهى 90 درجة 90 degrees . وعند إرسال شكل موجى مربع بنضة عرضها 2ms إلى المحرك ، فإنه سوف يتحرك إلى أكبر زاوية وهى 180 درجة 180 degrees .






التعامل مع برمجة محرك السرفو :



إذا أردت التحكم فى محرك السرفو من خلال الميكروكونترولر ، ينبغى اتباع ما يلى :
1- تطبيق حالة منطق مرتفع على طرف التحكم .
2- الانتظار مابين 1 إلى 2 ملى ثانية 1-2ms .
3- تطبيق حالة منطق منخفض على طرف التحكم .
4- كرر العملية بضع عشرات من المرات كل ثانية .
تذكر :



• التردد المطلوب لعمل محرك السرفو هو 50Hz وأن الزمن الدورى هو 0.02 second أو 20ms . الدالة PWM1_Init() فى مترجم الميكروسى سوف لا تتهىء بالتردد 50Hz . فعليا نحن سوف لا تكون فى حاجة لدوال الميكروسى فى عمل محرك السرفو . يمكننا عمل ذلك يدويا .
• إذا استخدمنا نبضة بعرض "أقل من أو تساوى واحد ملى ثانية 1ms " ، فإن المحرك يدور إلى "وضع الصفر 0 degree " .
• إذا استخدمنا نبضة بعرض " يساوى 1.5ms أو 1500 us " ، فإن المحرك يدور إلى "وضع 90 degree " .
• إذا استخدمنا نبضة بعرض " يساوى 2 ms أو 2000us " ، فإن المحرك يدور إلى "وضع 180 degree " .
• هذا يعنى أن الموضع الزاوى لعامود محرك السرفو يتحدد بإشارة PWM ، إشارة بعرض 1500us تضع الغامود فى وضع التعادل (المنتصف) ، وإشارة بعرض أقل 1500us تجعل العامود يعود إلى زاوية معينة ، عكس عقارب الساعة ، وإشارة بعرض أكبر من 1500us تجعل العامود يتحرك مع عقارب الساعة إلى زاوية معينة بناء على قيمة غرض الإشارة .

على سبيل المثال ، إذا أردنا دوران المحرك إلى وضع 90 degree ، فإن الشكل الموجى يجب أن يكون 1500us ON و 18500us OFF .
تدريب 1 :


كود:
void main() {  
int i=0;  
TRISB=0x00;  
delay_ms(1000);
  
while(1){  
/////// rotate to 0 degree  
for(i=0;i<50;i++){  
PORTB.F0=1; 
delay_us(900);  //ON Time 
PORTB.F0=0;  
delay_us(19100); //OFF Time 
}
  
delay_ms(4000);  //delay for 4 sec
  
/////// rotate to 45 degree  
for(i=0;i<50;i++)  
PORTB.F0=1;  
delay_us(1250);  
PORTB.F0=0;  
delay_us(18750);  
} 
 
delay_ms(4000);
  
/////// rotate to 90 degree  
for(i=0;i<50;i++){  
PORTB.F0=1;  
delay_us(1500);  
PORTB.F0=0;  
delay_us(18500);  
}
  
delay_ms(4000);  //delay for 4 sec 
 
/////// rotate to 1350 degree  
for(i=0;i<50;i++)  
{  
PORTB.F0=1;  
delay_us(1750);  
PORTB.F0=0;  
delay_us(18250);  
}
  
delay_ms(4000);  //delay for 4 sec  

/////// rotate to 180 degree  
for(i=0;i<50;i++)  
{  
PORTB.F0=1;  
delay_us(2000);  
PORTB.F0=0;  
delay_us(18000);  
}
  
delay_ms(4000);  //delay for 4 sec 
 
}  
}
تدريب 2 :

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



البرنامج :
سوف نستخدم الميكروكونترولر PIC16F628A والمترجم ميكروسى برو ، وسوف نستخدم موديول المؤقت Timer0 مع قاسم تردد prescaler بنسبة 1:256 لتوليد فجوة حوالى 20ms بين نبضات PWM المتتابعة . استخدام كريستال بتردد 4.0 MHz ينتج عنه زمن دورة التعليمات بواحد ميكروثانية ، ومن ثم يتم تبسيط حسابات التأخير باستخدام المؤقت Timer0 .
مترجم الميكروسى يوفر الدالة Delay_Cyc() ، والتى تولد تأخير متغير بدورات الساعة . هذه الدالة تستخدم لتغيير غرض نبضة التحكم من 0.7ms إلى 2.3ms .
عند بداية توصيل القدرة إلى الدائرة أو عند إعادة التشغيل reset ، يتم توليد إشارة PWM بتردد 50 Hz بعرض نبضة 0.7ms بشكل مستمر على الطرف RB1 . إشارة التحكم هذه تحرك عامود محرك السرفو فى اتجاه عقارب الساعة حتى النهاية ، وهو ما يعتبر الموضع الزاوى صفر (0) .
عند الضغط على المفتاح الضاغط المتصل بالطرف RB0 ، يتم زيادة عرض النبضة بقيمة 0.2ms ، وهو ما يؤدى إلى دوران عامود المحرك عكس عقارب الساعة CCW ما يقارب 22.5° . ومن ثم فى كل مرة يتم فيها الضغط على المفتاح يتم زيادة عرض النبضة بالقيمة 0.2ms ويدور العامود أكثر فى اتجاه عكس عقارب الساعة . بعد 8 ضغطات متتابعة تصبح عرض النبضة 2.3ms ويصل الغامود إلى النهاية الأخرى ، الوضع الزاوى 180° . عند الضغطة التاسعة يعود reset عرض النبضة إلى قيمته الابتدائية وهى 0.7ms ويدور علمود المحرك فى اتجاه عقارب الساغة حتى الوضع الزاوى صفر درجة مرة أخرى .
فى البرنامج المتغير “i" يحفظ معلومات عرض النبضة (pulse width = i*10*10 microseconds) ويتغير من 7 إلى 23 بخطوة 2 . عندما يكونi=7 ، يكون عرض النبضة 7*10*10 = 700 microseconds (0.7 ms) ، وعندما يكون i=23 يكون عرض النبضة 2.3ms .

كود:
   
/*
 Pic Micro Servo Motor Control
 PIC16F628A * Ext 4.00 MHz Crystal Osc.
*/
sbit SW1 at RB0_bit;
sbit Control at RB1_bit;

unsigned short i=7, delay;

void interrupt() {
  delay = i*10;  // min 7*10*10 = 700us
  Control = 1;
  Delay_Cyc(delay);  // Generates delay equal to 10*delay clock cycles
  Control = 0;
  TMR0 = 180;        // TMR0 returns to its initial value
  INTCON.T0IF = 0;   // Bit T0IF is cleared so that the interrupt could reoccur
}

void main() {
 CMCON = 0x07;    // Disable Comparators
 TRISB = 0b00000001;
 PORTB = 0;
 OPTION_REG = 0x07; // Prescaler (1:256) is assigned to the timer TMR0
 TMR0 = 180;        // Timer T0 counts from 180 to 255 to create ~20 ms period
 INTCON = 0xA0;     // Enable interrupt TMR0 and Global Interrupts

 do{
  if(!SW1){         // Change pulse width when Switch is pressed
   Delay_ms(300);
   i = i+2;
   if(i>24) i=7; // max 24 *10 *10 = 2400us
  }
 }  while(1);
}

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى ( أعجبته المشاركة )
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 06:14 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025