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

استخدام لوحة مفاتيح 4x4 مع CircuitPython: 4 خطوات
استخدام لوحة مفاتيح 4x4 مع CircuitPython: 4 خطوات

فيديو: استخدام لوحة مفاتيح 4x4 مع CircuitPython: 4 خطوات

فيديو: استخدام لوحة مفاتيح 4x4 مع CircuitPython: 4 خطوات
فيديو: How to interface 4x4 Membrane Keypad using Raspberry Pi Pico and Password Lock 2024, يوليو
Anonim
باستخدام 4x4 KeyPad مع CircuitPython
باستخدام 4x4 KeyPad مع CircuitPython

توفر لوحة المفاتيح غير المكلفة هذه طريقة بسيطة للإدخال الرقمي لمشاريع CircuitPython. سأستخدمه مع Adafruit ItsyBitsy M0 express.

سوف تحتاج:

  • لوحة المفاتيح - لي هو 4x4
  • ItsyBitsy M0 Express أو لوحة مماثلة
  • تم تثبيت Mu Editor على جهاز الكمبيوتر الخاص بك
  • كبل USB لفلاش الكود

الخطوة 1: كيف تعمل لوحة المفاتيح

كيف تعمل لوحة المفاتيح
كيف تعمل لوحة المفاتيح

تحتوي لوحة المفاتيح على 16 مفتاحًا فقاعيًا بسيطًا وبطيئ المفعول مرتبة في 4 حسب الشبكة مع 8 وصلات في الأسفل. إذا قمنا بالترقيم من اليسار من 0 إلى 7 ، فإن الوصلات من 0 إلى 3 متصلة بكل من الصفوف. توصيل 0 بالصف العلوي والاتصال 3 بالصف السفلي. التوصيلات من 4 إلى 7 متصلة بالأعمدة ذات التوصيل 4 في العمود الأيسر والاتصال 7 بالعمود الأيمن. يقوم كل مفتاح من المفاتيح الستة عشر بإجراء صلة بين مجموعة صف / عمود مختلفة. إذا ضغطنا على key7 ، فسيتم ربط الصف الثالث بالعمود الأيسر. يمكننا أن نشعر إذا تم الضغط على المفتاح 5 إذا تم رفع صفه إلى HIGH ويمكننا قراءة HIGH في العمود الخاص به. للقيام بذلك ، نخرج إلى الصفوف و INPUT من الأعمدة.

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

نحتاج إلى أن نأخذ في الاعتبار حقيقة أن مفاتيح الفقاعة هذه بطيئة جدًا وتحتاج إلى الضغط عليها بشدة لإغلاقها. يمكن إجراء مسح جميع المفاتيح الـ 16 بهذه الطريقة بسرعة كبيرة ولكن يتعين علينا إجراء المسح بشكل متكرر لالتقاط ضغطة مفتاح. نحتاج أيضًا إلى "debounce" مع تأخير زمني قصير حتى لا نحصل على تكرار للمفاتيح في كل مرة نضغط فيها.

نظرًا لأن المفاتيح "اسفنجي" تمامًا ، فإننا نحتاج إلى بعض التعليقات للمستخدم للإشارة إلى أنه تمت قراءة الضغط على مفتاح. يومض مؤشر LED المدمج في كل مرة يتم فيها استشعار الضغط على مفتاح.

الخطوة 2: التوصيلات المادية

التوصيلات المادية
التوصيلات المادية

الاتصالات من اليسار إلى اليمين على لوحة المفاتيح 0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 على ItsyBitsy

يتم تعيين D7 إلى D11 كمخرجات بينما يتم إعداد A5 إلى A2 كمدخلات مع PULLDOWN.

يحتوي الكود على الكثير من التعليقات ويجب أن يكون من السهل جدًا متابعته.

الخطوة 3: كيف يعمل Getkey ()

كيف يعمل Getkey ()
كيف يعمل Getkey ()

تقوم هذه الوظيفة بمسح لوحة المفاتيح ضوئيًا بضغطة مفتاح واحدة. يقوم بالتحقق بسرعة من كل مفتاح بدوره بحد أقصى 10 مرات لمعرفة ما إذا كان المفتاح الرئيسي مغلقًا. إذا تم الضغط على مفتاح ، فإنه يعيد القيمة الرئيسية ، مع العد من اليسار إلى اليمين من أعلى إلى أسفل (0 … 15) لاحظ قيم الصف السفلي: 14 ، 0 ، 15 ، 13 (Hex E ، 0 ، F ، D). إذا لم يتم الضغط على أي مفتاح ، فسيتم إرجاعه -999 كرمز خطأ يمكن التقاطه بسهولة في البرنامج الرئيسي. يومض مؤشر LED المدمج إذا تم الضغط على مفتاح كتعليق من المستخدم. يتم تشغيل هذا بسرعة كبيرة ولا يتم استخدام انتظار الارتداد لمدة 0.2 ثانية إلا عند الضغط على المفتاح.

الخطوة 4: Getvalue (بالأرقام)

Getvalue (أرقام)
Getvalue (أرقام)

يوفر هذا الإجراء قيمة n من المفاتيح الرقمية. يتجاهل المفاتيح الحمراء.

يمكن تحويل رمز Python هذا بسهولة للتشغيل على جهاز آخر ، مثل Raspberry Pi ، ربما تحتاج فقط إلى تغيير خطوط إعداد الدبوس في الجزء العلوي من البرنامج النصي.

يرجى إعلامي إذا وجدت الرمز مفيدًا.

ابقى امن و اضحك!

موصى به: