এলসিডি কন্ট্রোল করার জন্য মাইক্রোকন্ট্রোলার ভেদে বিভিন্ন লাইব্রেরি ব্যবহার করা হয়। আজকে তেমন একটি আরডুইনো প্রজেক্ট নিয়ে আমাদের এই টিউটোরিয়াল। কোনও প্রজেক্ট এর ভিজুয়াল আউটপুট অর্থাৎ কোনও তথ্য দেখানোর জন্য বিভিন্ন রকমের ডিসপ্লে ব্যবহার করাহয়। যেমন, ডট ম্যাট্রিক্স, সেভেন সেগমেন্ট, এলসিডি, ওএলইডি ইত্যাদি। এগুলোর মধ্যে সবচেয়ে জনপ্রিয় হলো এই এলসিডি।
পরিচ্ছেদসমূহ
আজকের আরডুইনো প্রজেক্টঃ
আমরা আজকে শিখবো কি করে আরডুইনোর বিল্টইন এলসিডি লাইব্রেরি দিয়ে এলসিডি ডিসপ্লে ইন্টারফেস করতে হয়। এবং এই আরডুইনো ব্যবহার করে আমাদের পছন্দের লেখা কিভাবে ডিসপ্লে করা যায়।
প্রথমে এলসিডির সার্কিট করে ফেলি নিচের ডায়াগ্রাম অনুসারে –
অথবা এই ডায়াগ্রাম অনুসারে –
এলসিডি পিন পরিচিতিঃ
সাধারণত এলসিডিতে মার্ক করা থাকে কোনদিক থেকে গোনা শুরু করতে হবে এবং কোনটা কোন পিন।
- পিন ১কে গ্রাউন্ডের সাথে কানেক্ট করতে হয়, পিন ২ এ ৫ ভোল্ট দিতে হয়।
- ৩ নং পিনে ভোল্টেজ বাড়িয়ে কমিয়ে এলসিডির কনট্রাস্ট এডজাস্ট করা যায়। সাধারণত একটি পটেনশিওমিটার (ভেরিয়েবল রেজিস্টর) দিয়ে এ কাজটি করা হয়।
- ৪ নং পিনটি হচ্ছে রেজিস্টার সিলেক্ট (R/S) মোড, যেটায় ডেটা পাঠিয়ে বলা হয় যে এলসিডির ডিজিটাল ইনপুট পিনগুলোতে লেখা পাঠানো হবে না ইন্সট্রাকশন পাঠানো হবে। লেখা বলতে এলসিডিতে কি লেখা উঠবে সেটা, আর ইন্সট্রাকশন বলতে এলসিডির সব লেখা মুছে ফেলা, কিংবা যেই লেখা এখন পাঠানো হবে ওটা ২য় লাইনে দেখানো এরকম।
- পিন ৫ হচ্ছে R/W ( Read/Write) মোড। এই পিনে মাইক্রোকন্ট্রোলার দিয়ে ক্যারেকটার পাঠানো যায় অথবা ডিসপ্লেতে এই মুহূর্তে কি লেখা আছে তা পড়াযায়। এ পিনটি সাধারণত গ্রাউন্ড করে রাখা হয়। পিন ৬ হচ্ছে Clock Enable Pin, এই পিনের মাধ্যমে এলসিডি ডিসপ্লে ড্রাইভারের ক্লক চালু করা হয়, যেটার সাহায্যে ড্রাইভার বুঝতে পারে কখন ইন্সট্রাকশন এক্সিকিউট করতে হবে।
- D0 থেকে D7 পর্যন্ত ডিজিটাল পিনগুলোয় ক্যারেকটার (লেখা) ও ইন্সট্রাকশন পাঠানো হয়। যদি ৮ বিট মোড ব্যবহার করা হয়, তাহলে সবগুলো পিন ব্যবহার করতে হয়। তবে আরডুইনোতে বাই ডিফল্ট ৪ বিট মোড ব্যবহার করা হয়। তাই D4-D7 পিন আরডুইনোতে লাগালেই কাজ হয়।
- A পিনে এলসিডির ব্যাকলাইটের পাওয়ার দেয়া হয়। এখানে ৫ ভোল্ট দিলে লাইট পুড়ে যেতে পারে তাই ৩.৩ ভোল্ট অথবা একটা রেজিস্টর দিয়ে ৫ ভোল্টে কানেক্ট করতে হবে।
- K পিনে এলসিডির ব্যাকলাইটের পাওয়ার সোর্সের গ্রাউন্ড কানেক্ট করতে হবে। আরডুইনো থেকে ব্যাকলাইট পাওয়ার করা হলে এই পিনটি আরডুইনোর গ্রাউন্ড এর সাথে লাগিয়ে দিলেই চলবে।
এবার আরডুইনো আইডিই খুলে নিচের কোডটি লিখে ফেলি।
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("hello, world!"); lcd.setCursor (0,1); lcd.print ("AmaderElectronics"); }
সার্কিট এ লাগানো আরডুইনোতে এই কোডটি আপলোড করলে নিচের ছবির মত ফলাফল আসবে-
এলসিডি ও আরডুইনো কোড এক্সপ্লানেশনঃ
#include <LiquidCrystal.h>
এই লাইনটি দিয়ে এলসিডি ডিসপ্লে ইন্টারফেস করার জন্য লাইব্রেরি ইনক্লুড করলাম। আরডুইনোতে এই লাইব্রেরি বিল্ট ইন থাকে।
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
এই লাইন দিয়ে এলসিডির কোন পিন আরডুইনোর কোন পিনে লাগালাম সেটা ডিক্লেয়ার করতে হবে। পিনগুলো ডিক্লেয়ার করতে হবে এভাবে (R/S, E, D4, D5, D6, D7)। নামগুলোর জায়গায় যত নম্বর পিনে উক্ত এলসিডি পিন কানেক্ট সেটা লিখতে হবে।
void setup(){ lcd.begin(16, 2);
lcd.begin লিখে এলসিডিতে ডেটা পাঠানো শুরু করতে বলা হয়েছে এবং ব্রাকেটে প্রথমে এলসিডির কলামসংখ্যা ও মাঝখানে একটি কমা দিয়ে এলসিডির Row বা সারি সংখ্যা লিখতে হবে। এলসিডির নামের আগে 16×2 লেখা থাকলে বুঝতে হবে এলসিডিটিতে ১৬টা কলাম ও ২টি রো আছে। নিচে 16×2 ও 20×4 এলসিডি এর ছবি দেয়া হল-
lcd.setCursor(0, 0);
এই কমান্ড দিয়ে কারসরকে উপরের সারির প্রথম কলামে নেয়া হল। এরপর যা লেখা হবে সেটা কারসরের পজিশন থেকে শুরু হবে। ব্র্যাকেটের ভিতরে প্রথমে কলামের সংখ্যা ও শেষে সারি/রো এর সংখ্যা লিখতে হবে।
lcd.print(“hello, world!”);
এলসিডিতে লাস্ট ডিক্লেয়ার করা কারসর পজিশন থেকে ব্র্যাকেটের ভিতরে লেখা স্ট্রিং বা লেখা প্রিন্ট/ ডিসপ্লে করানো হলো।
lcd.setCursor (0,1);
কারসরের পজিশন ২য় সারির (কলাম ও সারির গণনা ০ থেকে শুরু হওয়ায় ১ লেখা হয়েছে) ১ম কলামে নেয়া হলো।
lcd.print (“AmaderElectronics”);
এই লাইনটির মাধ্যমে, লাস্ট কারসর পজিশনে উক্ত লেখা (“AmaderElectronics”) কে আরডুইনো দিয়ে এলসিডি ডিসপ্লেতে দৃশ্যমান করা হয়েছে। এখানে AamderElectronics এর স্থানে আপনার পছন্দের কিছু লিখতে পারেন।
এলসিডি নিয়ে কিছু ট্রাবলশুটিংঃ
- সমস্যা ১– এলসিডির লাইট জ্বলে, কিন্তু লেখা আসেনা অথবা লেখা সাদা ব্লকের জন্য বোঝা যায়না।
- সম্ভাব্য সমাধান- পটেনশিওমিটার (ভেরিয়েবল রেজিস্টর) দিয়ে কনট্রাস্ট এডজাস্ট করুন, এবং পটেনশিও মিটারের কানেকশন চেক করুন।
- সমস্যা ২- লেখা আসে, আলো জ্বলে না
- সম্ভাব্য সমাধান– ব্যাকলাইটের কানেকশন চেক করুন।
- সমস্যা ৩– লেখার বদলে &%? ইত্যাদি অদ্ভুত ক্যারেকটার আসছে
- সম্ভাব্য সমাধান– R/S, E ও ডিজিটাল পিনগুলোর কানেকশন চেক করুন
এছাড়াও LiquidCrystal লাইব্রেরির অন্যান্য ফাংশন সম্পর্কে জানার জন্য LiquidCrystal লাইব্রেরির উদাহরণগুলো দেখতে পারেন।
দেরি না করে আজই তৈরী করুন এই প্রজেক্ট আর আরডুইনো এবং এলসিডি দিয়ে নিজের পছন্দের নাম লিখুন খুব সহজেই।
আরডুইনো নিয়ে আরো টিউটোরিয়ালঃ
আগ্রহী পাঠকদের জন্য আমাদের ইলেকট্রনিক্সের আরডুইনো বিভাগ ঘুরে আসবার অনুরোধ রইলো। বিভিন্ন প্রজেক্ট টিউটোরিয়ালে ভরপুর লেখাগুলো পড়লে সবারই ভালো লাগবে আশা করছি।
এছাড়াও আমাদের ইলেকট্রনিক্সের মাইক্রোকন্ট্রোলার বিভাগটি দেখতে পারেন। বিভিন্ন প্রজেক্ট ও টিউটোরিয়াল অবশ্যই শিক্ষানুরাগীদের অনেক উপকারে আসবে।
আইপিএস ডিজিটাল ডিসপ্লেতে এরকম অনেক দোকান/প্রতিষ্ঠানের নাম লিখা থাকে,
সেক্ষেত্র ওরা কি Arduino দিয়েই কাজটা করে