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

   

احمدمخيمر
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
الدولة: مصر
المشاركات: 99
نشاط [ احمدمخيمر ]
قوة السمعة:
قديم 05-04-2019, 03:11 PM المشاركة 9   
افتراضي



fan =1;
delay_ms(1000);
fan=0;
هذه العباره
يقصد بها ان التوصيلات سليمه
اى عند توصيل التيار تعمل لمدة ثانية ثم تنطفئ
للتـأكد فقط

اعلانات

منى حسين
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2011
المشاركات: 97
نشاط [ منى حسين ]
قوة السمعة:
قديم 06-04-2019, 01:40 AM المشاركة 10   
افتراضي


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

طلبك ينقصه تحديد مداخل ومخارج Pins اللتي سوف نستخدمها من الأفضل كان ارفاق صوره لمخطط الدائره او المحكاة

علي أي حال أخي لقد صممت لك طلبك تفضل

كود[/B][/SIZE]
كود:
   
     // ENG/ABDALLA HYGAZY
    //  FAN   CONTROL //
    // DATA 2019 / 4 / 5 //
      // PIC 16F628A //

    unsigned int DC_TEST_VOLT;
  //==========================================//
           void EEPROM() 
       {
         EEPROM_Write(0, DC_TEST_VOLT);
         delay_ms(10);
       }
   //=========================================//
     void main() {
     TRISB = 131;  PORTB = 0;

     DC_TEST_VOLT = EEPROM_Read(0); delay_ms(10);
     
     while (1){
        
     if (Button(&PORTB, 0, 10, 1)) { DC_TEST_VOLT=1; }
     if (Button(&PORTB, 1, 10, 1)) { DC_TEST_VOLT=0; }
     if (Button(&PORTB, 7, 1, 0)) { EEPROM();}


     if ( DC_TEST_VOLT==1 ) { PORTB.f2=1; }
     if ( DC_TEST_VOLT==0 ) { PORTB.f2=0; }

  }

 }
صوره المحكاة




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


التعديل الأخير تم بواسطة : منى حسين بتاريخ 06-04-2019 الساعة 01:44 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 06-04-2019, 04:12 AM المشاركة 11   
افتراضي


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

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

بالنسبه لشرح الكود نبدأ بتعريف المتغير الوحيد الموجود بالبرنامج واسم هذا المتغير هوا
كود:
  DC_TEST_VOLT
وتعريفه في البرنامج هكذا
كود:
   unsigned int DC_TEST_VOLT;
هذا السطر اخبرنا المتحكم انه يوجد متغير وتم حجز مساحه له وتم تعريفه بأنه متغير للأرقام الصحيحه " int " وهذا المتغير هوا لب البرنامج لأن بنعتمد عليه في طريقه سير البرنامج وسوف اذكر ذالك بعد قليل !!!

نأتي بعد ذالك الي هذه الداله الفرعيه
كود:
    void EEPROM()
       {
         EEPROM_Write(0, DC_TEST_VOLT);
         delay_ms(10);
       }
ووظيفتها حفظ قيمة المتغير " DC_TEST_VOLT "في العنوان الأول لذاكرة " EEPROM " الداخليه للمتحكم ميكروكنترولر ...

