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

   

pic
:: مهندس ::
تاريخ التسجيل: Apr 2010
المشاركات: 36
نشاط [ pic ]
قوة السمعة:
قديم 03-08-2012, 03:40 PM المشاركة 57   
افتراضي



تم عمل التحويل ب الكومبيلر بس لو نقلتة علي البروتس عشان انفذة علي PIC16F877A
و وصلت البتنات زي اللي كان في البيك السابق بس مش بيعمل اي خرج خالص

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

كود:
char x;

void main() {
TRISA=255;TRISB=0;portb=0;
PWM1_Init(38000);
PWM1_Set_Duty(255);


  while (1) {
  if (porta.f0==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      for(x=0;x<7;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600); }

      PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }

        if (porta.f1==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      PWM1_Start();delay_us(1200);PWM1_Stop();      //1
      delay_us(600);
      for(x=0;x<6;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        delay_ms(250);
        }
        if (porta.f2==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      PWM1_Start();delay_us(600);PWM1_Stop();      //1
      delay_us(600);
        PWM1_Start();delay_us(1200);PWM1_Stop();     //2
        delay_us(600);
      for(x=0;x<5;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
       if (porta.f3==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      for(x=0;x<2;x++){
      PWM1_Start();delay_us(1200);PWM1_Stop();delay_us(600);  }
       for(x=0;x<5;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
       PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }


      }


  }
هو فين في الكود الجزء اللي بيقول لليمكرو نفذ الخرج علي البورت b اذا حصل الضغط علي الزر كذا


التعديل الأخير تم بواسطة : pic بتاريخ 03-08-2012 الساعة 03:44 PM
اعلانات

الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 636
نشاط [ المظلوم ]
قوة السمعة:
قديم 03-08-2012, 04:22 PM المشاركة 58   
افتراضي


تم عمل التحويل ب الكومبيلر بس لو نقلتة علي البروتس عشان انفذة علي PIC16F877A
و وصلت البتنات زي اللي كان في البيك السابق بس مش بيعمل اي خرج خالص

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

كود:
char x;

void main() {
TRISA=255;TRISB=0;portb=0;
PWM1_Init(38000);
PWM1_Set_Duty(255);


  while (1) {
  if (porta.f0==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      for(x=0;x<7;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600); }

      PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }

        if (porta.f1==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      PWM1_Start();delay_us(1200);PWM1_Stop();      //1
      delay_us(600);
      for(x=0;x<6;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        delay_ms(250);
        }
        if (porta.f2==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      PWM1_Start();delay_us(600);PWM1_Stop();      //1
      delay_us(600);
        PWM1_Start();delay_us(1200);PWM1_Stop();     //2
        delay_us(600);
      for(x=0;x<5;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
       if (porta.f3==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      for(x=0;x<2;x++){
      PWM1_Start();delay_us(1200);PWM1_Stop();delay_us(600);  }
       for(x=0;x<5;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
       PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }


      }


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

عموما اذا كنت تريد ان تسأل اي سؤال حول المرسل ،، ارجوا ان تضعه في هذا الموضوع
http://qariya.com/vb/showthread.php?t=112123

وارجوا ن تتقبل اعتذاري ،،


عموما ،، هذا الكود يستخدم تقنية PWM وبالتالي لن تحتاج إلى تحديد بورت للخرج ،، وذلك لأن هذه التقنية تخرج الداتا على الرجل رقم 9 للمايكركنترولر 16f628a ، وهي الرجل المكتوب بجانبها CCP1 ،

واذا كنت تستخدم البك 16f877a فعليك ان توصل الليد IR LED بالرجل رقم 17 من هذا البك ،، لان هذه الرجل هي الرجل التي مكتوب بجانبها CCP1 ،، شاهد الصورة التالية وانظر للرجل رقم 17 :

http://robotechno.us/wp-content/uplo...PIC16F877A.jpg


هذا بالنسبة للخرج ،،


أما بالنسبة لهذا المايكروكنترولر فعليك ان توصل كريستالة خارجية على الطرفين 13 و 14 من هذا البك ،، لانه ليس به مذبذب داخلي ،، هذا بالإضافة إلى توصيل 5 فولت على الرجل رقم 1 حتى يعمل المايكركنترولر بشكل جيد ،،

ولا تنسى توصيل الجهد 5 فولت على الطرفين 11 و 32 والقراوند على الطرفين 12 و 31 ، ،، !


لا تنسى ان تكتب الكود adcon1=7



تمنياتي

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

pic
:: مهندس ::
تاريخ التسجيل: Apr 2010
المشاركات: 36
نشاط [ pic ]
قوة السمعة:
قديم 03-08-2012, 04:30 PM المشاركة 59   
افتراضي


شكرا لحضرتك مظلوم
مفيش مشكله علي الاعتزار انا ملحظتش و انا بكتب المشاركة
هل في موقع او مصدر تاني لتعلم التحكم في ir
ممكن توضح اية الكود adcon1=7


التعديل الأخير تم بواسطة : pic بتاريخ 03-08-2012 الساعة 04:35 PM

pic
:: مهندس ::
تاريخ التسجيل: Apr 2010
المشاركات: 36
نشاط [ pic ]
قوة السمعة:
قديم 03-08-2012, 04:45 PM المشاركة 60   
افتراضي


انا اعتزر عن كتر الاسأله
لو عاوز اشتغل البرنامج المستقبل علي pic16f877a اية التغيرات اللي هعملها وشكرا


الصورة الرمزية المظلوم
المظلوم
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
الدولة: BH
المشاركات: 636
نشاط [ المظلوم ]
قوة السمعة:
قديم 03-08-2012, 05:03 PM المشاركة 61   
افتراضي


السلام عليكم ،،


أخي ،، اذا اردت تشغيلها على البك 16f877a :

عليك ان تحذف هذا الكود : CMCON=0x07

وعليك أن تضيف الكود : adcon1=7 للكود ،، لان هذا الكود يجعل الخرج يعمل كـ digital وليس كـ analog !


وطبعا لازم تنتبه للأمور الي قلتها في الرد السابق ،، من توصيلات للهاردوير ،،




" بس لو تقدر تحصل البك اللي هو 16f628a راح يكون اسهل بكثير لانك بتوفر كثير من التوصيلات ،، فلا بتحتاج إلى كريستالة ولا إلى توصيل 5 فولت للــ MCLR ، وفيها فقط طرفين للجهد ،، واحد + وواحد _ ،، بعكس 16f877a اللي فيها 2 + و 2 - وهذا البك قدراته أكبر بكثير من مجرد هذا المشروع ،، فيعتبر خسارة استخدامه في مثل هالمشروع اللي ما يتطلب مايكركنترولر كبير ،،

والأفضل أن الكود عندك جاهز ،



تمنياتي


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 04-08-2012, 12:15 AM المشاركة 62   
افتراضي


بسم الله الرحمن الرحيم
شكرا جزيلا لك يا بشمهندس المظلوم
على مجهودك هذا والله شىء رائع
جزاك الله كل خير

اخى pic
اظن انى رديت عليك فى مشاركات سابقة
ارجوك اطلع على الرد
وكل ما قلتة هو ما قالة اخى المظلوم

وبما ان هناك مشاكل فى عمل الاكواد بالنسبة لك
فان شاء الله سوف اقوم بعملها لك

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


pic
:: مهندس ::
تاريخ التسجيل: Apr 2010
المشاركات: 36
نشاط [ pic ]
قوة السمعة:
قديم 04-08-2012, 02:43 PM المشاركة 63   
افتراضي


شكرا للاستاذ المظلوم و محمد
و انا بحاول ادور علي الكود لاني بستخدم المشروع دة في التحكم في سيارة بريموت و بالنسبة للرد اعتقد اني لام الاحظة في المشاركات


الصورة الرمزية abou yasser
abou yasser
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2012
الدولة: المغرب
المشاركات: 109
نشاط [ abou yasser ]
قوة السمعة:
قديم 11-09-2012, 12:56 AM المشاركة 64   
Smile


اكرمك الله



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