কোড অনুসন্ধান

1602 এলসিডি কিপ্যাড শিল্ড: বেসিক কোড

1602 এলসিডি কিপ্যাড শিল্ড: বেসিক কোড

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

মূল ফোকাস একটি সহজ প্রোগ্রাম তৈরি করার উপর থাকবে যা কী প্রেস শনাক্ত করে এবং LCD-তে সংশ্লিষ্ট বার্তা প্রদর্শন করে। আপনি ভিডিওতে একটি ভিজ্যুয়াল প্রদর্শনের জন্য সাথে অনুসরণ করতে পারেন (ভিডিওতে 03:00-এ)।

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

এই নির্মাণের প্রধান উপাদান হল 1602 LCD কিপ্যাড শিল্ড। এই শিল্ডটি সরাসরি Arduino বোর্ডের সাথে সংযুক্ত হয় এবং ব্যবহারকারীর মিথস্ক্রিয়ার জন্য একটি ডিসপ্লে এবং একটি কিপ্যাড উভয়ই প্রদান করে। LCD টেক্সট বার্তা দেখাতে পারে, যখন কিপ্যাড ব্যবহারকারীদের বিভিন্ন বোতামের মাধ্যমে বিকল্প নির্বাচন করতে দেয়।

কিপ্যাডটি একটি অ্যানালগ ইনপুট ব্যবহার করে কাজ করে, যা Arduino কোন বোতাম চাপা হয়েছে তা নির্ধারণ করতে পড়ে। প্রতিটি বোতামের একটি অনন্য রোধ রয়েছে, যা মাইক্রোকন্ট্রোলারকে সেন্সর থেকে প্রাপ্ত অ্যানালগ মানের উপর ভিত্তি করে বোতামটি শনাক্ত করতে দেয়।

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

প্রস্তুতকারকজেনেরিক
পার্ট নম্বর1602 LCD কিপ্যাড শিল্ড
লজিক/IO ভোল্টেজ5 V
সাপ্লাই ভোল্টেজ5 V
আউটপুট কারেন্ট (প্রতি চ্যানেল)2 mA
পিক কারেন্ট (প্রতি চ্যানেল)20 mA
PWM ফ্রিকোয়েন্সি নির্দেশিকাপ্রযোজ্য নয়
ইনপুট লজিক থ্রেশহোল্ড0.3 Vcc থেকে 0.7 Vcc
ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশনপ্রযোজ্য নয়
থার্মাল সীমা70 °C
প্যাকেজশিল্ড ফরম্যাট
নোট / ভেরিয়েন্টArduino Uno-এর সাথে সামঞ্জস্যপূর্ণ

  • ক্ষতি এড়াতে LCD 5 V-এ চালিত হয়েছে তা নিশ্চিত করুন।
  • প্রয়োজনে কিপ্যাডের জন্য সঠিক পুল-আপ রোধ ব্যবহার করুন।
  • একাধিক ট্রিগার এড়াতে কোডে কী প্রেস ডিবাউন্স করুন।
  • অতিরিক্ত গরম এড়াতে কারেন্ট সীমার দিকে নজর রাখুন।
  • সার্কিট চালু করার আগে সংযোগ পরীক্ষা করুন।

ওয়্যারিং নির্দেশাবলী

1602 LCD কিপ্যাড শিল্ড ওয়্যার করতে, এটি সরাসরি Arduino বোর্ডে প্লাগ করুন। শিল্ডটি Arduino Uno-এর পিন কনফিগারেশনের সাথে সারিবদ্ধ হওয়ার জন্য ডিজাইন করা হয়েছে। পিনগুলি নিরাপদে সংযুক্ত রয়েছে তা নিশ্চিত করুন।

কিপ্যাড বোতামগুলি অ্যানালগ ইনপুট পিন A0-এর সাথে সংযুক্ত। LCD ডেটা লাইনগুলি ব্যবহৃত লাইব্রেরি দ্বারা অভ্যন্তরীণভাবে পরিচালিত হয়, তাই আপনাকে সেগুলি আলাদাভাবে ওয়্যার করতে হবে না। শিল্ডটি ব্যাকলাইট এবং অন্যান্য কার্যকারিতা নিয়ন্ত্রণের জন্য কয়েকটি ডিজিটাল পিনও ব্যবহার করে, যা লাইব্রেরিতে পূর্বনির্ধারিত। আপনি যদি লাইব্রেরি ডকুমেন্টেশন অনুসরণ করেন, আপনি দেখতে পাবেন যে এটি সাধারণত এই সংযোগগুলি স্বয়ংক্রিয়ভাবে পরিচালনা করে।

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

