মাইক্রোকন্ট্রোলার

আরডুইনো দিয়ে স্ক্রলিং এলইডি মেসেজ ডিসপ্লে (ভিডিও সহ)

সকল বন্ধুদের স্বাগতম আমার আরডুইনো দিয়ে স্ক্রলিং এলইডি মেসেজ ডিসপ্লে প্রজেক্টে। এটা খুবই মজার একটি প্রজেক্ট। এই প্রজেক্টে একটি ৮x৮ মেট্রিক্স ডিসপ্লেতে লেখা স্ক্রল হবে। প্রথমেই বলে নিই এই প্রজেক্ট করতে হলে অবশ্যই আগে মাইক্রোকন্ট্রোলার ও তার প্রোগ্রামিং সম্পর্কে ধারনা থাকতে হবে বিশেষ করে অরডুইনো। তাহলে শুরু করা যাক।

তৈরি করতে যা লাগবে

প্রথমে দেখে নিই এটি তৈরিতে কি কি লাগবে-

  • 8*8 Matrix display -1pc
  • Arduino Board - 1 pc
  • 1k resistor - 8 pcs
  • Some Jumper wire - (According to need)

উপকরণ গুলো দেখতে কেমন?

আসুন সুপ্রিয় পাঠক উপরে বর্ণিত উপকরণ গুলোর ছবি দেখে নিই।

৮x৮ ম্যাট্রিক্স ডিসপ্লে (8*8 Matrix display)

৮x৮ এলইডি ম্যাট্রিক্স ডিসপ্লে

 

আরডুইনো উনো (Arduino Uno)

আরডুইনো উনো ডেভেলপমেন্ট বোর্ড

 

১ কিলো ওহম মানের রেজিস্টর

১ কিলো ওহম মানের রেজিস্টর ও তার কালার কোড

জাম্পার ওয়্যার

জাম্পার ওয়্যার

সার্কিট ডায়াগ্রাম

এবার আমরা স্ক্রলিং এলইডি মেসেজ ডিসপ্লের সার্কিট ডায়াগ্রাম দেখে নেই।

আরডুইনো দিয়ে স্ক্রলিং এলইডি মেসেজ ডিসপ্লের সার্কিট ডায়াগ্রাম

উপরের চিত্রের মত কানেকশন করতে হবে। কানেকশন করার পর যে কাজটি করতে হবে তা হল প্রোগ্রামিং ও আরডুইনো তে কোড আপলোডিং।

নিচে সম্পূর্ণ কোড দেওয়া হল। এটি আরডুইনো তে আপলোড করে দিতে হবে। আসুন এখন কোড টি দেখি।

ম্যাট্রিক্স স্ক্রলিং ডিসপ্লের জন্য আরডুইনো কোড

char ground[8] = {8,9,10,11,12,13,A0,A1};

char ALPHA[] = {0,0,0,0,0,0,0,0,0,0,0,

60,102,96,96,96,102,60,0,0,0,

60,24,24,24,24,24,60,0,0,0,

124,102,102,124,120,108,102,0,0,0,

60,102,96,96,96,102,60,0,0,0,

102,102,102,102,102,102,60,0,0,0,

60,24,24,24,24,24,60,0,0,0,

126,24,24,24,24,24,24,0,0,0,

120,108,102,102,102,108,120,0,0,0,

60,24,24,24,24,24,60,0,0,0,

60,102,96,110,102,102,60,0,0,0,

126,96,96,120,96,96,126,0,0,0,

60,102,96,60,6,102,60,0,0,0,

126,24,24,24,24,24,24,0,0,0,

0,0,0,0,0,0,0,0,0,0,0

};

void setup()
{
for (int x=8;x<14;x++)
{

pinMode(x, OUTPUT);

}
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);

for (int i=0;i<8;i++)
{

digitalWrite(ground[i],HIGH);
}
DDRD = 0xFF;
PORTD =0;
}

void loop()
{
for(int x=0;x<142;x++) //এই লাইনটি গুরুত্বপূর্ণ
{

for(int a=0;a<20;a++)
{
for (int i=0;i<8;i++)
{

digitalWrite(ground[i],LOW);
PORTD = ALPHA[i+x];
delay(1);
digitalWrite(ground[i],HIGH);

}
}
}

delay(1000);
}

কোডের বিশ্লেষণ

