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

تأكد من مشاهدة الفيديو المرفق للحصول على عرض بصري لتوصيل الأسلاك وتنفيذ الكود (في الفيديو عند 00:00).
شرح الأجهزة
المكونات الرئيسية لهذا المشروع تشمل لوحة مفاتيح 4x3 ولوحة الأردوينو. تتكون لوحة المفاتيح من مصفوفة من الأزرار مرتبة في 4 صفوف و3 أعمدة. عند الضغط على زر، فإنه يربط صفًا معينًا بعمود معين، مما يسمح للوحة الأردوينو بتحديد أي زر تم الضغط عليه.
تعمل لوحة Arduino كمتحكم مركزي يقرأ مدخلات لوحة المفاتيح. تستعين بمكتبة Keypad التي تُبسّط عملية إدارة لوحة المفاتيح المصفوفية وتسهّل اكتشاف ضغطات الأزرار.
تفاصيل ورقة البيانات
| المصنّع | متنوعة |
|---|---|
| رقم القطعة | لوحة مفاتيح 4×3 |
| جهد المنطق | 5 فولت |
| تيار التشغيل | ≤ 20 mA |
| عمر المفتاح | ≥ 1,000,000 ضغطات |
| حزمة | لوحة مفاتيح مصفوفية |
- وصل دبابيس لوحة المفاتيح بشكل صحيح إلى الدبابيس الرقمية في الأردوينو.
- استخدم مقاومات سحب للأعلى أو للأسفل عند الحاجة، اعتمادًا على إعدادك.
- تأكد من تضمين مكتبة Keypad في برنامج Arduino IDE لديك.
- عالج ارتداد ضغطات المفاتيح برمجياً لتجنب القراءات المتعددة.
- اختبر كل مفتاح للتأكد من توصيل الأسلاك بشكل صحيح ومن عمله
تعليمات التوصيل الكهربائي

لتوصيل لوحة المفاتيح 4x3 إلى الأردوينو، ستقوم بتوصيل دبابيس الصفوف والأعمدة من لوحة المفاتيح إلى الدبابيس الرقمية على الأردوينو. قم بتوصيل دبابيس الصفوف (عادةً 4 دبابيس) إلى الدبابيس2،3،4، و5على الأردوينو. يجب توصيل دبابيس الأعمدة (عادةً 3 دبابيس) إلى دبابيس6،7، و8.
تأكد من توصيل دبوس الأرضي للوحة المفاتيح بأرضي الأردوينو وتوصيل دبوس الطاقة بمخرج 5V. ستمكّن هذه التوصيلة الأردوينو من قراءة حالة كل مفتاح عند الضغط عليه، باستخدام مكتبة Keypad للتعامل مع مسح المصفوفة.
أمثلة على الكود وشرح خطوة بخطوة
يقوم الكود التالي بتهيئة لوحة المفاتيح ويطبع المفتاح المضغوط على المراقب التسلسلي. تُخزّن قيم المفاتيح في مصفوفة من الأحرف.
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};الkeysالمصفوفة تحدد تخطيط لوحة المفاتيح، الذي يتوافق مع الترتيب الفيزيائي للمفاتيح. كل حرف يمثل زرًا على لوحة المفاتيح.

بعد ذلك، نقوم بإعداد لوحة المفاتيح في الـsetup()دالة:
void setup(){
Serial.begin(9600);
Serial.println("Robojax 4x3 keypad");
}يهيئ هذا الجزء الاتصال التسلسلي بمعدل باود 9600، مما يتيح لنا عرض ضغطات المفاتيح في المراقب التسلسلي.
أخيرًا، تتحقق الحلقة من ضغطات المفاتيح وتستجيب لها وفقًا لذلك:
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
if (key =='4'){
Serial.println("Key 4 is pressed");
}
}هنا، يتحقق البرنامج مما إذا تم الضغط على أي مفتاح باستخدامkeypad.getKey(). إذا تم ضغط أي مفتاح، فإنه يطبع قيمة ذلك المفتاح. بالإضافة إلى ذلك، إذا تم ضغط المفتاح '4'، فسيتم عرض رسالة محددة.
عرض توضيحي / ما الذي تتوقعه
عند اكتمال الإعداد، يجب أن يؤدي الضغط على أي مفتاح في لوحة المفاتيح إلى إرسال الحرف المقابل إلى المراقب التسلسلي. إذا تم الضغط على المفتاح '4'، فسيتم طباعة رسالة خاصة تشير إلى تفعيل ذلك المفتاح. تتيح لك هذه الوظيفة البناء على هذا الأساس لتطبيقات أكثر تعقيدًا.
كن حذراً من المدخلات العائمة التي قد تؤدي إلى سلوك متقلب. تأكد من أن جميع الاتصالات محكمة واختبر كل مفتاح للتأكد من عمله بشكل صحيح (في الفيديو عند 00:00).
هذا الدليل هو جزء من: لوحات المفاتيح
- Arduino Code and Video for a Four-Key Keypad
- كود أردوينو وفيديو: لوحة مفاتيح سوداء بمصفوفة 4×4
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- كيفية استخدام لوحة مفاتيح 4x4 مطاطية مع أردوينو
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
- درع لوحة مفاتيح وشاشة LCD 1602: الكود الأساسي
/*
* Library taken from: https://playground.arduino.cc/Code/Keypad
* This is the Arduino code for a 4x3 keypad.
* Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
resources page: www.Robojax.com/RJT104
*
* Modified by Ahmad Shamshiri for the Robojax Video channel: www.Robojax.com/RJT104
* Date: July 11, 2018 at 19:56 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
* Watch video instructions for this code:
*
*/
/* @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 = 3; //three columns
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
// Robojax 4x3 keypad test
Serial.begin(9600);
Serial.println("Robojax 4x3 keypad");
}
void loop(){
// Robojax 4x3 keypad test
char key = keypad.getKey();
// Just print the pressed key
if (key){
Serial.println(key);
}
// This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
if (key =='4'){
// If key matches what you are looking for
Serial.println("Key 4 is pressed");
}
}
الأشياء التي قد تحتاجها
-
أمازون
الموارد والمراجع
لا توجد موارد حتى الآن.
ملفات📁
Fritzing File
-
لوحة مفاتيح غشاء مصفوفة 4x3
Membrane Matrix Keypad 4x3.fzpz0.01 MB
ملفات أخرى
-
مكتبة لوحة مفاتيح LCD
robojax-1602_LCD_keypad.zip