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

   

ahmadazez
:: مهندس جيد ::
تاريخ التسجيل: Mar 2009
المشاركات: 251
نشاط [ ahmadazez ]
قوة السمعة:
قديم 03-06-2014, 07:45 PM المشاركة 33   
افتراضي



السلام عليكم
أستخدمت تايمر1 للحصول على PWM لكل بن من اطراف مايكروكنترولر وفعلا أحصلت على نتائج جيده ولكن هناك مشكله ارجو مساعده في حلها وهي يوجد ارتجاف في اشاره خارجه علما انه يمكن تحكم duty cycle بدون مشاكل وتردد ثابت لايتغير اليكم كود بسيط علما انه سوف يتم تطوير مشروع في حاله وصول الى نتيجه مرضيه

http://up.top4top.net/downloadf-top4...44791-rar.html

الكود
كود:
#define max_angle_servo  360
#define min_pulse_micro_second_servo  1000  // 1000us
#define max_pulse_micro_second_servo  2000 // 2000us
const char servo_motor=20;
//*******************************************************************//
unsigned int timer , angle[servo_motor ],cont[servo_motor];

unsigned char update=1,servo , servo_state , cont_no_motor=0 , servo_number[3], angle_number[3] , m[servo_motor];
//*****************************************************************************//
//Timer1
//Prescaler 1:1; TMR1 Preload = 45536; Actual Interrupt Time : 20 ms

//Place/Copy this part in declaration section
void InitTimer1(){
  T1CON         = 0x01;
  TMR1IF_bit         = 0;
  TMR1H         = 0xB1;
  TMR1L         = 0xE0;
  TMR1IE_bit         = 1;
  INTCON         = 0xC0;
}

void Interrupt(){
 char tmp ;
  if (TMR1IF_bit)
                 {
                  TMR1IF_bit = 0;
                  TMR1H         = 0xB1;
                  TMR1L         = 0xE0;
                  //Enter your code here
                 }

}

//*******************************************************************//
void main()
{
 cmcon=7;
 InitTimer1() ;
 trisa=0;
 porta=0;

 portb=0;
 while(1)
        {
         timer=((TMR1H*256)+TMR1L)-45536;

         if(timer<=1125 )porta.f0=1; // 45 degree
         else {porta.f0=0;}

         if(timer<=1250)porta.f1=1; // 90 degree
         else {porta.f1=0;}

         if(timer<=1500)porta.f2=1; // 180 degree
         else {porta.f2=0;}

         if(timer<=2000)porta.f3=1; // 360 degree
         else {porta.f3=0;}



        } ;

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

http://up.top4top.net/downloadf-top4...8f661-rar.html

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 05-06-2014, 08:44 AM المشاركة 34   
win


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

http://up.top4top.net/downloadf-top4...8f661-rar.html
السلام عليكم
كيف حالك أخي؟
لقد توصلت الى معرفه سبب الرجفه هو استخدام انتربت

عموما وصلت الى نتائج جيده سأرفقها لكم حالما يتم أكتمالها
مشروع هو بناء درايفر يتحكم الى 10 محركات سيرفو عن طريق كمبيوتر او من البيك أخر طبعا درايفر أستخدمت البيك 16f628a
فكره بشكل عام
يتم تشغيل محرك الاول ثم أطفيه اعتمادا على قيمه زاويه ثم اشغل الثاني ومن ثم أطفيه اعتمادا على زاويه هذا المحرك وهكذا الى ان نصل الى محرك 10 ثم أحسب ازمنه التشغيل لــ 10 محركات وأطرحها من 20ms وعمليه يتم تكرارها بأستمرار
النتيجه هي ظهور اشاره pwm بتردد 50HZ
طبعا قمت بكتابه الكود وظهرت اشاره pwm بشكل واضح ومحركات 10 تعمل وفق الزاويه التي يتم أعطائها لها (( دقه 3.6 لسيرفو 360 درجه , 1.8 للسيرفو 180 درجه))
طبعا يتم التحكم بالزاويه عن طريق uart او بأي طريقه اتصال

على عموم سوف ارفق بمشيئه الله المعلومات الي توصلت لها حال أكتمالها وبعده أستخدمات
تحياتي


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 05-06-2014 الساعة 08:59 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 05-06-2014, 07:12 PM المشاركة 35   
win الجزء الاول درايفر لتحكم بــ 10 محركات سيرفو عن طريق كمبيوتر


السلام عليكم
يتم التحكم بــ 10 محركات عن طريق كمبيوتر ومشروع مرفق هو درايفر لتحكم بــ 10 محركات سيرفو

يتم ارسال زاويه هكذا #motx=q
حيث x رقم محرك من 1 الى 10
و q زاويه من 0 الى 360
طبعا اذا تريد التعديل على سيرفو وجعله لغايه 180 فقط عدل على
كود:
#define max_angle_servo  360
لتصبح
كود:
#define max_angle_servo  180
https://www.mediafire.com/?8xz74wdf3blut5r

تحياتي


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 05-06-2014, 07:41 PM المشاركة 36   
افتراضي


السلام عليكم
يتم التحكم بــ 10 محركات عن طريق كمبيوتر ومشروع مرفق هو درايفر لتحكم بــ 10 محركات سيرفو

يتم ارسال زاويه هكذا #motx=q
حيث x رقم محرك من 1 الى 10
و q زاويه من 0 الى 360
طبعا اذا تريد التعديل على سيرفو وجعله لغايه 180 فقط عدل على
كود:
#define max_angle_servo  360
لتصبح
كود:
#define max_angle_servo  180
https://www.mediafire.com/?8xz74wdf3blut5r

تحياتي
اليكم الصور
قبل ارسال زوايا
http://cdn.top4top.net/i_d9ff31b3851.png

بعد ارسال زوايا
http://cdn.top4top.net/i_c3e20f2db32.png

تلاحظون انه عند يستلم زاويه بنجاح يرسل درايفر الى ماستر او كمبيوتر كلمه OK
(( حروف كبيره OK وليست ok))


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 06-06-2014, 05:45 PM المشاركة 37   
win الجزء الثاني درايفر لتحكم بــ 10 محركات سيرفو عن طريق مايكروكنترولر


السلام عليكم
هذا مشروع تلاحظون فيه انه يتم التحكم بــ 10 محركات سيرفو عن مايكروكنترولر وكيباده هو نفس مشروع في مشاركه الاولى ولكن بأستخدام خاصيه PWM لان اشاره PWM ضروريه لعمل محرك السيرفو
https://www.mediafire.com/?1sp1cuiej83tiki
تحياتي


ahmadazez
:: مهندس جيد ::
تاريخ التسجيل: Mar 2009
المشاركات: 251
نشاط [ ahmadazez ]
قوة السمعة:
قديم 07-06-2014, 12:44 AM المشاركة 38   
افتراضي


السلام عليكم
هذا مشروع تلاحظون فيه انه يتم التحكم بــ 10 محركات سيرفو عن مايكروكنترولر وكيباده هو نفس مشروع في مشاركه الاولى ولكن بأستخدام خاصيه PWM لان اشاره PWM ضروريه لعمل محرك السيرفو
https://www.mediafire.com/?1sp1cuiej83tiki
تحياتي
السلام عليكم
بارك الله فيك اخي حسن وجعله في ميزان حسناتك
حقيقة مشروع ممتاز ومهم


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 07-06-2014, 05:41 AM المشاركة 39   
افتراضي


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

انا اريد اطور درايفر سيرفو وجعله لتوليد أشارات PWM

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

تحياتي الطيبه لكم


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 13-06-2014, 11:11 AM المشاركة 40   
افتراضي أضافه خزن الزاويه في داريفر سيرفو


السلام عليكم
هذا مشروع تلاحظون فيه انه يتم التحكم بــ 10 محركات سيرفو عن مايكروكنترولر وكيباده هو نفس مشروع في مشاركه الاولى ولكن بأستخدام خاصيه PWM لان اشاره PWM ضروريه لعمل محرك السيرفو
https://www.mediafire.com/?1sp1cuiej83tiki
تحياتي
السلام عليكم
أضافه خاصيه خزن زاويه في درايفر
هذا نفس مشروع في مشاركه مقتبسه ولكن فرق الوحيد ان درايفر يخزن الزاويه

ملاحظه مثال عباره عن مشروعين الاول يتحكم درايفر عن طريق كمبيوتر والاخر عبر كيباده
وطبعا servo_driver-delay part1 هو نفسه برنامج درايفر سيرفو
https://www.mediafire.com/?5gy5138fjrp8935

تحياتي



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