উপরের কোডে লক্ষ্য করি char ALPHA[] = এর পর কিছু সংখ্যা দেখা যাচ্ছে । এখানে সবার উপরে ১০ টি শূন্য ও শেষে ১০ টি শূন্য এগুলা হল স্পেস । আর এর মাঝের প্রত্যেক ১০ টি সংখ্যা হল এক একটি অক্ষর । যেমন উপরের কোডে CIRCUITDIGEST লেখা। এখানে CIRCUITDIGEST মোট ১৩ টি অক্ষর, উপরের কোডে খেয়াল করলে দেখবেন প্রথমে ১০টি ও শেষে ১০টি শূন্য এর মাঝে ১৩ টি ১০ সংখ্যা বিশিষ্ট্য লাইন আছে।

নিজের নাম লিখতে চাইলে

এখন প্রশ্ন হল আপনি যদি নিজের নাম লিখতে চান তখন। এর জন্য আপনাকে A-Z পর্যন্ত সবগুলো অক্ষরের ডিসপ্লে কোড জানতে হবে। নিচে কোড দেওয়া হল ।

24,60,102,126,102,102,102,0,0,0,             // A

124,102,102,124,102,102,124,0,0,0,           // B

60,102,96,96,96,102,60,0, 0,0,               // C

120,108,102,102,102,108,120,0, 0,0,          // D

 

126,96,96,120,96,96,126,0, 0,0,              // E

126,96,96,120,96,96,96,0, 0,0,               // F

60,102,96,110,102,102,60,0, 0,0,             // G

102,102,102,126,102,102,102,0, 0,0,          // H

Related Post

 

60,24,24,24,24,24,60,0, 0,0,                 // I

30,12,12,12,12,108,56,0, 0,0,                // J

102,108,120,112,120,108,102,0, 0,0,          // K

96,96,96,96,96,96,126,0, 0,0,                // L

99,119,127,107,99,99,99,0, 0,0,              // M

 

102,118,126,126,110,102,102,0, 0,0,          // N

60,102,102,102,102,102,60,0, 0,0,            // O

124,102,102,124,96,96,96,0, 0,0,             // P

60,102,102,102,102,60,14,0, 0,0,             // Q

124,102,102,124,120,108,102,0, 0,0,          // R

 

60,102,96,60,6,102,60,0, 0,0,                // S

126,24,24,24,24,24,24,0, 0,0,                // T

102,102,102,102,102,102,60,0, 0,0,           // U

102,102,102,102,102,60,24,0, 0,0,            // V

99,99,99,107,127,119,99,0, 0,0,              // W

 

102,102,60,24,60,102,102,0, 0,0,             // X

102,102,102,60,24,24,24,0, 0,0,              // Y

126,6,12,24,48,96,126,0, 0,0,                // Z

উদাহরণ

এখন মনে করি আমি DAD লিখব। এর জন্য char ALPHA[] = এরপর ১০টি শূন্য, এর পর

120,108,102,102,102,108,120,0, 0,0,          // D,

24,60,102,126,102,102,102,0,0,0,             // A

120,108,102,102,102,108,120,0, 0,0,          // D

এই কোড টুকু পেস্ট করতে হবে এবং শেষে ১০টি শূন্য দিতে হবে। অর্থাৎDAD  লিখার জন্য সম্পুর্ন কোডটি হবে এরকম-

char ALPHA[] = {0,0,0,0,0,0,0,0,0,0,0,

120,108,102,102,102,108,120,0,0,0,

24,60,102,126,102,102,102,0,0,0,

120,108,102,102,102,108,120,0,0,0,

0,0,0,0,0,0,0,0,0,0,0};

একই ভাবে আপনি চাইলে এই পদ্ধতি অনুসরণ করে অন্যান্য নাম ও লিখতে পারবেন।

বিশেষ জ্ঞাতব্য

এখানে একটি বিষয় খেয়াল রাখতে হবে, মনে করি DAD লিখব। অর্থাৎ DAD লেখার জন্য উপরের কোডটি খেয়াল করলে দেখবো যে ৫ টি লাইনে ১০টি করে সংখ্যা আছে। এই লাইন আর লাইনে অবস্থিত অক্ষরের সংখ্যা গুণ হবে।

DAD লিখার ক্ষেত্রে ৫টা লাইন আর প্রতি লাইনে ১০টা সংখ্যা অর্থাৎ ৫ গুন ১০ সমান ৫০। এই ৫০ থেকে ৮ বিয়োগ করতে হবে। বিয়োগ করে যে সংখ্যা পাব সেটা মূল কোডের একটি নির্দিষ্ঠ স্থানে বসাতে হবে। নিচে দেওয়া হল।

