جدول المحتويات:

كيف تقرأ العديد من المفاتيح باستخدام دبوس MCU واحد: 4 خطوات
كيف تقرأ العديد من المفاتيح باستخدام دبوس MCU واحد: 4 خطوات
Anonim
كيفية قراءة العديد من المفاتيح باستخدام دبوس MCU واحد
كيفية قراءة العديد من المفاتيح باستخدام دبوس MCU واحد

هل سبق لك أن كنت تبتعد عن مشروع (مشاريع) ويستمر المشروع في النمو والنمو ، بينما تضيف المزيد من الأشياء إليه (نطلق عليها اسم الخلق الخالي)؟ في مشروع حديث ، كنت أقوم ببناء مقياس تردد وأضفت مولد إشارة / مولد تردد من خمس وظائف. سرعان ما انتهى بي الأمر بمفاتيح أكثر مما كان لديّ دبابيس متوفرة ، فماذا يجب أن يفعل الرجل؟

ومع ذلك ، سرعان ما كان لدي سبعة مفاتيح أخرى في Funbox (نعم ، هذا ما أسميته مولد وظيفتي … أعلم ، ليس لدي إبداع) وإليك تعليمات قصيرة توضح لك كيف يمكنك فعل الشيء نفسه. لا يتطلب أي سجلات التحول أو IC محددة. في الواقع ، لا يتطلب الأمر متحكمًا دقيقًا ، أيضًا ، إذا كانت أشباه الموصلات المنفصلة هي الطريقة التي تدور بها. إليك طريقة واحدة يمكنك من خلالها قراءة / إدارة مفاتيح متعددة باستخدام دبوس واحد على AVR الخاص بك (أو متحكم آخر … سمعت أن هناك متحكمات أخرى إلى جانب AVR ، لكن لا يمكنني تخيل …).:)

الخطوة 1: الأساسيات (ليس حقًا)

من أجل تحقيق ذلك ، ستحتاج إلى بعض المكونات. من المفيد أن يكون لديك العديد من المفاتيح التي يجب عليك إدارتها. ستحتاج أيضًا إلى بعض المقاومات وإما متحكم يحتوي على ADC (التحويل التناظري إلى الرقمي) أو بطريقة أخرى تريد الإشارة إلى وجود مفتاح تم تنشيطه والمفتاح الذي كان عليه.

إذا أردت ، يمكنك استخدام مذبذب متحكم في الجهد للإشارة إلى ذلك ، ربما مع بعض الأضواء الوامضة ، أو بدلاً من ذلك ، مع الصوت. في هذا الكتاب ، سوف أتظاهر بأننا نستخدم AVR ، لكن في عالمك يمكنك التظاهر بكل ما يجعلك سعيدًا. أفتقد بوب روس.

الخطوة الثانية: مقسم الجهد

مقسم الجهد
مقسم الجهد
مقسم الجهد
مقسم الجهد

في الأساس ، الطريقة التي سنقوم بها هي باستخدام تقنية ودائرة تسمى مقسم الجهد. تقوم مقسمات الجهد ، كما قد تكون خمنت ، بتقسيم الجهد V ، في ، ، على بعض القيمة التي تحددها. يمكنك تقسيم الجهد بعدة مكونات ، بما في ذلك المكثفات والمحاثات ، ولكن هنا سأفعل ذلك باستخدام المقاوم الجيد. الفكرة ما نقوم به هو وضع مكونين في سلسلة مما يؤدي ، كل على حدة ، إلى انخفاض في الجهد عبر المكون. انظر إلى الصورة الأولى إذا لم أفهم. هناك فرق محتمل قدره 9 فولت من سكة إلى سكة حديدية. بين 9V و 0V هناك نوعان من المقاومات على التوالي. سيشهد كل من هؤلاء انخفاضًا في الجهد عبر نفسه ، اعتمادًا على المقاومة ، كما تتذكر على الأرجح من V = IR. إذا قمت بقياس الجهد بين المقاومين ، فستحصل على بعض القيمة بين 9V و 0V ، اعتمادًا على مقدار الجهد الذي انخفض عبر المقاوم الأول والمقدار المتبقي للانخفاض على المقاوم الثاني ، قبل 0V. هناك معادلة مباشرة لحساب انخفاض الجهد عبر المقاوم في هذه الحالة وتبدو هكذا. دع الجهد فوق المقاوم 1 (R1) يكون V1 والجهد فوق المقاوم اثنين (R2) يكون V2. نظرًا لأنني لا أستطيع استخدام التنسيق بعد الآن ، انظر إلى الصورة 2 أدناه للحصول على الصيغة … لذلك ، في مقسم المقاومة الخاص بنا ، يمكن تحديد جهد Vout من خلال صيغتنا الخاصة بـ V2 (حيث سنشير إلى GND إلى 0V). ما علاقة هذا بوجود مجموعة من المفاتيح يتم اكتشافها من طرف واحد؟ حسنًا ، اقلب الصفحة وسأريك!

