شِفر (کود) جستجو

استفاده از کی‌پد 4x3 با آردوینو

استفاده از کی‌پد 4x3 با آردوینو

در این آموزش، نحوهٔ استفاده از یک کی‌پد ۴×۳ با آردوینو برای خواندن فشردن کلیدها را بررسی خواهیم کرد. این کی‌پد را می‌توان در پروژه‌های مختلف به‌کار برد، مانند ایجاد یک رابط ورودی ساده برای یک سیستم امنیتی یا هر برنامه‌ای که نیاز به ورودی کاربر دارد. تا پایان این راهنما قادر خواهید بود فشردن کلیدها را بخوانید و به کلیدهای مشخصی پاسخ دهید.

حتماً ویدیوی همراه را برای مشاهدهٔ نمایش تصویری سیم‌کشی و پیاده‌سازی شِفر (کود) بررسی کنید (در ویدیو در 00:00).

سخت‌افزار به زبان ساده

اجزای اصلی این پروژه شامل کی‌پد 4x3 و برد آردوینو هستند. کی‌پد از ماتریسی از دکمه‌ها تشکیل شده که در 4 ردیف و 3 ستون چیده شده‌اند. وقتی یک دکمه فشار داده می‌شود، یک ردیف مشخص را به یک ستون مشخص متصل می‌کند و به آردوینو اجازه می‌دهد تشخیص دهد کدام دکمه فشار داده شده است.

برد آردوینو به‌عنوان کنترل‌کننده مرکزی عمل می‌کند که ورودی‌های صفحه‌کلید را می‌خواند. این برد از کتابخانه Keypad استفاده می‌کند که فرآیند مدیریت صفحه‌کلید ماتریسی را ساده می‌کند و تشخیص فشردن کلیدها را آسان‌تر می‌نماید.

جزئیات دیتاشیت

تولیدکنندهمختلف
شماره قطعهکی‌پد 4x3
ولتاژ منطقی5 V
جریان کاری≤ 20 mA
طول عمر کلید≥ 1,000,000 بار فشار
بستهصفحه‌کلید ماتریسی

  • پایه‌های کی‌پد را به‌درستی به پایه‌های دیجیتال آردوینو متصل کنید.
  • در صورت نیاز، بسته به تنظیمات‌تان از مقاومت‌های پول‌آپ یا پول-داون استفاده کنید.
  • مطمئن شوید که کتابخانه Keypad در Arduino IDE شما گنجانده شده است.
  • برای جلوگیری از قرائت‌های چندباره، عملیات نوسان‌زدایی (debounce) فشردن کلیدها را در نرم‌افزار اعمال کنید.
  • هر کلید را آزمایش کنید تا از سیم‌کشی صحیح و عملکرد مناسب آن اطمینان حاصل شود.

راهنمای سیم‌کشی

Arduino_wiring_4x3_keypad

برای سیم‌کشی صفحه‌کلید ۴×۳ به آردوینو، پایه‌های سطر و ستون صفحه‌کلید را به پایه‌های دیجیتال آردوینو متصل خواهید کرد. پایه‌های سطر (معمولاً ۴ پایه) را به پایه‌های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).

تصاویر

4x3_kaypad-1
4x3_kaypad-1
4x3_kaypad-2
4x3_kaypad-2
4x3_kaypad-3
4x3_kaypad-3
4x3_kaypad-4
4x3_kaypad-4
4x3_kaypad-5
4x3_kaypad-5
Arduino_wiring_4x3_keypad
Arduino_wiring_4x3_keypad
128-Ardunino code for 4x3 keypad
زبان: C++
/*
 * 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");
  } 

}

مواردی که ممکن است به آن‌ها نیاز داشته باشید

منابع و مراجع

هنوز هیچ منبعی موجود نیست.

فایل‌ها📁

فایل فریزینگ

سایر فایل‌ها