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

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

ahmad alharbi
:: مهندس ::
تاريخ التسجيل: May 2016
المشاركات: 17
نشاط [ ahmad alharbi ]
قوة السمعة:0
قديم 28-10-2016, 06:18 PM المشاركة 1   
افتراضي استفسار كيف التفريق بين مدة الضغطة على زر Twitter FaceBook Google+



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


اخواني الاعزاء


عندي سؤال في المايكروكونترولر بشكل عام

وهو كيف يمكننا ان نجعل المايكروكونترولر يفرق بين الضغطة القصيرة والضغطة الطويلة


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

اعلانات

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 28-10-2016, 11:57 PM المشاركة 2   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


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


اخواني الاعزاء


عندي سؤال في المايكروكونترولر بشكل عام

وهو كيف يمكننا ان نجعل المايكروكونترولر يفرق بين الضغطة القصيرة والضغطة الطويلة


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


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

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

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

جرب استخدام المفتحين ولاحظ الفرق ..

أولا الأمر يتعلق بالبرمجه كما ذكرت لك ..
وهنا عند الضغط على المفتاح اليسار .. ضغطه واحد سريعه .. سيعمل الليد رقم (1)..
وايذا ضغط ضغطه وتليها ضغطه ثانيه تستمر لمدة 2 ثانيه وتم تحرير المفتاح ستلاحظ أن اليد رقم (2) قد عمل ..

ولكن هذة الطريقه ربما محدودة بعض الشئ عن طرق أخرى ..
فمثلا لو تلاحظ المفتاح اليمين .. يتحكم فى (8 منافذ من الميكرو كنترولر .. وتستطيع التحكم فى عدد أكبر من ذالك بكثير .. وأيضااا يمكن التحكم فى جميع منافذ الميكرو كنترولر من خلال مفتاح واحد فقط ..

اليك الصورة



واليك كزد البرنامج ..

كود:

      //eng/ abdalla hygazy //
      

  int LED1=0,LED2=0,LED3=0,LED4=0;
   
    void main() {
    TRISB=0; PORTB=0;
    TRISD=2;
  
    while(1){
    
    //***********************************************************//
    if( PORTD.F0==0 ){ delay_ms(450); if( PORTD.F0==1 ){LED1=1; }   
    if( PORTD.F0==0 ){ LED1=2;delay_ms(450); }};
   //***********************************************************//
   
    //*****************************************//
     if( PORTD.F1==0 ){ LED1++; delay_ms(450); }
    //****************************************//
     
    //**************************//
    if( LED1==1 ) {  PORTB=1;   }
    if( LED1==2 ) {  PORTB=2;   }
    if( LED1==3 ) {  PORTB=4;   }
    if( LED1==4 ) {  PORTB=8;   }
    if( LED1==5 ) {  PORTB=16;  }
    if( LED1==6 ) {  PORTB=32;  }
    if( LED1==7 ) {  PORTB=64;  }
    if( LED1==8 ) {  PORTB=128; }
   //***************************//
    
    //************************//
    if( LED1==9 ) {  LED1=1; }
    //***********************//
    
  }
}

وايضااا اليك المشروع كامل للتحميل والتجربة ..
https://drive.google.com/open?id=0Bx...TNmYXlycXFPMTg

تحياتى لك وانا معك فى أى توضيح أو استفسار

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً رسول العراق ( شكر العضو على هذه المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

ahmad alharbi
:: مهندس ::
تاريخ التسجيل: May 2016
المشاركات: 17
نشاط [ ahmad alharbi ]
قوة السمعة:0
قديم 31-10-2016, 05:07 PM المشاركة 3   
افتراضي


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

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

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

جرب استخدام المفتحين ولاحظ الفرق ..

أولا الأمر يتعلق بالبرمجه كما ذكرت لك ..
وهنا عند الضغط على المفتاح اليسار .. ضغطه واحد سريعه .. سيعمل الليد رقم (1)..
وايذا ضغط ضغطه وتليها ضغطه ثانيه تستمر لمدة 2 ثانيه وتم تحرير المفتاح ستلاحظ أن اليد رقم (2) قد عمل ..

ولكن هذة الطريقه ربما محدودة بعض الشئ عن طرق أخرى ..
فمثلا لو تلاحظ المفتاح اليمين .. يتحكم فى (8 منافذ من الميكرو كنترولر .. وتستطيع التحكم فى عدد أكبر من ذالك بكثير .. وأيضااا يمكن التحكم فى جميع منافذ الميكرو كنترولر من خلال مفتاح واحد فقط ..

اليك الصورة



واليك كزد البرنامج ..

كود:

      //eng/ abdalla hygazy //
      

  int LED1=0,LED2=0,LED3=0,LED4=0;
   
    void main() {
    TRISB=0; PORTB=0;
    TRISD=2;
  
    while(1){
    
    //***********************************************************//
    if( PORTD.F0==0 ){ delay_ms(450); if( PORTD.F0==1 ){LED1=1; }   
    if( PORTD.F0==0 ){ LED1=2;delay_ms(450); }};
   //***********************************************************//
   
    //*****************************************//
     if( PORTD.F1==0 ){ LED1++; delay_ms(450); }
    //****************************************//
     
    //**************************//
    if( LED1==1 ) {  PORTB=1;   }
    if( LED1==2 ) {  PORTB=2;   }
    if( LED1==3 ) {  PORTB=4;   }
    if( LED1==4 ) {  PORTB=8;   }
    if( LED1==5 ) {  PORTB=16;  }
    if( LED1==6 ) {  PORTB=32;  }
    if( LED1==7 ) {  PORTB=64;  }
    if( LED1==8 ) {  PORTB=128; }
   //***************************//
    
    //************************//
    if( LED1==9 ) {  LED1=1; }
    //***********************//
    
  }
}

وايضااا اليك المشروع كامل للتحميل والتجربة ..
https://drive.google.com/open?id=0Bx...TNmYXlycXFPMTg

تحياتى لك وانا معك فى أى توضيح أو استفسار

يعطيك الف عافية استاذ احمد

حبيت اجرب الكود ولكن صار عندي مشكلة في البروتيوس

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


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 31-10-2016, 10:26 PM المشاركة 4   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


يعطيك الف عافية استاذ احمد

حبيت اجرب الكود ولكن صار عندي مشكلة في البروتيوس

مهما اعدل في الاكواد عبر المايكرو سي البروتيوس مايتجاوب مع التغيير في البرمجة ويشغل كود قديم ماعرف ايش السبب
يجب ان تحدد ملف الهكس لبرنامج البروتوس .. وايضااا يجب ترجمه البرنامج كل ما اجريت عليه تغير ...


ahmad alharbi
:: مهندس ::
تاريخ التسجيل: May 2016
المشاركات: 17
نشاط [ ahmad alharbi ]
قوة السمعة:0
قديم 01-11-2016, 02:15 PM المشاركة 5   
افتراضي


يجب ان تحدد ملف الهكس لبرنامج البروتوس .. وايضااا يجب ترجمه البرنامج كل ما اجريت عليه تغير ...
يعطيك العافية


كل هذا سويته ولكن يبدو ان النسخة اللي استخدمها معطوبة


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


يعطيك العافية


كل هذا سويته ولكن يبدو ان النسخة اللي استخدمها معطوبة
اليك نسخه لبرنامج البروتوس .. مجربه وشغاله تمام .. انا استخدمها عندى ..

https://drive.google.com/open?id=0Bx...kVQTkk3cGlCcFE

بالتوفيق

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025