الخطوة 3: سلم مقسم الجهد

سلم مقسم الجهد
سلم مقسم الجهد

لنفترض الآن أن لدينا جميع مفاتيحنا ، ربما ستة أو ثمانية أو ستة عشر ، كلها متصلة عبر مقاومات تعمل كل منها كمقسم للجهد بحيث عندما تتغير حالة دبوس المفتاح ، يتم قراءة الجهد وبناءً على مستوى الجهد ، نحن يمكن معرفة التبديل الذي تم تنشيطه للتو. انظر للاسفل. في الصورة أدناه ، قمت بتوصيل كتلتين من المفاتيح. تحتوي الكتلة العلوية على مفتاحين ، بينما تحتوي الكتلة السفلية على خمسة مفاتيح. يمكنك توصيل مفاتيح التبديل المنفصلة ، واللحظية ، واللمسية ، وما إلى ذلك بنفس الطريقة. الشيء المهم الذي يجب ملاحظته هو المقاوم الذي يتصل به المفتاح الخاص بك. في المثال الخاص بي ، لقد ضاعفت تقريبًا مقاومة المقاوم التالي لإنشاء فجوة جهد يسهل قياسها ولا تخطئ في التبديل قبل أو بعد. إذا لم تكن قد لاحظت من قبل ، فابحث مرة أخرى ، وأدرك أننا عدنا إلى صديقنا القديم مقسم الجهد المقاوم. المقاوم الأول ، 10 كيلو أوم ، متصل بـ 5 فولت والمقاوم الثاني - المقاوم الذي سيحدد Vخارج بالنسبة لـ SWITCH_ADC pin ، يتم توصيله بكل مفتاح وبالتالي ، يرتبط كل مفتاح بجهد Vout معين يمكن قراءته من دبوس ADC المتصل في SWITCH_ADC. بعد ذلك ، حدد Vout المتوقع من كل مفتاح مثل ذلك

صوت = فين * (R2 / (R1 + R2))

للتبديل الأول:

Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V أو 240 mV

للتبديل الثاني:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V أو ~ 900mV

وما إلى ذلك.. لا تتردد في استبدال القيم الخاصة بك لـ R2 إذا كان لديك فقط مقاومات معينة في متناول اليد … الشيء الرئيسي هنا هو الحفاظ على فجوة واسعة بما فيه الكفاية في الجهد بين المفاتيح بحيث يفوز أي هامش خطأ في ADC ' وضعك في الجهد المتوقع من مفتاح مجاور. لقد وجدت أن أسهل ما يجب فعله هو بناء سلم المقسم ووضع مقياس متعدد / الفولتميتر على دبوس ADC والضغط على كل دبوس ومعرفة القيم التي تحصل عليها. يجب أن تكون جميلة على ما تحسبه. بمجرد حصولك على جميع قيم الجهد المتوقعة من كل مفتاح باستخدام مقاوم معين ، يمكنك حينئذٍ جعل MCU الخاص بك يقرأ دبوس ADC ومقارنته بالقيم المعروفة لتحديد المفتاح الذي تم الضغط عليه. على سبيل المثال ، لنفترض أنك قمت بتسجيل روتين خدمة المقاطعة الذي سيتم استدعاؤه كلما كان هناك تغيير تم اكتشافه على رقم التعريف الشخصي ADC. داخل هذا ISR ، يمكنك قراءة ADC ومقارنة هذه القيمة بجدول التبديل الخاص بك. إذا كنت تستخدم قيمة ADC 8 بت ، فسيتم تحويل جهدك إلى رقم بين 0 و 255 يتوافق مع جهد بين 0 و 5 فولت. يفترض هذا أنه قد تم تكوين ADC الخاص بك بهذه الطريقة.

الخطوة 4: الملخص

لذا ، يجب أن تعرف الآن كيف تكون مقتصدًا في استخدام دبابيس GPIO للمفاتيح. عندما تنفد دبابيس GPIO ، أو لم يكن لديك أي شيء لتبدأ به ، أو إذا كنت تدرك أنك ستستخدم مجموعة من المفاتيح ، فإن الحاجز المقاوم هو السبيل للذهاب لحفظ دبابيس GPIO الخاصة بك مع الاستمرار في توفير آلية قوية لاكتشاف الوصول عبر مفتاح التحويل.

موصى به: