30‏/10‏/2016

5 Buttons on 1 Analog Pin


فى هذه المقالة أشرح كيفية توصيل 5 مفاتيح Push Buttons على طرف Pin واحد فقط من أطراف الـ PIC microcontroller ، حيث يتم داخل الكود تحديد رقم  المفتاح الذى تم الضغط عليه ليقوم بتنفيذ أمر معين.



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

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

كما يتم استخدام مقاومة فى حدود 100 كيلو أوم ، كما فى الصورة التالية ففى حالة عدم الضغط على أى مفتاح تجعل الجهد الواقع على الطرف رقم 33 فى الميكروكنترولر متصل بالارضى فيقرأ صفر فولت، حيث لا يجب جعل الطرف غير متصل بجهد عالى او منخفض (عائم ).

ويتم توصيل تلك الأطراف المتصلة مع بعضها على أحد أطراف الميكروكنترولر التى تقوم بقراءة القيم التماثلية Analog pin، حيث يتم تحويل تلك القيم التماثلية الى قيم رقمية تقع فى المدى من 0 الى 1023، ويتم مقارنتها داخل الكود لمعرفة رقم المفتاح الذى تم الضغط عليه، لإضاءة LED واحد من الخمسة LEDs المستخدمة حسب رقم المفتاح الذى تم الضغط عليه.
والشكل التالى هو مخطط لتوصيل الدائرة.

والجدول التالى يوضح المكونات المستخدمة فى الدائرة

وسنستخدم الأطراف الموضحة فى الشكل التالى والموجودة على جسم الميكروكنترولر

والصور التالية توضح كيفية توصيل الدائرة على لوحة التجارب


والكود التالى خاص بتشغيل الدائرة، وتمت كتابته بلغة mikroC،


وقد قمت بالتعليق بجانب الأوامر للتوضيح، ويعتمد الكود على الدالة Key_Press والتى تقوم بقراءة الجهد  التماثلى الموجود على قناة الادخال التماثلى AN12 وتحويله الى جهد رقمى، ثم التفرع لمعرفة رقم المفتاح الذى تم الضغط عليه ، والعودة بقيمته.
والفيديو التالى يوضح تشغيل الدائرة العملية




خالص تحياتى
م. محمد يوسف













هناك 6 تعليقات:

  1. السلام عليكم أيها الأستاذ المحترم ...ربنا يكرمك ويزيدك من فضله ويحميك من كل مكروه... أحبك في الله.
    الأستاذ الفاضل (إني أرى أن الأطراف المتصلة مع بعض هي بالأساس متصلة إتصالا مباشرا بالسالب لذلك لم أفهم فائدة مقاومة ال 100كيلو أوم التي أشرت إليها."كما يتم استخدام مقاومة فى حدود 100 كيلو أوم ، كما فى الصورة التالية حتى يصبح جهد الأطراف المتصلة مع بعضها مساويا للصفر فولت، وذلك فى حالة عدم الضغط على أى مفتاح."
    لك مني أطيب تحية.

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله وبركاته، أحبك الذى أحببتنى فيه.
      بالنسبة للمقاومة 100 كيلو اوم، لها فائدة فى حالة عدم الضغط على أى مفتاح حيث تجعل الجهد الواقع على الطرف رقم 33 فى الميكروكنترولر متصل بالارضى فيقرأ صفر فولت، حيث لا يجب جعل الطرف غير متصل بجهد عالى او منخفض (عائم )، تم تعديل الشرح ليصبح أكثر وضوحا، شكرا جزيلا لحضرتك.

      حذف
  2. السلام عليكم ، فكرة رائعه جدا لاستخدام الادخال التماثلي ، انا تابعت دروسك الخاصة بالمايكروكونترولر واعجبني اسلوبك في توصيل المعلومة واقدر لك كم بذلت من جهد في ذلك ، اخي العزيز انا مهندس سيطرة ونظم ولي خبرة بسيطة في مجال برمجة المايكروكونترولر بالمايكرو سي واستخدم في اغلب مشاريعي pic16f677 , اريد ان اوسع معلوماتي من خلالك لذا ارسلت لك طلب شراء الاسطوانة الخاصة بدروس المايكروكونترولر ، فارجو الرد ، وشكرا
    اخوك المهندس جاسم من العراق

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله مهندس جاسم، أسعدنى جدا متابعة حضرتك، تم الرد على رسالتك، خالص تحياتى وشكرى لك.

      حذف
  3. جزاك الله كل خير يابشمهندس محمد يوسف

    ردحذف
    الردود
    1. ربنا يبارك فى حضرتك، شكرا جزيلا.

      حذف