Search Code

4x4 সফট কিপ্যাড কীভাবে Arduino দিয়ে ব্যবহার করবেন

4x4 সফট কিপ্যাড কীভাবে Arduino দিয়ে ব্যবহার করবেন

এই টিউটোরিয়ালে, আমরা একটি Arduino-এর সাথে 4x4 সফট কিপ্যাড কীভাবে সংযোগ ও ব্যবহার করতে হয় তা অন্বেষণ করব। এই কিপ্যাডে ষোলটি কী রয়েছে কিন্তু সংযোগের জন্য মাত্র আটটি পিন প্রয়োজন, যা বিভিন্ন প্রকল্পের জন্য এটিকে একটি কমপ্যাক্ট এবং দক্ষ ইনপুট ডিভাইস করে তোলে। এই গাইডের শেষে, আপনি কিপ্যাড থেকে ইনপুট পড়তে এবং সেই ইনপুটগুলির উপর ভিত্তি করে কাজ শুরু করতে সক্ষম হবেন।

4x4 soft keypdad

আমরা কিপ্যাডের সাথে ইন্টারফেস করার জন্য Keypad লাইব্রেরি ব্যবহার করব, যা আমাদের সহজেই সনাক্ত করতে দেয় কোন কী চাপা হয়েছে। আমরা যে প্রোগ্রামটি বাস্তবায়ন করব তা সিরিয়াল মনিটরে চাপা কী প্রদর্শন করবে এবং যখন একটি নির্দিষ্ট কী চাপা হবে, যেমন কী '4', তখন কাজ করবে। আরও ভিজ্যুয়াল নির্দেশনার জন্য, ভিডিওটি দেখতে ভুলবেন না (ভিডিওতে 00:00 এ)।

হার্ডওয়্যার ব্যাখ্যা

এই প্রকল্পের প্রধান উপাদান হল 4x4 সফট কিপ্যাড, যা একটি গ্রিডে সাজানো 16টি বোতাম নিয়ে গঠিত। প্রতিটি বোতাম Arduino-এর একটি নির্দিষ্ট পিনের সাথে সংযুক্ত হয়, যা এটি সনাক্ত করতে দেয় যখন একটি বোতাম চাপা হয়। কিপ্যাডটি একটি ম্যাট্রিক্স স্ক্যানিং পদ্ধতি ব্যবহার করে কাজ করে, যেখানে কোন কী চাপা হয়েছে তা নির্ধারণ করতে সারি এবং কলামগুলি ক্রমানুসারে সক্রিয় হয়।

কিপ্যাড সংযোগ করতে, আপনাকে Arduino-তে আটটি ডিজিটাল পিন ব্যবহার করতে হবে। সারিগুলি সাধারণত পিন 2 থেকে 5 এর সাথে সংযুক্ত থাকে, যখন কলামগুলি পিন 6 থেকে 9 এর সাথে সংযুক্ত থাকে। এই বিন্যাসটি Arduino-কে প্রতিটি কী-এর অবস্থা কার্যকরভাবে পড়তে দেয়।

ডেটাশিট বিবরণ

প্রস্থ69mm
দৈর্ঘ্য76mm
ক্যাবলের দৈর্ঘ্য84mm
সংযোগকারীর প্রস্থ20mm
সংযোগকারী ছিদ্রের ব্যবধান2.56mm

  • ভুল পড়া এড়াতে সারি এবং কলাম পিনের সঠিক তারের সংযোগ নিশ্চিত করুন।
  • ইনপুট রিডিং স্থিতিশীল করতে প্রয়োজন হলে পুল-আপ রেজিস্টর ব্যবহার করুন।
  • একটি প্রেসের জন্য একাধিক রিডিং এড়াতে সফ্টওয়্যারে কী ডিবাউন্স করুন।
  • কার্যকারিতা নিশ্চিত করতে প্রতিটি কী আলাদাভাবে পরীক্ষা করুন।
  • কর্মক্ষমতা বজায় রাখতে কিপ্যাডটি শুকনো এবং পরিষ্কার রাখুন।

তার সংযোগ নির্দেশাবলী

Arduino wiring for 4x4 soft keypad
Arduino wiring for 4x4 soft keypad

4x4 কিপ্যাডটি Arduino-তে তার করতে, কিপ্যাডের সারি পিনগুলিকে Arduino-এর ডিজিটাল পিনের সাথে নিম্নরূপ সংযুক্ত করুন: প্রথম সারিটি পিন 2-এ, দ্বিতীয় সারিটি পিন 3-এ, তৃতীয় সারিটি পিন 4-এ এবং চতুর্থ সারিটি পিন 5-এ সংযুক্ত করুন। কলাম পিনগুলির জন্য, প্রথম কলামটি পিন 6-এ, দ্বিতীয় কলামটি পিন 7-এ, তৃতীয় কলামটি পিন 8-এ এবং চতুর্থ কলামটি পিন 9-এ সংযুক্ত করুন।

