আরডুইনোর LCD.h লাইব্রেরির lcd.print() ফাংশন ব্যবহার করে ইংরেজি শব্দ আর বাক্য আমরা অহরহ লিখছি। কিন্তু, বাংলা লিখতে হলে কী করব? বাংলা লেখার তো কোনো ফাংশন নেই! তাহলে উপায়? তবে কি এলসিডিতে বাংলা লেখা যায় না? হ্যাঁ অবশ্যই লেখা যায়। এই টিউটোরিয়ালে আমরা দেখব, কিভাবে সাধারণ একটি 16×2 LCD Display ব্যবহার করে আমরা বাংলা লিখতে পারি। আজকে আমরা ‘বাংলাদেশ’ শব্দটি একটি 16×2 এলসিডিতে লিখব। প্রিয় এই দেশের নামের নিচে থাকবে একটি অ্যানিমেশন।
এই টিউটোরিয়াল থেকে আমরা শিখবঃ
- কিভাবে এলসিডিতে custom character তৈরী করতে হয়।
- Custom character generator এর মাধ্যমে কিভাবে বাংলা বর্ণ তৈরী করতে হয়।
- কিভাবে, কোন ফাংশনের মাধ্যমে বাংলা লেখা এলসিডিতে প্রিন্ট করতে হয়।
- কিভাবে এলসিডিতে অ্যানিমেশন দেখানো যায়।
প্রয়োজনীয় যন্ত্রপাতি | পরিমাণ | লিংক |
Arduino UNO R3/Arduino Mega 2560 | 1 | Link |
16×2 LCD with header | 1 | Link |
Male to male jumpers | 17 | Link |
Male to female jumpers | 4 | Link |
Variable POT 103 | 1 | Link |
Breadboard (830 points) | 1 | Link |
সার্কিট কানেকশনঃ
কানেকশন চার্টঃ
Arduino Mega | LCD |
GND | VSS,K,1st pin of variable POT |
5V | VDD,A,2nd pin of variable POT |
V0, 3rd pin of variable POT | |
GND | RW |
12 | RS |
11 | E |
5,4,3,2 | D4,D5,D6,D7 |
প্রোগ্রামঃ
আমাদের প্রোগ্রামে এলসিডির কাস্টম ক্যারেক্টার তৈরী করতে আমরা ব্যবহার করেছি LCD custom character generator ।
‘বাংলাদেশ’ শব্দটি লেখার জন্য LCD custom character generator এর মাধ্যমে আমরা মোট ৬টি কাস্টম ক্যারেক্টার তৈরী করেছি। সেগুলো হল- ‘বা’, ‘ং’, ‘ল’,’ ‘া’, ‘দে’ এবং ‘শ’। উপরের ছবিটিতে দেখানো হয়েছে কিভাবে ‘বা’ ক্যারেক্টারটি এলসিডি কাস্টম ক্যারেক্টার জেনারেটর দিয়ে তৈরী করা যায়। একইভাবে আমরা ক্যারেক্টারগুলোও তৈরী করেছি। দেশের নামের নিচের অ্যানিমেশনের জন্য আমরা দুটি Heart shaped custom character তৈরী করেছি। এই ক্যারেকটার দুটি ২০০ মিলিসেকেন্ড পরপর এলসিডিতে দেখালে একটি beating heart effect তৈরী হবে।
এবার নিচের প্রোগ্রামটি আরডুইনোতে আপলোড করুন।
#include <LiquidCrystal.h> // initialize the library by associating any needed LCD interface pin // with the arduino pin number it is connected to const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // make some custom characters: int i,j; byte ba[8] = { B11111, B01101, B10101, B10101, B01101, B00101, B00000, B00000 }; byte ng[8] = { B00100, B01010, B01010, B00100, B01000, B00100, B00010, B00000 }; byte la[8] = { B11111, B00001, B00001, B00001, B01011, B10101, B00000, B00000 }; byte akar[8] = { B10011, B01010, B00110, B00010, B00010, B00010, B00000, B00000 }; byte de[8] = { B11111, B10100, B10100, B10111, B10001, B10001, B00000, B00000 }; byte sh[8] = { B10011, B01101, B01101, B10101, B00001, B00001, B00000, B00000 }; byte love[8] = { B01010, B10101, B10001, B10001, B01010, B00100, B00000, B00000 }; byte love2[8] = { B00000, B01010, B11111, B11111, B01110, B00100, B00000, B00000 }; void setup() { // initialize LCD and set up the number of columns and rows: lcd.begin(16, 2); lcd.clear(); // create a new character lcd.createChar(1, ba); // create a new character lcd.createChar(2, ng); // create a new character lcd.createChar(3, la); // create a new character lcd.createChar(4, de); // create a new character lcd.createChar(5, sh); lcd.createChar(6, akar); lcd.createChar(7, love); lcd.createChar(0, love2); } void loop() { lcd.setCursor(5, 0); lcd.write(1); lcd.setCursor(6, 0); lcd.write(2); lcd.setCursor(7, 0); lcd.write(3); lcd.setCursor(8, 0); lcd.write(6); lcd.setCursor(9, 0); lcd.write(4); lcd.setCursor(10, 0); lcd.write(5); for(i=0;i<16;i++) { lcd.setCursor(i, 1); lcd.write(7); } delay(200); for(j=0;j<16;j++) { lcd.setCursor(j, 1); lcd.write(byte(0)); } delay(200); }
বিশেষভাবে লক্ষ্য রাখা প্রয়োজন যে, lcd.createChar() ফাংশনটি ব্যবহার করে একসাথে ৮ টির বেশি কাস্টম ক্যারেক্টার এলসিডিতে দেখানো যাবে না।
কোডটি আপলোড করার পর আমাদের প্রিয় বাংলা ভাষাতেই আমাদের দেশের নামটি দেখা যাবে। নিচের ষোলোটি beating heart যেন ষোলো কোটি মানুষের হৃদয়েরই প্রতিচ্ছবি, তাই না?
এভাবে খুব সহজে আরডুইনো মাইক্রোকন্ট্রোলার ব্যবহার করে LCD Display তে বাংলা লিখা যাবে। আশাকরি আপনারাও এই টিউটোরিয়াল টি অনুসরণ করে এই আরডুইনো প্রজেক্টটি তৈরি করতে পারবেন। এরকম আরও টিউটোরিয়াল দেখতে এই লিংক ভিজিট করুন, ধন্যবাদ আমাদের সাথে যুক্ত থাকার জন্য।