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

   

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 15-08-2020, 07:56 AM المشاركة 9   
افتراضي السلام عليكم ورحمه الله



توجد تفاصيل كنت اود ان اعرفها ..
يعني مثلا عند انتهاء العدد وتم تشغيل الراليه هل انت محتاج الراليه يفضل شغال لوقت معين
قبل ما يفصل ويبدأ العداد دورة جديدة ؟

كمان وقت ذيادة العدد هل انت كنت محتاجه وقت سابت ؟
انا عملتلك حريه في اختيار سرعه العداد ممكن يعد عدة واحدة كل واحد سانيه ومعاك لحاد 9 سواني
ممكن يعد عدة كل 9 سواني وهنا هيكون عندك حرية في ضبط سرعة العداد
كمان لو محتاج ضبط وقت معين لإنتظار الراليه قبل أن يفصل ويدخل دورة جديدة
بمعني ممكن تتحكم في الوقت اللي هينتظرة الراليه قبل ما يفصل ويبدأ دورة جديدة
انا ظابط في البرنامج أن عند وصول العداد للرقم يشتغل الراليه وينتظر 2 سانيه قبل ما يفصل
ويبدأ دورة جديده

لو هناك شئ أخر أو تعديل أو اضافه أخبرني

تحياتي

اعلانات

abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:
قديم 15-08-2020, 03:00 PM المشاركة 10   
افتراضي


ربنا يبارك فى حضرتك ويزيدك علم
حضرتك بسم الله ما شاء الله عليك
اخر طلب ويبقى كده تمام بإذن الله
انا مش محتاج مفاتيح لظبط الوقت ( مجرد العداد يعد كل ثانية عده واحدة )
انا عاوز اظبط العداد وبعدين اضع الوزن على مفتاح start فيعمل العداد ولما العداد يخلص عد يشغل الريلاي لمدة 3ثواني وبعدين يفصل و يصفر العداد مع حفظ الاعدادات طبعا
وبعدين ارفع الوزن فيفتح مفتاح start وبعدين اضع الوزن تاني على مفتاح start فتبدا عملية العد من جديد وهكذا
اتمني اكون وضحت الفكرة لحضرتك
اشكرك مرة اخي على الاهتمام بالموضوع


التعديل الأخير تم بواسطة : abo karem بتاريخ 15-08-2020 الساعة 03:04 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

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


ربنا يبارك فى حضرتك ويزيدك علم
حضرتك بسم الله ما شاء الله عليك
اخر طلب ويبقى كده تمام بإذن الله
انا مش محتاج مفاتيح لظبط الوقت ( مجرد العداد يعد كل ثانية عده واحدة )
انا عاوز اظبط العداد وبعدين اضع الوزن على مفتاح start فيعمل العداد ولما العداد يخلص عد يشغل الريلاي لمدة 3ثواني وبعدين يفصل و يصفر العداد مع حفظ الاعدادات طبعا
وبعدين ارفع الوزن فيفتح مفتاح start وبعدين اضع الوزن تاني على مفتاح start فتبدا عملية العد من جديد وهكذا
اتمني اكون وضحت الفكرة لحضرتك
اشكرك مرة اخي على الاهتمام بالموضوع
شكرا جزيلا لك أخي الكريم
تفضل لقد عدلت البرنامج

كود:
  
  //  ENG/Adalla Hygazy  //
  // 7SEGMENT  Counter  //
  //     PIC16F877A     //
  //    KH 8M         //
  // DATA 2020/8/12   //
  
 unsigned short mask(unsigned short num);
 unsigned int  SEMENT,Time,counter,X1,X2;
 
//----------------------------------------------------------------------------------//
   //Timer0
   //Prescaler 1:8; TMR0 Preload = 6; Actual Interrupt Time : 1 ms
  //Place/Copy this part in declaration section
   void InitTimer0(){
   OPTION_REG  = 0x82;
   TMR0        = 6;
   INTCON      = 0xA0;
}

    void Interrupt(){
   if (TMR0IF_bit){
    TMR0IF_bit   = 0;
    TMR0         = 6;
    //Enter your code here
    
    if( PORTD.F5==0 ){  PORTB=mask(SEMENT);               }
    if( PORTD.F5==1 ){ PORTB=mask(counter);  PORTC.F6=1; }
     else PORTC.F6=0;
     
  }
}
  //**********************************************************************************//
        void main(){
        InitTimer0();
        TRISB=0;   PORTB=0;
        TRISC=0;   PORTC=0;
        TRISD=240; PORTD=0;

        while(1){

    //==============================================================================//
        if( PORTD.F4==1 && counter>0 && PORTD.F5==0 ){ delay_ms(1000); SEMENT++;}
        
           if( counter >0 && SEMENT == counter)
        {
          PORTC.F0=1;delay_ms(3000); PORTC.F0=0; SEMENT=0;
           while(PORTD.F4==1){         }
        }


        if(PORTD.F5==1)
     {
        if(PORTD.F7==1){counter++; delay_ms(250); }
        if(PORTD.F6==1){counter--; delay_ms(250); }
        if( counter>9 ){  counter=0;  }
        if( counter<0 ){  counter=9;  }
     }
  //===================================================================================//
}
}
unsigned short mask(unsigned short num){
switch (num){

case 0 : return 0xC0;
case 1 : return 0xF9;
case 2 : return 0xA4;
case 3 : return 0xB0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x82;
case 7 : return 0xF8;
case 8 : return 0x80;
case 9 : return 0x90;

}
}