(মূলকোডের নিম্নোক্ত লাইন টি পরিবর্তিত হবে),

for(int x=0;x<142;x++) //150-8 (to stop overflow)

{……..

(পরিবর্তিত কোড)

for(int x=0;x<42;x++) //50-8 (to stop overflow)

{……..

উপরের কোডের আন্ডারলাইন করা 142 এর স্থানে ঐ যে উপরে আমরা ৫*১০=৫০ আর ৫০-৮= ৪২ পেলাম সেই ৪২ বসাতে হবে। প্রতিবার নাম চেঞ্জ করার সময় এই নিয়মে হিসাব করে সংখ্যা বসাতে হবে। এটি করা হয়েছে মূলত অক্ষর গুলো যাতে ডিসপ্লেতে ওভারফ্লো না হয় তার জন্য।

আশাকরি এত খুলে বলার পর আর কারও কোন সমস্যা হওয়ার কথা না। তারপরও কোন সমস্যা হলে কমেন্টে জানাবেন। আর নিচে আমার তৈরি এই প্রজেক্টের ভিডিও দেখতে পাচ্ছেন-

তৈরি প্রজেক্টের ভিডিও

নীচে দেখতে পাচ্ছেন আমার তৈরি করা ৮x৮ এলইডি ম্যাট্রিক্স স্ক্রলিং এলইডি মেসেজ ডিসপ্লে প্রজেক্ট এর একটি সংক্ষিপ্ত ভিডিও।

সমাপ্তি

আজকের মতো আপাতত এখানেই ইতি টানছি। সামনে এমনি কোন মজার প্রজেক্ট নিয়ে হাজির হবো। ততোক্ষণে এই স্ক্রলিং এলইডি মেসেজ ডিসপ্লে সার্কিট সম্পর্কে আপনার কোন অভিজ্ঞতা জানানোর থাকলে কমেন্ট করতে পারেন।

This post was last modified on November 28, 2017 10:48 pm

কমেন্ট দেখুন

  • খুব সুন্দর বিশ্লেষণ ।

    Cancel reply

    Leave a Reply

    Your email address will not be published. Required fields are marked*

Leave a Reply

Your email address will not be published. Required fields are marked*

Share

Recent Posts

করোনা ভাইরাস প্রতিরোধে হ্যান্ড ওয়াশ চ্যালেঞ্জ - হ্যান্ড ওয়াশ টাইমার তৈরি করুন সহজেই

করোনা ভাইরাসের ভয়াবহতা নিয়ে আপনাদের বলার মত কিছু নেই। এটি যেকোনো জায়গায় থাকতে পারে এবং…

March 24, 2020

ভোঁতা ড্রিল বিট ধারালো করে নিন সহজেই (ভিডিও টিউটোরিয়াল)

ড্রিল বিট এর ধার দ্রুত ক্ষয়ে যায়। পিসিবি ড্রিল মেশিন গুলোতে ব্যবহৃত বিট গুলোকে চাইলে…

June 24, 2017

পাওয়ার ট্রান্সফরমার তৈরী করবার হিসাব নিকাশ (ক্যালকুলেটর সহ)

ভূমিকা পাওয়ার ট্রান্সফরমার তৈরী করতে চান অনেকেই। এই লেখার মাধ্যমে এটি তৈরী করবার প্রয়োজনীয় ক্যালকুলেশন…

June 16, 2017

তৈরি করুন সহজ কোড লক সিকিউরিটি সুইচ

কোড লক সিকিউরিটি সুইচ আমরা প্রায়ই মুভিতে দেখি। যেখানে নির্দিষ্ট কোড ঢুকানোর পর কোন সুইচ…

June 12, 2017

মাল্টিমিটার দিয়ে ট্রানজিস্টর এর বেজ, ইমিটার ও কালেক্টর লেগ বের করা

মাল্টিমিটার দিয়ে কিভাবে কোনো ট্রানজিস্টর এর বেজ, ইমিটার ও কালেক্টর (Base, Emitter & Collector) বের…

June 2, 2017

ট্রায়াক, ডায়াক পরিচিতি ও ইলেকট্রনিক ফ্যান রেগুলেটরের কার্যপ্রণালী

ট্রায়াক, ডায়াক ইলেকট্রনিক যন্ত্রপাতিতে বহুল ব্যবহৃত হয়। ফ্যান রেগুলেটর, লাইট ডিমার, সুইচিং এর কাজে আমরা…

May 24, 2017