কোডে, আমরা প্রথমে LCD নিয়ন্ত্রণের জন্য প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করি:

#include <LCD4Bit_mod.h>

এই লাইব্রেরিটি 1602 LCD-এর সাথে যোগাযোগ সহজতর করে। তারপর আমরা নির্দিষ্ট লাইনের সংখ্যা সহ LCD অবজেক্টের একটি ইনস্ট্যান্স তৈরি করি।

এরপর, আমরা setup() ফাংশনে LCD আরম্ভ করি:

lcd.init();

এই লাইনটি LCD ব্যবহারের জন্য প্রস্তুত করে। আরম্ভ করার পরে, আমরা lcd.printIn() ফাংশন ব্যবহার করে একটি পরীক্ষা বার্তা প্রদর্শন করতে পারি।

মূল লুপে, আমরা কী প্রেস শনাক্ত করতে অ্যানালগ ইনপুট পড়ি:

adc_key_in = analogRead(0);

এই লাইনটি কিপ্যাড থেকে মান পড়ে। মানটি get_key() ফাংশন ব্যবহার করে কোন কী চাপা হয়েছে তা নির্ধারণ করতে সাহায্য করে যা ADC মানকে একটি কী নম্বরে রূপান্তর করে।

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

আপনি যখন কোডটি চালান, বোতাম চাপলে LCD-তে চাপা কী-এর সাথে সম্পর্কিত বার্তা প্রদর্শিত হবে। উদাহরণস্বরূপ, ডান কী চাপলে ডিসপ্লেতে "Right Key OK" দেখাবে (ভিডিওতে 05:30-এ)। যদি কী শনাক্তকরণ সঠিকভাবে কাজ না করে, তাহলে ওয়্যারিং পরীক্ষা করুন এবং আপনার Arduino IDE-তে সঠিক লাইব্রেরিগুলি অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন।

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

  • 00:00 - ভূমিকা
  • 03:00 - কোড ওভারভিউ
  • 05:30 - কী প্রেস প্রদর্শন
18-Source code for a 602 LCD keypad shield for Arduino
ভাষা: C++
// Example use of LCD4Bit_mod library
// Downloaded from https://github.com/douggilliland/lb-Arduino-Code/tree/master/libraries/LCD4Bit_mod
// October 1, 2017. This example will work with a 1602 LCD keypad shield.
// Code used for a YouTube video for the Robojax channel
// Watch the video https://youtu.be/naSSiS_9rEw


#include <LCD4Bit_mod.h> 
// Create an object to control an LCD.  
// Number of lines in display = 1
LCD4Bit_mod lcd = LCD4Bit_mod(2); 

// Key messages
char msgs[5][15] = {"Right Key OK ", 
                    "Up Key OK    ", 
                    "Down Key OK  ", 
                    "Left Key OK  ", 
                    "Select Key OK" };
int  adc_key_val[5] ={30, 150, 360, 535, 760 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;

void setup() { 
  pinMode(13, OUTPUT);  // We'll use the debug LED to output a heartbeat

  lcd.init();
  // Optionally, now set up our application-specific display settings, overriding whatever the LCD did in lcd.init()
  // lcd.commandWrite(0x0F);// Cursor on, display on, blink on.  (Nasty!)
   lcd.clear();
  lcd.printIn("Robojax.com Testing");
    
}

void loop() {

	adc_key_in = analogRead(0);    // Read the value from the sensor  
  digitalWrite(13, HIGH);  
  key = get_key(adc_key_in);		        // Convert into key press
	
	if (key != oldkey)				    // If keypress is detected
	{
    delay(50);		// Wait for debounce time
		adc_key_in = analogRead(0);    // Read the value from the sensor  
    key = get_key(adc_key_in);		        // Convert into key press
    if (key != oldkey)				
    {			
      oldkey = key;
      if (key >=0){
      lcd.cursorTo(2, 0);  // Line = 2, x = 0
  			lcd.printIn(msgs[key]);
      }
    }
  }
  
  //delay(1000);
  digitalWrite(13, LOW);
  

 
  
  
}

// Convert ADC value to key number
int get_key(unsigned int input)
{
	int k;
    
	for (k = 0; k < NUM_KEYS; k++)
	{
		if (input < adc_key_val[k])
		{
           
    return k;
        }
	}
    
    if (k >= NUM_KEYS)
        k = -1;     // No valid key pressed
    
    return k;
}

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

ফাইলসমূহ📁

কোনো ফাইল উপলব্ধ নেই।