PIC Microcontroller, 7 Segment Display এবং Multiplexing

0
416

বিগত Tutorial এ আমি PIC দ্বারা LCD নিয়ন্ত্রণ দেখিয়েছিলাম। এছাড়াও Entry Level এর কিছু আলোচনাও ছিল। এই Tutorial এ একটি গুরুত্বপূর্ণ এবং চিত্তাকর্ষক বিষয় নিয়ে আলোচনা করা হবে। আর টা হল Segment এবং Multiplexing।

প্রথমেই 7 Segment এর গঠন সম্পর্কে খুঁটিনাটি জেনে নেই।

7 Segment সুসজ্জিত Pattern এ বিন্যস্ত কয়েকটি ছাড়া আর কিছুই নয়। এতে বিন্যস্ত ৭ টি Segment 0 থেকে 9 পর্যন্ত ১০ টি অংক প্রদর্শন করতে সক্ষম। ক্ষেত্র বিশেষে একটি Decimal Point সহ মোট ৮ টি Segment উপস্থিত থাকে।

 

7 Segment Display
7 Segment
7 Segment Display Pinout
7 Segment Pinout

Segment গুলকে যথাক্রমে a, b, c, d, e, f, g এবং dp দ্বারা সূচিত করা হয়। ক্ষেত্রবিশেষে dp কে h দ্বারাও সূচিত করা হয়। বিভিন্ন Number প্রদর্শনের জন্য গুলোকে বিভিন্ন Pattern এ জ্বালান হয়।

ধরুন তে 5 অংক টি প্রদর্শন করতে হবে। তাহলে এর একটি 8 Bit Register এর Phase হবে “01101101”।

 

Displaying Numbers
ing Numbers

অর্থাৎ 5 অংকটি প্রদর্শনের জন্য;
bit_1 = 0 > Logic State = Low > of Segment “dp” Is Off
bit_2 = 1 > Logic State = High > of Segment “g” Is On
bit_3 = 1 > Logic State = High > of Segment “f” Is On
bit_4 = 0 > Logic State = Low > of Segment “e” Is Off
bit_5 = 1 > Logic State = High > of Segment “d” Is On
bit_6 = 1 > Logic State = High > of Segment “c” Is On
bit_7 = 0 > Logic State = Low > of Segment “b” Is Off
bit_8 = 1 > Logic State = High > LED of Segment “a” Is On

তাহলে প্রতিটি Number প্রদর্শনের জন্য MCU এর ৮ টি করে PIN ব্যবহার হচ্ছে। তার মানে আমরা একটি 16 Bit ব্যবহার করে সর্বোচ্চ ২ টি Digit প্রদর্শন করতে পারব! এর বেশি যেতে হলে আমাদের 32 Bit ব্যবহার করতে হবে! ইহা অত্যন্ত অযৌক্তিক একটি কাজ হবে! আমরা MCU এর মূল্যবান PIN এর সবগুলোই অপচয় করে ফেলতে পারি না!
এই সমস্যা সমাধানের জন্য একটি দারুন পদ্ধতি ব্যবহার করা হয়। যার নাম Multiplexing।

Multiplexing
Multiplexing

মানুষের চোখ কোন কিছু দেখার পর তার রেশ মস্তিষ্কে 1/10 Second (100 millisecond) স্থায়ী থাকে। এই সময় এর মধ্যে দৃশ্যের কোন পরিবর্তন হলে তা Vision এ কোন প্রভাব ফেলে না। এই কৌশল কে কাজে লাগিয়ে একাধিক 7 Segment এর মধ্যে Multiplexing ঘটান হয়।

এক্ষেত্রে সবগুলো এর ৮ টি বিট একসাথে সংযুক্ত থাকে। এবং Common Ground PIN গুলো আলাদা আলাদাভাবে নিয়ন্ত্রণ করে একটি নির্দিষ্ট সময়ে একটিমাত্র Digit জ্বালান হয়। সবগুলো Digit কেই এভাবে আলাদা করে জালান নেভান হয়। তবে এই প্রক্রিয়া এত দ্রুত করা হয় যে আমাদের মনে হয় সবগুলো Digit ই একসাথে দিপ্তমান।

এখানে একটি Sample দেওয়া হল:

 

এখানে শুরুতেই Common Cathode Display এর জন্য, 1 থেকে 10 পর্যন্ত Number এর সাথে সম্পৃক্ত Register এর Phase সমূহ Declare করা হয়েছে। সুবিধার জন্য 1 থেকে 10 পর্যন্ত Number গুলোকে a, b, c1, d1, e, f1, g, h, i এবং j Variable দ্বারা প্রথিস্থাপিত করা হয়েছে। ইতোপূর্বে “5” অংকটি প্রদর্শনের জন্য Register এর Binary State বিস্তারিত দেখান হয়েছে। আর Binary “01101101” এর Decimal হল “109” ।

“TRISB=0;” এবং “TRISC=0;” দ্বারা MCU এর B এবং C Register কে Output হিসেবে Declare করা হয়েছে। এখানে B Register কে Number প্রদর্শনের কাজে এবং C Register কে Multiplexing এর কাজে ব্যবহার করা হয়েছে।
20 millisecond পর পর Display পরিবর্তন করা হবে এবং 4 টি Display (20×4) = 80 millisecond এর মধ্যে আন্তঃপরিবর্তন ঘটান হবে। যা আমাদের Vision , 100 millisecond অপেক্ষা কম।

এখানে Circuit এর সম্পূর্ণ Schematic দেওয়া হল।
(বি. দ্র: Diagram এ Vss এবং Vdd Pin গুলো দেখান হয়নি।)

Circuit Schematic
Multiplexing 7 Segment Display Circuit Schematic

এখানে Source Code এবং Programmable HEX File অন্তর্ভুক্ত করা আছে।

Multiplexing Files

Password: PC16F877AAE

Credits:
MCU : Microchip
7 Segment Display: MikroElektronika
Software: MikroElektronika, Labcenter Electronics

ঘুরে আসুন আমাদের ইলেকট্রনিক্স শপ থেকেঃ
ঘুরে আসুন আমাদের ইলেকট্রনিক্স শপ থেকেঃ
ঘুরে আসুন আমাদের ইলেকট্রনিক্স শপ থেকেঃ
ঘুরে আসুন আমাদের ইলেকট্রনিক্স শপ থেকেঃ

কমেন্ট প্রদান

Please enter your comment!
Please enter your name here