منتديات الالكترونيات العصرية  
yoursite.com page title .

استرجاع كلمة المرور طلب كود تفعيل العضوية تفعيل العضوية
العودة   منتديات الالكترونيات العصرية > منتدى الحاكمات الدقيقة Microcontroller > منتدى المتحكمات ميكرو بلغة السي MikroC

  #21  
قديم 08-19-2011, 03:26 PM
الصورة الرمزية عمرو عبد الرحمن
عمرو عبد الرحمن عمرو عبد الرحمن غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jul 2011
الدولة: مصر - المنوفية
المشاركات: 354
معدل تقييم المستوى: 14
عمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to all
افتراضي رد: شرح التحكم فى السيرفو موتور

السلام عليكم ورحمه الله وبركاتة

فى المرفقات محاولتى للتحكم فى 2 سيرفو موتور

عندما يكون الاول على زاوية -90 يتحرك الاخر بين +90 و -90
اما عندما يكون الاول على زاوية +90 لا يتحرك الاخر

ملف البروتس +ملف الهكس + الكود فى المرفقات
تحياتى وفى انتظار اكمال الشرح
الملفات المرفقة
نوع الملف: rar servo.rar‏ (12.6 كيلوبايت, المشاهدات 422)
رد مع اقتباس
  #22  
قديم 08-19-2011, 07:37 PM
الصورة الرمزية اشرف كمال
اشرف كمال اشرف كمال غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jun 2011
الدولة: القاهرة -مصر
المشاركات: 89
معدل تقييم المستوى: 9
اشرف كمال will become famous soon enoughاشرف كمال will become famous soon enough
افتراضي رد: شرح التحكم فى السيرفو موتور

اقتباس:
المشاركة الأصلية كتبت بواسطة عمرو عبد الرحمن مشاهدة المشاركة
السلام عليكم ورحمه الله وبركاتة

فى المرفقات محاولتى للتحكم فى 2 سيرفو موتور

عندما يكون الاول على زاوية -90 يتحرك الاخر بين +90 و -90
اما عندما يكون الاول على زاوية +90 لا يتحرك الاخر

ملف البروتس +ملف الهكس + الكود فى المرفقات
تحياتى وفى انتظار اكمال الشرح

ماشاء الله عليك سعدت ببرنامج مهندس عمرو برنامجك جميل واصل تقدمك بالتوفيق للجميع
رد مع اقتباس
  #23  
قديم 08-19-2011, 09:50 PM
الصورة الرمزية عمرو عبد الرحمن
عمرو عبد الرحمن عمرو عبد الرحمن غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jul 2011
الدولة: مصر - المنوفية
المشاركات: 354
معدل تقييم المستوى: 14
عمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to all
افتراضي رد: شرح التحكم فى السيرفو موتور

جزاك الله خيرا على التشجيع
وفى انتظارك لتكملة المشروع
رد مع اقتباس
  #24  
قديم 08-19-2011, 10:06 PM
الصورة الرمزية اشرف كمال
اشرف كمال اشرف كمال غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jun 2011
الدولة: القاهرة -مصر
المشاركات: 89
معدل تقييم المستوى: 9
اشرف كمال will become famous soon enoughاشرف كمال will become famous soon enough
افتراضي رد: شرح التحكم فى السيرفو موتور

