এই প্রজেক্টে আমরা আরডুইনো UNO এর সাথে লিকুইড ক্রিস্টাল ডিসপ্লে (LCD) সংযোগ করে ডিসপ্লেতে লেখা প্রদর্শন করবো।
প্রয়োজনীয় জিনিস-পত্র
- আরডুইনো ইউ.এন.ও.
- আরডুইনো IDE
- ইউ.এস.বি. A to B ক্যাবল
- ব্রেডবোর্ড
- LCD
- 220Ω রেজিস্টর
- 10kΩ ভেরিয়েবল রেজিস্টর (103)
- ব্রেডবোর্ড জাম্পার (মেল টু মেল)
আমরা আরডুইনোর লিকুইড ক্রিস্টাল লাইব্রেরী ব্যবহার করে এল.সি.ডি. রান করবো। লিকুইড ক্রিস্টাল লাইব্রেরী Hitachi HD44780 কন্ট্রোলারের তৈরি ডিসপ্লে সাপোর্ট করে। এই ডিসপ্লেগুলোতে 16 টি পিন থাকে।
এর সাহায্যে 4-bit এবং 8-bit দুই পদ্ধতিতেই ডাটা ট্রান্সফার করা যায়।
সার্কিট ডায়াগ্রাম
- LCD VSS পিন আরডুইনোর গ্রাউন্ডে
- LCD VDD পিন আরডুইনোর 5V পিনে
- LCD V0/VEE পিন ভেরিয়েবল রেজিস্টরের মাঝের প্রান্তে
- LCD RS পিন আরডুইনোর ডিজিটাল পিন 12 তে
- LCD RW পিন আরডুইনোর গ্রাউন্ডে
- LCD E পিন আরডুইনোর ডিজিটাল পিন 11 তে
- LCD D4 পিন আরডুইনোর ডিজিটাল পিন 5 তে
- LCD D5 পিন আরডুইনোর ডিজিটাল পিন 4 তে
- LCD D6 পিন আরডুইনোর ডিজিটাল পিন 3 তে
- LCD D7 পিন আরডুইনোর ডিজিটাল পিন 2 তে
- LCD LED+/A পিন সিরিজ 220r রেজিস্টর হয়ে 5V পিনে
- LCD LED-/K পিন আরডুইনোর গ্রাউন্ডে
প্রোগ্রাম 1
/* * Program 1 * Arduino LCD * www.eeebangla.com * https://www.youtube.com/channel/UCYHfZ8A796IzaOIdLJowwMQ?sub_confirmation=1 */ #include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() { lcd.begin(16, 2); lcd.print("***EEE Bangla***"); } void loop() { lcd.setCursor(0, 1); lcd.print(millis() / 1000); }
ডায়াগ্রাম অনুসারে প্রোগ্রাম 1 রান করালে LCD এর প্রথম লাইনে ***EEE Bangla*** এবং দ্বিতীয় লাইনে সময় (সেকেন্ড ) দেখাবে। LCD তে লেখা ঠিকমত না আসলে 10kΩ ভেরিয়েবল রেজিস্টর ঘুরিয়ে display contrast এডজাস্ট করে নিতে হবে
এই প্রোগ্রামে #include <LiquidCrystal.h> এ LiquidCrystal লাইব্রেরী অন্তর্ভুক্ত করা হয়েছে। LiquidCrystal lcd() ফাংশনে আরডুইনোর সাথে LCD এর কমিউনিকেশন পিন দেখিয়ে দেয়া হয়েছে। lcd.begin() ফাংশনে LCD এর কলাম এবং সারি সংখ্যা বলে দিতে হবে। lcd.setCursor() ফাংশনে LCD যে স্থান থেকে ডিজিট দেখানো শুরু করবে তা বলে দিতে হবে। lcd.print() ফাংশনে LCD তে আমরা যে লেখা প্রিন্ট করবো সেটা দিবো।
প্রোগ্রাম 2
/* * Program 2 * Arduino LCD * www.eeebangla.com * https://www.youtube.com/channel/UCYHfZ8A796IzaOIdLJowwMQ?sub_confirmation=1 */ #include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() { lcd.begin(16, 2); } void loop() { lcd.setCursor(0, 0); lcd.print("***EEE Bangla"); lcd.blink(); delay(3000); }
প্রোগ্রাম 2 রান করলে লেখা শেষে কার্সর দেখাবে।
প্রোগ্রাম 3
/* * Program 3 * Arduino LCD * www.eeebangla.com * https://www.youtube.com/channel/UCYHfZ8A796IzaOIdLJowwMQ?sub_confirmation=1 */ #include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() { lcd.begin(16, 2); lcd.print("***EEE Bangla***"); } void loop() { lcd.noDisplay(); delay(1000); lcd.display(); delay(1000); }
প্রোগ্রাম 3 রান করলে LCD এক সেকেন্ড পর অফ হবে আবার এক সেকেন্ড পর অন হবে। তবে ব্যাকলাইট চালু থাকবে।
প্রোগ্রাম 4
/* * Program 4 * Arduino LCD * www.eeebangla.com * https://www.youtube.com/channel/UCYHfZ8A796IzaOIdLJowwMQ?sub_confirmation=1 */ #include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); char str[] = "www.eeebangla.com"; int cLength = strlen(str); int tLength=cLength+16; void setup() { lcd.begin(16, 2); lcd.print(str); delay(1000); } void loop() { for (int positionCounter = 0; positionCounter < cLength; positionCounter++) { lcd.scrollDisplayLeft(); delay(150); } for (int positionCounter = 0; positionCounter < tLength; positionCounter++) { lcd.scrollDisplayRight(); delay(150); } for (int positionCounter = 0; positionCounter < 16; positionCounter++) { lcd.scrollDisplayLeft(); delay(150); } delay(1000); }
প্রোগ্রাম 4 রান করলে ডিসপ্লের লেখা ডান থেকে বাম এবং বাম থেকে ডানে স্ক্রোল করতে থাকবে।
প্রোগ্রাম 5
/* * Program 5 * Arduino LCD * www.eeebangla.com * https://www.youtube.com/channel/UCYHfZ8A796IzaOIdLJowwMQ?sub_confirmation=1 */ #include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() { lcd.begin(16, 2); Serial.begin(9600); } void loop() { if (Serial.available()) { delay(100); lcd.clear(); while (Serial.available() > 0) { lcd.write(Serial.read()); } } }
প্রোগ্রাম 5 রান করে আরডুইনো IDE সিরিয়াল মনিটরে যা লিখে পাঠানো হবে LCD তে তাই দেখাবে।
প্রোগ্রাম 6
/* * Program 6 * Arduino LCD * www.eeebangla.com * https://www.youtube.com/channel/UCYHfZ8A796IzaOIdLJowwMQ?sub_confirmation=1 */ #include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() { lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("***EEE Bangla***"); } void loop() { for (int i = 'A'; i <= 'Z'; i++) { lcd.setCursor(7, 1); lcd.write(i); delay(1000); } }
প্রোগ্রাম 6 রান করলে A থেকে Z পর্যন্ত একটার পর একটা প্রিন্ট করবে।
মজার-মজার ইলেকট্রনিক্স প্রজেক্ট পেতে এখনই আমাদের ইউটিউব চ্যানেল সাবস্ক্রাইব করুন: https://www.youtube.com/channel/UCYHfZ8A796IzaOIdLJowwMQ?sub_confirmation=1
ভিডিও লিংক: https://youtu.be/Dn8bQ63y1wk