كود البحث

كود أردوينو وفيديو: لوحة مفاتيح سوداء بمصفوفة 4×4

كود أردوينو وفيديو: لوحة مفاتيح سوداء بمصفوفة 4×4

في هذا الدرس، سنستكشف كيفية استخدام لوحة مفاتيح مصفوفة 4x4 مع أردوينو لاتخاذ إجراءات بناءً على ضغطات المفاتيح. تتيح لوحة المفاتيح إدخال قيم، مثل '6' و 'A' و 'B' و 'D'، وتنفيذ مهام محددة عند الضغط على تلك المفاتيح. من خلال المتابعة، ستتعلم كيفية إعداد لوحة المفاتيح وكتابة الكود اللازم للتفاعل معها بفعالية. لمزيد من التوضيح، تأكد من مشاهدة الفيديو (في الفيديو عند 00:00).

شرح الأجهزة

تتكون لوحة مفاتيح مصفوفة 4×4 من 16 مفتاحًا مرتبة في شبكة 4×4. كل ضغطة مفتاح توصل صفوفًا وأعمدة محددة، مما يمكّن المتحكم الدقيق من تحديد أي مفتاح تم ضغطه. تُوصَل لوحة المفاتيح بالأردوينو باستخدام دبابيس رقمية، والتي سيتم تكوينها في الكود لقراءة ضغطات المفاتيح.

في هذا المشروع، سنستخدم مكتبة Keypad التي تُبسّط عملية قراءة المدخلات من لوحة المفاتيح. تتولى المكتبة منطق مسح الصفوف والأعمدة، مما يجعل من الأسهل عليك التركيز على وظائف مشروعك.

تفاصيل ورقة البيانات

المصنّععام
رقم القطعةلوحة مفاتيح بمصفوفة 4×4
جهد المنطق/الإدخال/الإخراج5 فولت
عمر المفتاح1,000,000 ضغطات
الأبعاد68.5 مم × 9.8 مم
الوزن23 غرام

  • قم بتوصيل دبابيس الصف بالدبابيس الرقمية 2-5.
  • قم بتوصيل دبابيس الأعمدة بالدبابيس الرقمية 6-9.
  • تأكد من توصيل الأسلاك بشكل صحيح لتجنب قراءات خاطئة.
  • استخدم مقاومات السحب للأعلى إذا لزم الأمر لتحقيق الاستقرار.
  • قم بإلغاء ارتداد ضغطات المفاتيح برمجياً لتجنب قراءات متعددة.

تعليمات الأسلاك

لتوصيل لوحة المفاتيح المصفوفة 4x4 بالأردوينو، ابدأ بتوصيل دبابيس الصفوف. قم بتوصيل دبوس الصف الأول إلى الدبوس الرقمي5, دبوس الصف الثاني إلى4، الدبوس في الصف الثالث إلى3, ودبوس الصف الرابع إلى2. بعد ذلك، صِل دبابيس الأعمدة، بدءًا من دبوس العمود الأول إلى الدبوس الرقمي9، دبوس العمود الثاني إلى8, دبوس العمود الثالث إلى7، ودبوس العمود الرابع إلى6يتبع هذا الإعداد نهج التوصيل من اليمين إلى اليسار كما هو موضح في الفيديو (في الفيديو عند 00:00).

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

أمثلة على الكود وشرح خطوة بخطوة

يقوم الكود التالي بتهيئة لوحة المفاتيح وإعداد الاتصال التسلسلي. يتيح لك ذلك رؤية أي مفتاح تم الضغط عليه في نافذة المراقب التسلسلي.

#include 

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

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

void setup(){
  Serial.begin(9600);
}

في الـsetupفي الدالة، نهيئ الاتصال التسلسلي بمعدل بود 9600. هذا يتيح لنا طباعة ضغطات المفاتيح على المراقب التسلسلي لأغراض التصحيح والمراقبة.

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.print("Key ");
    Serial.print(key);
    Serial.println(" is pressed");
  } 
}

الloopتتحقق الدالة باستمرار من ضغطات المفاتيح باستخدامkeypad.getKey(). إذا تم الضغط على مفتاح، فإنه يطبع قيمة المفتاح إلى المراقب التسلسلي. هنا سترى تغذية راجعة فورية لإدخالك.

4x4 matrix black keypad

عرض توضيحي / ما الذي يمكن توقعه

بمجرد إعداد التوصيلات والكود بشكل صحيح، يجب أن ترى ضغطات المفاتيح معروضة في مراقب المنفذ التسلسلي. ضغط '4' سيشغّل إجراءً محددًا، يمكنك تخصيصه في الكود. يتيح هذا الإعداد تطبيقات متنوعة، مثل التحكم بالأجهزة بناءً على مدخلات المستخدم. كن حذرًا من انقلاب القطبية وتأكد من أن جميع التوصيلات محكمة لتجنب المشاكل (في الفيديو عند 00:00).

الطوابع الزمنية للفيديو

  • 00:00مقدمة
  • 01:30توصيل لوحة المفاتيح
  • 02:45شرح الشيفرة
  • 04:00عرض ضغطات المفاتيح

الصور

4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad  back
4x4 matrix black keypad back
4x4 matrix black keypad
4x4 matrix black keypad dimensions
4x4 matrix black keypad
4x4 matrix black keypad
92-Arduino Code for 4x4 Black hard key keypad
اللغة: C++
/*
 * Original source: https://playground.arduino.cc/Code/Keypad
 * This is the Arduino code for a 4x4 keypad.
 * Watch the video for details and demo: https://youtu.be/1rfrvOTxtrg	
 *  * 
 * Written by Ahmad S. for Robojax Video channel www.Robojax.com
resources page for this code robojax.com/RJT75
 * Date: April 15, 2018, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
 * 
 */
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

// connect the pins from right to left to pins 2, 3, 4, 5, 6, 7, 8, 9
byte rowPins[ROWS] = {5,4,3,2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9,8,7,6}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  Serial.begin(9600);
}
  
void loop(){
  char key = keypad.getKey();
    // just print the pressed key
   if (key){
    Serial.print("Key ");
    Serial.print(key);
    Serial.println(" is pressed");
  } 
  
  // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    // Do something here if 4 is pressed
    Serial.println("Key 4 is pressed -> Action");
  }
}

الأشياء التي قد تحتاجها

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

مكتبات أردوينو (ملف مضغوط)