ونأتي بعد ذالك الي الداله الأساسيه وهي
كود:
  void main() {
     TRISB = 131;  PORTB = 0;
وصراحه عند تشغيل البرنامج فهوا يبدأ من هذه الداله ويبدأ في قرأه السطور نزولا لأسفل وهنا تأتي تعريف ارجل الميكرو وتحديد وتهيئه مذا نحتاج من ارجل دخول يتم توصيل عليها سوتشات وارجل خروج يتم اخراج فولت عليها لنتحكم في فتح أو غلق ترانزوستور أو ليد الخ

بعد ذالك تأتي هذه التعليه
كود:
     DC_TEST_VOLT = EEPROM_Read(0); delay_ms(10);
وهي للقرأه ما كتبناه في ذاكرة " EEPROM " من العنوان رقم واحد وبعد ذالك يتم اسناد القيمه المقرؤة الي المتغير " DC_TEST_VOLT " وهذة التعليمه بيتم قرأتها مره واحده فقط عند انقطاع مصدر الطاقه عن المتحكم وعودته يمر علي هذه التعليمه مرهة واحد ولا يقرأها مره اخري لأنه هيدخل في حلقه تكراريه مالانهايه وهذه هي الحلقه
كود:
     while (1){
وهنا البرنامج دخل في هذه الحلقه ويختبر الأكواد الموجوده فيها وهي اوامر شرطيه منطقيه
كود:
    while (1){

     if (Button(&PORTB, 0, 10, 1)) { DC_TEST_VOLT=1; }
     if (Button(&PORTB, 1, 10, 1)) { DC_TEST_VOLT=0; }
     if (Button(&PORTB, 7, 1, 0)) { EEPROM();}


     if ( DC_TEST_VOLT==1 ) { PORTB.f2=1; }
     if ( DC_TEST_VOLT==0 ) { PORTB.f2=0; }

  }

هذه الكود
كود:
     if (Button(&PORTB, 0, 10, 1)) { DC_TEST_VOLT=1; }
لإختباره حالة البن رقم صفر في البورت B لو تم تطبيق خمسة فولت علي البن صفر يتحقق الشرط ويفهم المتحكم انه تم الضغط علي مفتاح تشغيل المروحه ويجعل قيمة المتغير " { DC_TEST_VOLT=1 } " = واحد وسوف نعرف ما هي اهمية ان المتغير " DC_TEST_VOLT " =واحد ام صفر

ايضا يأتي دور هذا الكود
كود:
    if (Button(&PORTB, 1, 10, 1)) { DC_TEST_VOLT=0; }
وهوا لإختبار ما هي حاله مفتاح اطفاء المروحه ولو تم الضغط علي المفتاح يجعل قيمة المتغير { DC_TEST_VOLT=0 } = صفر وايضا لها اهميه لوكان المتغير = صفر او واحد وسوف نفهم اهمية ذالك بعد قليل

نأتي الي هذا الكود
كود:
   if (Button(&PORTB, 7, 1, 0)) { EEPROM();}
وهوا اختبار حالة البن رقم 7 في البورت B لو = صفر يذهب مباشر الي الدالة الفرعيه هذة
كود:
   void EEPROM()
       {
         EEPROM_Write(0, DC_TEST_VOLT);
         delay_ms(10);
       }
لكي يحفظ قيمة المتغير في ذاكرة ابروم وتسمي بالذاكرة الدائمه لحين عوده التيار للدائرة يتم ارجاع قيمه المتغير الي حالتة قبل فصل التيار عن الدائرة من خلال هذه التعليمه
كود:
    DC_TEST_VOLT = EEPROM_Read(0); delay_ms(10);
ويأتي بعد ذالك اهمية قيمة المتغير
كود:
   { DC_TEST_VOLT=1; }
من خلال هذان الشرطان
كود:
   if ( DC_TEST_VOLT==1 ) { PORTB.f2=1; }
     if ( DC_TEST_VOLT==0 ) { PORTB.f2=0; }
وهنا لو كان المتغير = واحد شغل المروحه و لو كان المتغير = صفر اوقف المروحه







التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 06-04-2019 الساعة 05:09 AM

احمدمخيمر
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
الدولة: مصر
المشاركات: 99
نشاط [ احمدمخيمر ]
قوة السمعة:
قديم 17-04-2019, 05:07 PM المشاركة 12   
افتراضي


السلام عليكم
اخى عبدالله
لم اتحصل على ال pic
وانما لدى اردوينو اونو وكنت بقول حرام احطها فى مشروع فى حين مايكروكنترولر يفى بالغرض
اللى لف فى القاهره قلى مفيش البيك
عموما جاب لى اردوينو اونو
ومعها m8870
وكل شئ مشروح هنا فى هذا الرابط
وتمت التجربه وهى جيده
بس ماينقصنى
هو تفعيل الايبروم eeprom
لكى تحتفظ بالحاله
يعنى اضافة تفعيل الايبروم
وانا لم احتاج كل تلك الاطراف
انا هشغل جهاز واحد فقط
اتمنا ان اكون لااثقلت عليك
اليك الرابط استاذى الفاضل
https://world-controller.blogspot.co...uino-DTMF.html


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 18-04-2019, 03:34 AM المشاركة 13   
افتراضي


السلام عليكم

أخي المشروع لا يحتاج الي اردينو

بالنسبه للبك هذا رابط يمكنك شراء منه https://ram-e-shop.com/?s=Pic&produc...t_type=product


احمدمخيمر
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
الدولة: مصر
المشاركات: 99
نشاط [ احمدمخيمر ]
قوة السمعة:
قديم 18-04-2019, 09:33 AM المشاركة 14   
افتراضي


شكرا لسرعة ردك
انا اعلم ان الاردوينو مكلف لاكن هو الان بحوزتى
اما البيك لحد مايوصلنى يمكن اسبوع
غير كلفة الشحن فوق 100 جنيه لاسوان
يعنى هيكلف تمن اردوينو
والان الاردوينو معى
اتمنى تساعدنى
تفعيل ال eeprom لليد واحد فقط فى الرسمه
لتقليل عدد المرات الكتابه
انا هستخدم شئ واحد فقط
وشكرا
على سعة صدركم


احمدمخيمر
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
الدولة: مصر
المشاركات: 99
نشاط [ احمدمخيمر ]
قوة السمعة:
قديم 19-04-2019, 12:37 AM المشاركة 15   
افتراضي


اتمنى الاقى حل لهذا
متوقف عليه


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 19-04-2019, 03:35 AM المشاركة 16   
افتراضي


اتمنى الاقى حل لهذا
متوقف عليه
للأسف خبرتي قليله في برمجه اردينو

سوف أحاول اضافه تفعيل ابروم ..



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