<![CDATA[আমরা যারা সাইন্স প্রোজেক্ট নিয়ে কাজ করেছি কিংবা এখনো করি, সবাই কমবেশি মাইক্রোকন্ট্রোলারের সাথে পরিচিত। এই মাইক্রোকন্ট্রোলার নিয়ে প্রোজেক্ট তৈরি হলে সবচেয়ে বেশি আনন্দ দেয় তার সাথে সংযোগ করা ডিসপ্লেটি। কারণ, এই ডিসপ্লেটিতেই অনেক কিছু প্রিন্ট করে দেখতে পারি। যেমন কোন ধরণের টেক্সট, সেন্সরের ভ্যালু অথবা বানাতে পারি সময় দেখানোর জন্য ঘড়ি। এই ডিসপ্লের মধ্যে সবচেয়ে বেশি ব্যবহার হয় LCD Display (16X2) নামক ডিসপ্লেটি। যার মধ্যে রয়েছে ১৬টি কলাম (Column) এবং ২টি সারি (Row) ।
ডিসপ্লেতে রয়েছে মোট ১৬ টি পিন। এই ১৬টা পিনই ব্যবহার করে কার্যকর করতে হবে। দুইভাবে অপারেশন করা যায়, ৮বিট এবং ৪বিট। অধিকাংশ সময় ৪বিট ব্যবহার করে থাকি সবাই। ৪বিট অপারেশনের জন্য কমপক্ষে ৬টা পিন ব্যবহার করতে হবে। পিনগুলো হলো RS, E, D4, D5, D6 এবং D7 যা মাইক্রোকন্ট্রোলারের সাথে সংযোগ হবে। কিন্তু যখন একটা প্রোজেক্ট তৈরি করতে গিয়ে মাইক্রোকন্ট্রোলার পিন সংকট অনুভব করি, ঠিক তখনই চলে আসতে পারি আই.টু.সি. তে (I2C)। এর ফলে ফেরত পাবো আরো ৪টা ডাটা পিন। ব্যবহার করতে পারবো অন্য কাজে। মাত্র ২টা পিন ব্যবহার করেই চালানো যাবে ডিসপ্লে।
এই আইটুসি ডিসপ্লে তৈরি করতে ব্যবহার করতে হবে I2C LCD Adapter। এটিতে ৪টা পিন রয়েছে GND VCC SDA SCL. আজ দেখবো, ESP8266 NodeMCU V2 এর সাথে I2C ডিসপ্লে ব্যবহার করে ডিসপ্লেতে প্রিন্ট করার প্রক্রিয়া।
অন্যদিকে আরেকটি ডিসপ্লে রয়েছে যার নাম LCD Display (20X4). এর মধ্যে রয়েছে ২০টি কলাম (Column) এবং ৪টি সারি (Row) যা LCD Display (16X2) এর চেয়ে অনেক বেশি কিছু ডিসপ্লেতে প্রিন্ট করা যাবে। এই দুইটা ডিসপ্লের সংযোগ প্রক্রিয়া একই। ফলে আপনি যে কোন একটি সম্পর্কে ধারণা পেলে সহজেই অন্যটি নিয়েও কাজ করতে পারবেন।
প্রয়োজনীয় কম্পোনেন্টঃ
কম্পোনেন্টের তালিকা নিচে প্রদান করা হলো। ডিসপ্লের ক্ষেত্রে যে কোন একটি দিয়ে এক্সপেরিমেন্ট করা যাবে। ১ অথবা ২।
ক্রমিক নং | কম্পোনেন্টের নাম | মডেল | পরিমাণ | লিংক |
১ | LCD Display (16X2) | DIS-00003 | ১টি | কম্পোনেন্ট লিংক |
২ | LCD Display (20X4) | DIS-00014 | ১টি | কম্পোনেন্ট লিংক |
৩ | I2C LCD Adapter | MOD-00101 | ১টি | কম্পোনেন্ট লিংক |
৪ | ESP8266 NodeMCU V2 Development Board with CP2102 | WIR-00074 | ১টি | কম্পোনেন্ট লিংক |
৫ | Breadboard (830 Point) | MIS-00002 | ১টি | কম্পোনেন্ট লিংক |
৬ | Male To Female Jumper Wire – Single | C&C-00071 | ৪টি | কম্পোনেন্ট লিংক |
৭ | Micro USB Data Cable | C&C-00259 | ১টি | কম্পোনেন্ট লিংক |
এখানে একটি কথা বলে রাখা ভালো, কখনো যদি উপরের কম্পোনেন্টের লিংকগুলো সমস্যা করে তাহলে চিন্তিত না হয়ে, মডেল নাম্বার দিয়ে ওয়েবসাইটে সার্চ করলেও পাওয়া যাবে। ওয়েবসাইট লিংক https://www.techshopbd.com/
সার্কিট কানেকশনঃ
দুই ধরনের ডিসপ্লে ব্যবহার করে সার্কিট কানেকশন দেখানো হয়েছে।
ESP8266 NodeMCU V2 Development Board with CP2102 সাথে LCD Display (16X2) কানেকশনঃ
ESP8266 NodeMCU V2 Development Board with CP2102 সাথে LCD Display (20X4) কানেকশনঃ
কোডঃ I2C Scanner
#include <Wire.h> void setup() { Serial.begin (115200); Serial.println (); Serial.println ("I2C scanner. Scanning ..."); byte count = 0; Wire.begin(); for (byte i = 8; i < 120; i++) { Wire.beginTransmission (i); if (Wire.endTransmission () == 0) { Serial.print ("Found address: "); Serial.print (i, DEC); Serial.print (" (0x"); Serial.print (i, HEX); Serial.println (")"); count++; delay (1); // maybe unneeded? } // end of good response } // end of for loop Serial.println ("Done."); Serial.print ("Found "); Serial.print (count, DEC); Serial.println (" device(s)."); } // end of setup void loop(){ }
কানেকশন সম্পন্ন করে নিচের দেওয়া প্রোগ্রামটি আপলোড করতে হবে। সঠিকভাবে আপলোড হলে সিরিয়াল মনিটর ওপেন করবো।
সিরিয়াল মনিটরে একটি এড্রেস পাবো, যেমনটি এখানে দেখাচ্ছে 0x27. এই এড্রেসটি ডিসপ্লের কোডের একটা অংশে দিয়ে আপলোড দিবো
লাইব্রেরীঃ
LiquidCrystal_I2C লাইব্রেরী কোড আপলোড দেওয়ার পূর্বেই সংযুক্ত করে নিবো।
কোডঃ I2C LCD Display 16×2
স্ক্যান করার পর এড্রেস যেটি পাবো, সেটিই নিচের কোডে দিয়ে আপলোড দিতে হবে।
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16,2); void setup() { lcd.begin(16,2); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print(" I2C LCD 16X2 "); lcd.setCursor(0, 1); lcd.print(" techshopbd.com "); } void loop() { // Nothing }
কোডঃ I2C LCD Display 20×4
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 20,4); void setup() { lcd.begin(20,4); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print(" ESP8266 NodeMCU V2 "); lcd.setCursor(0, 1); lcd.print(" I2C LCD 20X4 "); lcd.setCursor(0, 2); lcd.print(" 4 Rows, 20 Columns "); lcd.setCursor(0, 3); lcd.print(" www.techshopbd.com "); } void loop() { // Nothing }
আউটপুটঃ
যদি ব্রেডবোর্ড ছাড়া ব্যবহার করতে চাই, তাহলে ডিসপ্লের সাথে I2C LCD Adapter টি নিচের মত করে সোল্ডার করে নিবো।
]]>
good
ধন্যবাদ।
Good job
ধন্যবাদ আপনাকে।