এই টিউটোরিয়ালে, আমরা ESP32 মাইক্রোকন্ট্রোলারের সাথে LCD1602 এবং LCD2004 কীভাবে ব্যবহার করতে হয় তা অন্বেষণ করব। এই LCD স্ক্রিনগুলো আমাদেরকে টেক্সট এবং অন্যান্য তথ্য কার্যকরভাবে প্রদর্শন করতে দেয়, যা আমাদের প্রকল্পগুলোকে ভিজ্যুয়াল ফিডব্যাক দিয়ে উন্নত করে। আমরা কনট্রাস্ট কীভাবে সামঞ্জস্য করতে হয় তাও শিখব যাতে পাঠযোগ্যতা নিশ্চিত হয়।
ESP32, যা SunFounder ESP32 IoT লার্নিং কিটের অংশ, এতে বিল্ট-ইন Wi-Fi এবং ব্লুটুথ ক্ষমতা রয়েছে, যা এটিকে বিভিন্ন IoT অ্যাপ্লিকেশনের জন্য একটি শক্তিশালী টুল করে তোলে। LCD-কে ESP32-এর সাথে সংযুক্ত করে, আমরা সহজেই আমাদের কোড থেকে বার্তা বা ডেটা আউটপুট প্রদর্শন করতে পারি, যা আমাদের প্রকল্পগুলোকে আরও ইন্টারঅ্যাকটিভ এবং ব্যবহারকারী-বান্ধব করে তোলে (ভিডিওতে 00:30-এ)।
হার্ডওয়্যার ব্যাখ্যা
আমরা যে প্রধান উপাদানগুলো ব্যবহার করব তার মধ্যে রয়েছে ESP32 মাইক্রোকন্ট্রোলার এবং LCD1602 বা LCD2004 ডিসপ্লে মডিউল। ESP32 আমাদের প্রকল্পের মস্তিষ্ক হিসেবে কাজ করবে, ইনপুট প্রসেস করবে এবং আউটপুট নিয়ন্ত্রণ করবে, যার মধ্যে LCD ডিসপ্লেও রয়েছে।
LCD মডিউলটি I2C-এর মাধ্যমে যোগাযোগ করে, যা শুধুমাত্র দুটি ডেটা পিন (SDA এবং SCL) ব্যবহার করে যোগাযোগের জন্য ওয়্যারিং সহজ করে, সাথে পাওয়ার এবং গ্রাউন্ড সংযোগ থাকে। এই সেটআপটি একাধিক পিন সংযোগের জটিলতা উল্লেখযোগ্যভাবে হ্রাস করে, যা একটি পরিষ্কার এবং আরও পরিচালনাযোগ্য সার্কিট তৈরি করতে দেয়।
ডেটাশিট বিবরণ
প্রস্তুতকারক
SunFounder
পার্ট নম্বর
LCD1602
লজিক/আইও ভোল্টেজ
5 V
সাপ্লাই ভোল্টেজ
5 V
ডিসপ্লে সাইজ
16 x 2 অক্ষর
ব্যাকলাইট
হ্যাঁ
ইন্টারফেস
I2C
মাত্রা
80 x 36 মিমি
নোট / ভেরিয়েন্ট
সাধারণত I2C ঠিকানা 0x27-এর সাথে ব্যবহৃত হয়
ক্ষতি রোধ করতে সঠিক ভোল্টেজ সাপ্লাই (5 V) নিশ্চিত করুন।
I2C লাইনে হস্তক্ষেপ কমাতে ছোট তার ব্যবহার করুন।
সর্বোত্তম কনট্রাস্ট দৃশ্যমানতার জন্য পটেনশিওমিটার সামঞ্জস্য করুন।
ডিসপ্লে শুরু না হলে I2C ঠিকানা পরীক্ষা করুন (সাধারণ ঠিকানা: 0x27, 0x3F)।
ওভারল্যাপ এড়াতে বার্তা আপডেট করার আগে ডিসপ্লে পরিষ্কার করুন।
ওয়্যারিং নির্দেশাবলী
ESP32-11_LCD-ওয়্যারিং-স্কিম্যাটিক
ESP32-11_LCD-wiring
LCD1602-কে ESP32-এর সাথে ওয়্যার করতে, প্রথমে LCD-এর গ্রাউন্ড পিনটি ESP32-এর গ্রাউন্ড পিনের সাথে সংযুক্ত করুন। তারপর, LCD-এর VCC পিনটি ESP32-এর 5V আউটপুটের সাথে সংযুক্ত করুন। I2C যোগাযোগের জন্য, LCD-এর SDA পিনটি ESP32-এর পিন 21-এর সাথে সংযুক্ত করুন এবং LCD-এর SCL পিনটি ESP32-এর পিন 22-এর সাথে সংযুক্ত করুন। কোনো যোগাযোগ সমস্যা এড়াতে সংযোগগুলো নিরাপদ কিনা তা নিশ্চিত করুন।
এটি লক্ষ্য করা গুরুত্বপূর্ণ যে ESP32 3.3V লজিক লেভেলে কাজ করে, তবে LCD1602 সঠিক অপারেশনের জন্য 5V প্রয়োজন। তাই, LCD-এর ক্ষতি এড়াতে সঠিক ভোল্টেজ সাপ্লাই ব্যবহার করছেন কিনা তা নিশ্চিত করুন। আপনি যদি ভিন্ন LCD সাইজ ব্যবহার করেন, তাহলে I2C ঠিকানা এবং স্পেসিফিকেশন অনুযায়ী ওয়্যারিং সামঞ্জস্য করুন।
কোড উদাহরণ ও ওয়াকথ্রু
কোডে, আমরা I2C যোগাযোগ এবং LCD-এর জন্য প্রয়োজনীয় লাইব্রেরিগুলো অন্তর্ভুক্ত করে শুরু করি। আমরা I2C ঠিকানা 0x27 ব্যবহার করে LCD-এর একটি ইনস্ট্যান্স তৈরি করি এবং উল্লেখ করি যে এতে 16টি কলাম এবং 2টি সারি রয়েছে।
#include
#include
LiquidCrystal_I2C lcd(0x27,16,2); // 16 অক্ষর এবং 2 লাইন ডিসপ্লের জন্য LCD ঠিকানা 0x27 সেট করুন
এই সেটআপটি আমাদের সহজেই LCD নিয়ন্ত্রণ করতে দেয়। setup() ফাংশনে, আমরা LCD শুরু করি এবং ব্যাকলাইট চালু করি, তারপর একটি স্বাগত বার্তা প্রিন্ট করি।
void setup()
{
lcd.init(); // LCD শুরু করুন
lcd.backlight(); // LCD ব্যাকলাইট চালু করে।
lcd.print("Hello, world!"); // LCD-এ একটি বার্তা প্রিন্ট করুন।
delay(3000);
}
loop() ফাংশনে, আমরা ডিসপ্লে পরিষ্কার করে, কার্সর অবস্থান সেট করে এবং বর্তমান গণনা মান প্রিন্ট করে ক্রমাগত আপডেট করি। এটি প্রদর্শন করে যে LCD কীভাবে গতিশীলভাবে পরিবর্তনশীল তথ্য দেখাতে পারে।
void loop()
{
lcd.clear();
lcd.setCursor(0, 0); // কার্সর অবস্থান প্রথম সারি এবং প্রথম কলামে সেট করে (0, 0)।
lcd.print("COUNT: ");
lcd.print(count); // গণনা ভেরিয়েবলের বর্তমান মান প্রিন্ট করে।
delay(1000);
count++; // কাউন্টার 1 দ্বারা বৃদ্ধি করে।
}
সম্পূর্ণ কোডটি নিবন্ধের নীচে লোড হবে, যেখানে আপনি সম্পূর্ণ বাস্তবায়ন এবং আপনার প্রকল্পের জন্য যোগ করা যেকোনো অতিরিক্ত কার্যকারিতা দেখতে পাবেন।
প্রদর্শন / কী আশা করবেন
সবকিছু সংযুক্ত হয়ে গেলে এবং কোড আপলোড করা হলে, LCD-তে "Hello, world!" 3 সেকেন্ডের জন্য প্রদর্শিত হওয়া উচিত, তারপর একটি কাউন্টার শুরু হবে যা প্রতি সেকেন্ডে বৃদ্ধি পাবে। আপনি পটেনশিওমিটার ব্যবহার করে কনট্রাস্ট সামঞ্জস্য করতে পারেন যাতে টেক্সটটি সহজে পড়া যায় (ভিডিওতে 08:45-এ)।
যদি কোনো সমস্যা হয়, তাহলে ওয়্যারিং সংযোগগুলো পরীক্ষা করুন এবং সঠিক I2C ঠিকানা ব্যবহার করা হচ্ছে কিনা তা নিশ্চিত করুন। একটি সাধারণ ভুল হল LCD-এর I2C ঠিকানা কোডে সেট করা ঠিকানার সাথে মেলানো না, যা ডিসপ্লেকে সঠিকভাবে কাজ করতে বাধা দিতে পারে।
ভিডিও টাইমস্ট্যাম্প
00:00 শুরু
1:47 LCD-এর পরিচিতি
3:26 ডকুমেন্টেশন পেজ
5:06 ESP32-এর সাথে LCD কীভাবে ওয়্যার করবেন
9:07 Arduino-তে ESP32 বোর্ড এবং COMP পোর্ট নির্বাচন
810-ESP32 Tutorial 11/55- Arduino code for LCD using ESP32
ভাষা: C++
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//SDA->21,SCL->22
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
int count = 0;
void setup()
{
lcd.init();// initialize the lcd
lcd.backlight(); // Turns on the LCD backlight.
lcd.print("Hello, world!"); // Print a message to the LCD.
delay(3000);
}
void loop()
{
lcd.clear();
lcd.setCursor(0, 0); // Sets the cursor position to the first row and first column (0, 0).
lcd.print("COUNT: ");
lcd.print(count); // Prints the current value of the count variable.
delay(1000);
count++; // Increments the counter by 1.
}
প্রকাশনা: আমাজন অ্যাসোসিয়েট হিসেবে, আমরা যোগ্য ক্রয়ের মাধ্যমে উপার্জন করি। এর মানে হল যে আপনি যদি একটি লিঙ্কে ক্লিক করেন এবং অতিরিক্ত খরচ ছাড়াই একটি ক্রয় করেন, তবে আমরা একটি ছোট কমিশন পেতে পারি।