البرنامج يعمل كما طلبت

تحميل المشروع https://drive.google.com/drive/folde...rU?usp=sharing

متابع معك لو هناك تعديل
بالتوفيق


abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:
قديم 16-08-2020, 08:15 PM المشاركة 12   
افتراضي


استاذى الكريم
ربنا يزيدك علم
كده انا وصلت للمطلوب بالضبط
الف شكر لحضرتك


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


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


abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:
قديم 19-08-2020, 05:15 PM المشاركة 14   
افتراضي


عندي سؤال لحضرتك
حضرتك استخدمت 7segment الموجب مشترك
هل لو الموجود السالب مشترك هيتغير كتير في البرنامج
لو الموضوع صعب انا ممكن انزل اشتري واحدة موجب مشترك


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


عندي سؤال لحضرتك
حضرتك استخدمت 7segment الموجب مشترك
هل لو الموجود السالب مشترك هيتغير كتير في البرنامج
لو الموضوع صعب انا ممكن انزل اشتري واحدة موجب مشترك
تفضل أخي لك طلبك

كود:
   
  //  ENG/Adalla Hygazy  //
  // 7SEGMENT  Counter  //
  //     PIC16F87A     //
  //    KH 8M         //
  // DATA 2020/8/12   //
  
 unsigned short mask(unsigned short num);
 unsigned int  SEMENT,Time,counter,X1,X2;
 
//----------------------------------------------------------------------------------//
   //Timer0
   //Prescaler 1:8; TMR0 Preload = 6; Actual Interrupt Time : 1 ms
  //Place/Copy this part in declaration section
   void InitTimer0(){
   OPTION_REG  = 0x82;
   TMR0        = 6;
   INTCON      = 0xA0;
}

    void Interrupt(){
   if (TMR0IF_bit){
    TMR0IF_bit   = 0;
    TMR0         = 6;
    //Enter your code here
    
    if( PORTD.F5==0 ){  PORTB=mask(SEMENT);               }
    if( PORTD.F5==1 ){ PORTB=mask(counter);  PORTC.F6=1; }
     else PORTC.F6=0;
     
  }
}
  //**********************************************************************************//
        void main(){
        InitTimer0();
        TRISB=0;   PORTB=0;
        TRISC=0;   PORTC=0;
        TRISD=240; PORTD=0;

        while(1){

    //==============================================================================//
        if( PORTD.F4==1 && counter>0 && PORTD.F5==0 ){ delay_ms(1000); SEMENT++;}
        
           if( counter >0 && SEMENT == counter)
        {
          PORTC.F0=1;delay_ms(3000); PORTC.F0=0; SEMENT=0;
           while(PORTD.F4==1){         }
        }


        if(PORTD.F5==1)
     {
        if(PORTD.F7==1){counter++; delay_ms(250); }
        if(PORTD.F6==1){counter--; delay_ms(250); }
        if( counter>9 ){  counter=0;  }
        if( counter<0 ){  counter=9;  }
     }
  //===================================================================================//
}
}
unsigned short mask(unsigned short num){
switch (num){

case 0 : return 0x3F;
case 1 : return 0x06;
case 2 : return 0x5B;
case 3 : return 0x4F;
case 4 : return 0x66;
case 5 : return 0x6D;
case 6 : return 0x7D;
case 7 : return 0x07;
case 8 : return 0x7F;
case 9 : return 0x6F;

}
}

تحميل المشروع https://drive.google.com/drive/folde...hk?usp=sharing

بالتوفيق



..


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 20-08-2020 الساعة 06:48 AM

abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:
قديم 22-08-2020, 09:06 PM المشاركة 16   
افتراضي


مهندس عبدالله
اشكرك شكرا جزيلا علي اهتمامك بالمشروع
كده انا وصلت للمطلوب بالضبط
ولكن عند التنفيذ العملي المشروع لا يعمل مطلقا
طبعا انا وصلت كل حاجة
مقاومة ١٠ كيلو علي طرف ١ والموجب
التغذية علي طرفي ١١ و ١٢
الكريستالة علي طرفي ١٣ و ١٤
حتي علشان اختبر المكونات دي عملت تجربة دائرة فلاش بليد واحد واشتغلت الدائرة بكفاءة
مش عارف المفروض اعمل ايه تاني
هل بعد اذنك في امكانية ان حضرتك تنفذ المشروع عمليا



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