এই সেটআপটি Arduino-কে সারি এবং কলামগুলির মাধ্যমে দক্ষতার সাথে স্ক্যান করতে দেয়। প্রতিটি পিন তার নির্ধারিত সারি বা কলামের সাথে সঠিকভাবে মিলছে তা নিশ্চিত করতে সংযোগগুলি দুবার পরীক্ষা করুন। ভিডিওতে, বিকল্প তারের কনফিগারেশনগুলি সংক্ষিপ্তভাবে আলোচনা করা হয়েছে (ভিডিওতে 01:15 এ)। আপনি যদি ভিন্নভাবে তার করতে চান, তাহলে কোডে পিন নম্বরগুলি সেই অনুযায়ী আপডেট করুন।

কোড উদাহরণ ও ওয়াকথ্রু

কোডে, আমরা Keypad লাইব্রেরি অন্তর্ভুক্ত করে এবং কিপ্যাডের বিন্যাস সংজ্ঞায়িত করে শুরু করি। সারি এবং কলামগুলি অ্যারে ব্যবহার করে সেট আপ করা হয়, যেখানে rowPins সারিগুলির সাথে সংযুক্ত ডিজিটাল পিনগুলিতে ম্যাপ করে এবং colPins কলামগুলিতে ম্যাপ করে।

const byte ROWS = 4; //চারটি সারি
const byte COLS = 4; //চারটি কলাম
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

এই অংশে, আমরা সারি এবং কলামের সংখ্যা, সেইসাথে কীগুলির অক্ষর বিন্যাস সংজ্ঞায়িত করি। কোন সারি এবং কলাম সক্রিয় হয়েছে তার উপর ভিত্তি করে কোন কী চাপা হয়েছে তা সনাক্ত করার জন্য এই সেটআপটি অত্যন্ত গুরুত্বপূর্ণ।

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

setup ফাংশনটি 9600 বড হারে সিরিয়াল যোগাযোগ শুরু করে। ডিবাগিং এবং যাচাইয়ের জন্য সিরিয়াল মনিটরে কীপ্রেস ডেটা পাঠানোর জন্য এটি গুরুত্বপূর্ণ।

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

loop ফাংশনে, আমরা keypad.getKey() ব্যবহার করে একটি চাপা কী-এর জন্য ক্রমাগত পরীক্ষা করি। যদি একটি কী চাপা হয়, এটি সিরিয়াল মনিটরে কী মানটি প্রিন্ট করে। অতিরিক্তভাবে, যদি কী '4' চাপা হয়, এটি একটি নির্দিষ্ট বার্তা প্রিন্ট করে যা নির্দেশ করে যে কী '4' সক্রিয় হয়েছে। কোডের এই অংশটি ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে রিয়েল-টাইম ইন্টারঅ্যাকশনের অনুমতি দেয়।

প্রদর্শন / কী আশা করবেন

একবার সবকিছু সেট আপ হয়ে গেলে এবং কোডটি আপনার Arduino-তে আপলোড করা হলে, আপনি সিরিয়াল মনিটরে চাপা কীগুলি প্রদর্শিত দেখতে পাবেন। আপনি যদি কী '4' চাপেন, তাহলে "Key 4 is pressed" বার্তাটি প্রদর্শিত হবে, যা নিশ্চিত করে যে ইনপুটটি সফলভাবে সনাক্ত করা হয়েছে। সাধারণ সমস্যাগুলি থেকে সতর্ক থাকুন, যেমন ফ্লোটিং ইনপুট বা ভুল তারের সংযোগ, যা ভুল রিডিংয়ের দিকে নিয়ে যেতে পারে (ভিডিওতে 02:30 এ)।

ভিডিও টাইমস্ট্যাম্প

  • 00:00 - কিপ্যাডের ভূমিকা
  • 01:15 - তার সংযোগ নির্দেশাবলী
  • 02:30 - কোড ব্যাখ্যা এবং প্রদর্শন

ছবি

4x4 soft keypdad back view
4x4 soft keypdad back view
4x4 soft keypdad
4x4 soft keypdad
4x4 soft keypdad connector
4x4 soft keypdad connector
4x4 soft keypdad
4x4 soft keypdad
Arduino wiring for 4x4 soft keypad
Arduino wiring for 4x4 soft keypad
41-Resources for this code
ভাষা: 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: http://youtu.be/qIDzzG2LUtg
 * 
 * Written by Ahmad Nejrabi for Robojax Video channel: www.Robojax.com
 * Date: December 18, 2017, 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'}
};

byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8,9}; //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.println(key);
  } 
  
  // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    Serial.println("Key 4 is pressed");
  }
}

আপনাকে যা প্রয়োজন হতে পারে

সম্পদ ও রেফারেন্সসমূহ

এখনো কোনো সম্পদ নেই।

ফাইলসমূহ📁

আর্ডুইনো লাইব্রেরি (জিপ)