الخطوة التاليه تكون باستخدام التايمر زيرو لتوليد نبضه ترددها 50 هرتز اعتذر عن شرح الموضوع الان لكن نفس الفكرة قمت بطرحها فى موضوعى بهذا المنتدى (طريقه لتوليد pwm على هذا الرابط

http://dbaasco.com/vb/showthread.php?t=6597

الموضوع به فكرة استخدام التايمر زيرو لكن بعرض نبضه قدرها 10 ميللى ثانيه عالى و 10 ميللى منخفض لتعطى تردد 20 ميللى ثانيه اى 50 هرتز.

التعديل الان هو كيف اجعل هذه النبضه العالى 1 ميللى ثانيه و باقى النبضه منخفض (ال 19 ميللى ثانيه)

حاولو التفكير فى المشروع حيث ان مشاركه الافكار ستزيد الموضوع وتفتح مجالات اكير و اعمق .
سارفق ملف الهيكس لمشروعى التحكم فى اثنين سيرفو فى نفس الوقت بازمنه مختلفه و ملف المحاكاة على ان اشرح الموضوع شرح وافى بعد رجوعى من السفر ان شاء الله الثلاثاء.

اسالكم الدعاء لى بالخير والرزق

اخوكم مهندس اشرف كمال الحماحمى



الملفات المرفقة
نوع الملف: rar servo2.rar‏ (13.9 كيلوبايت, المشاهدات 287)
رد مع اقتباس
  #25  
قديم 08-21-2011, 03:53 PM
الصورة الرمزية عمرو عبد الرحمن
عمرو عبد الرحمن عمرو عبد الرحمن غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jul 2011
الدولة: مصر - المنوفية
المشاركات: 354
معدل تقييم المستوى: 14
عمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to all
افتراضي رد: شرح التحكم فى السيرفو موتور

رائع يا باشمهندس وربنا يوفقك وترجعلنا بالسلامة

جزاك الله خيرا
رد مع اقتباس
  #26  
قديم 08-23-2011, 07:47 PM
الصورة الرمزية اشرف كمال
اشرف كمال اشرف كمال غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jun 2011
الدولة: القاهرة -مصر
المشاركات: 89
معدل تقييم المستوى: 9
اشرف كمال will become famous soon enoughاشرف كمال will become famous soon enough
افتراضي رد: شرح التحكم فى السيرفو موتور

السلام عليكم ورحمة الله..

نبدا اليوم كيفيه استخدام التايمر زيرو للتحكم فى اكثر من سيرفو موتور فى نفس الوقت.

الفكرة هى عمل تامير و استخدام متغير x بحيث فى كل مرة يحدث طفحان للتايمر over flow يزداد المتغير x بمقدار معين.

بشرط ان يكون التردد فى كل الاحوال هو 50 هرتز او 20 ميللى ثانيه.

اذا جعلنا التايمر زيرو يحدث له overflow كل مده زمنيه مقدارها 0.1 ميللى ثانيه (اللون الوردى فى الصورة) وفى كل مره يحدث فيها طفحان يزداد المتغير x بمقدار الوحدة. اذن عند مرور 20 ميللى ثانيه تكون قيمة المتغير x اصبحت 200.

كما فى الصورة==>>




اذن اذا اردنا اعطاء السيرفو نبضه مقدارها 1 ميللى ثانيه يمكن عمل ذلك عن طريق اختبار قيمة x باستمرار و فى حاله و صولها للقيمة 190 نجعل خرج على طرف الميكرو و عند وصول قيمة المتغير الى 200 تكون نهايه التردد و نصفر قيمه x وكذلك خرج الميكرو كنترول.

كما فى الصورة==>



[




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

مثلا لتشغيل سيرفو اخر 1 ميللى ثانيه نختبر نفس الشروط السابقه عند x=140 او كثر شغل الخرج الثانى و عند وصول قيمه المتغير الى 150 صفر خرج البورت كله ثم اختبر قيمه المتغير من جديد هل تساوى 190 شغل السيرفو الاول وعند وصول الى نهايه القيمة صفر بورت الخرج .

كما فى الصورة===>

[


يجب الاخذ فى الاعتبار ان اقصى زمن لنبضات السيرفو 2 ميللى ثانيه فيمكن التحكم فى9 سيرفو موتور بهذه الطريقه حيث اننا اخدنا اسوء احتمال ان يكون عرض النبضه لكل موتور هو 2 ميللى ثانيهو بذلك استغللنا 2*9 ميللى ثانيه من قيمة التردد الكلى ولكن يفضل الايزيد عدد السيرفو عن 8 .



الى هنا تكون نهايه الجزىء النظرى و فى المره القادمة نشرح البرنامج وحبذا لو ارى محاولاتكم فى هذا الصدد .
نريد عمل برنامج كالذى ارفقته فى المشاركة السابقة وهو التحكم فى زوايه اثنين سيرفو موتور فى نفس الوقت و للتسهيل نريد جعل احد السيرفو يتحرك اقصى اليسار و الاخر اقصر اليمين عند تشغيل البرنامج فقط و باستخدام التايمر زيرو و يرجى ارفاق الكود فى المشاركه للمناقشه.ادعو الله ان تكون الفكرة قد اتضحت ولاى استفسار انا فى انتظار مشاركاتكم وتعليقاتكم
والسلام عليكم و رحمة الله و بركاته.
رد مع اقتباس
  #27  
قديم 08-24-2011, 07:29 PM
الصورة الرمزية اشرف كمال
اشرف كمال اشرف كمال غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jun 2011
الدولة: القاهرة -مصر
المشاركات: 89
معدل تقييم المستوى: 9
اشرف كمال will become famous soon enoughاشرف كمال will become famous soon enough
افتراضي رد: شرح التحكم فى السيرفو موتور

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

بداية اضع كود اليكرو سى تفصيلا و نيدا بشرح كل جزىء منفردا.


كود PHP:
 char x;
 
char i;
 
  
char y[]={7,8,9,10,11,12,13,14,16,17,18,20};

 
void interrupt(){
             
x++;
            if(
x==200){
             
portb.f1=0;
             
portb.f0=0;
             
x=0;
             }
             if(
x>=200-y[i]){

             
portb.f0=1;
             
portb.f1=1;
             }

             
INTCON.T0IF 0;
            
TMR0 =205;
             


           }

void main() {
     
trisb=0;
     
trisa=0xff;

     
portb=0;
     
i=0;
    
OPTION_REG 0b10000000;
    
INTCON =0b10100000;
     
TMR0 =205;
     while(
1){

        if(
porta.f0==0){while(porta.f0==0){}i++;if(i>=12){i=0;} }
        if(
porta.f1==0){while(porta.f1==0){}i--;if(i==0){i=12;}}
         if(
porta.f2==0){while(porta.f2==0){}i=0;}


}



بدايه حجز متغير x ومتغير اخر i و حجز مصفوفه تمثل قيم الزوايا التى سيتحركها الموتور.

كود PHP:
void main() {
    
trisb=0;
    
trisa=0xff;

    
portb=0;
     
i=0;
    
OPTION_REG 0b10000000;استخدام مجزىء 1:2 للتايمر زيرو 
   INTCON 
=0b10100000;// تفعيل مقاطعة التايمر زيرو  
     
;TMR0 =205  قيمة ايتدائيه للتايمر

الشرح:

عند استخدام مجزىء 1:2 للتايمر زيرو اى ان كل 100 نبضه سيزداد التايمر يمقدار 50 وفى نفس الوقت نحن نريد ان يحدث طفحان للتايمر كل 100 ميكرو ثانيه اى 0.1 ميللى ثانيه وعند استخدام كريستاله يتردد 4 ميجا هرتز يكون الزمن الكلى لنبضه التعليمه هو 1 ميكرو ثانيه ويالتالى عند مرور 100 ميكرو ثانيه من الزمن سيزداد التايمر زيرو بمقدار 50 ونقوم بعمل طفحان للتايمر بعد هذه القيمة لذلك نضع قيمه ابتدائيه للتايمر و هى 255-50=205 وبالتالى نضمن ان يحدث طفحان للتايمر بعد 0.1 ميللى ثانيه.


الجزىء الاخر من البرنامج فى تعليمات المقاطعه.


كود PHP:
 void interrupt(){
  
x++;// زيادة المتغير بعد كل طفحان للتايمر زيرو اى بعد 0.1 ميللى ثانيه. 
       
if(x==200 عند وصول المتغير للقيمه يكون قد مر 20 ميللى ثانيه وهو تردد السيرفو   // ){
     // تصفير خرج الموتورportb.f1=0;
          
portb.f0=0;
  
x=0;// تصفير المتغير  
          

   
}


 if(
x>=200-y[i]){

  
portb.f0=1;   عند وصول المتغير لقيمه معينه فى حدود من 0.7 الى 2 ميللى ثانيه فعل خرج السيرفو 
      
             
}
 
تصفير علم طفحان التايمر لتكرار حدوث الطفحان كل 0.1 ميللى ثانيه


INTCON.T0IF 0
القيمة الابتدائية للتايمر 
 TMR0 
=205
             


           




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


المرة القادمة نريد التحكم فى اثنين سيرفو موتور ولكن بزوايا مختلفه لكل موتور اظن الفكرة اصبحت اكثر وضوحا ويمكم التعديل فى الكود و الكود و ملف المحاكاة تم ارفاقهم فى مشاركاتى السابقه يمكنكم اعاده الكتابه و التعديل لتحقيق المطلوب و انتظر حلولكم و لاى استفسار انا فى الانتظار و السلام عليكم ورحمة اللة

اخوكم مهندس اشرف كمال الحماحمى.

صورة للتحكم فى 3 سيرفو بزوايا مختلفة


التعديل الأخير تم بواسطة اشرف كمال ; 08-24-2011 الساعة 08:00 PM
رد مع اقتباس
  #28  
قديم 08-27-2011, 02:23 AM
الصورة الرمزية اشرف كمال
اشرف كمال اشرف كمال غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jun 2011
الدولة: القاهرة -مصر
المشاركات: 89
معدل تقييم المستوى: 9
اشرف كمال will become famous soon enoughاشرف كمال will become famous soon enough
افتراضي رد: شرح التحكم فى السيرفو موتور

تم اضافه الجزىء قبل الاخير من التحكم فى السيرفو موتور وقبل اضافة الجزىء الاخير ..اتسائل هل هناك اى اسئله او اى شىء غير واضح!!!!!

التعديل الأخير تم بواسطة اشرف كمال ; 08-27-2011 الساعة 04:18 AM
رد مع اقتباس
  #29  
قديم 08-28-2011, 09:58 PM
محمود010 محمود010 غير متواجد حالياً
عضو جديد
 
تاريخ التسجيل: Nov 2010
الدولة: مصــــر
المشاركات: 24
معدل تقييم المستوى: 0
محمود010 is on a distinguished road
افتراضي رد: شرح التحكم فى السيرفو موتور

بارك الله فيك يابشمهندس على الشرح الجميل
وصراحة الشرح مبسط كل حاجة
شكرا لك
رد مع اقتباس
  #30  
قديم 08-28-2011, 10:18 PM
الصورة الرمزية عمرو عبد الرحمن
عمرو عبد الرحمن عمرو عبد الرحمن غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jul 2011
الدولة: مصر - المنوفية
المشاركات: 354
معدل تقييم المستوى: 14
عمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to all
افتراضي رد: شرح التحكم فى السيرفو موتور

صراحة يا اخى شرح اكثر من رائع

بارك الله فيك وجزاك الله خيرا وان شاء الله سترى تطبيقى قريبا عن الانتهاء من شرح الجزء الاخير
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

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

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة



الساعة الآن 01:08 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
الحقوق محفوظة لمنتديات الاليكترونيات العصرية

Security team

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77