seven-segment-display

সেভেন সেগমেন্ট ডিসপ্লে – কি, কেন, কিভাবে (Seven Segment Display – What, Why, How?)

ডিজিটাল ঘড়ি, লিফট, ব্যাংক এর মুদ্রা বিনিময় মূল্য (currency exchange rate) চার্ট ইত্যাদি অনেক ক্ষেত্রেই আমরা সেভেন সেগমেন্ট ডিসপ্লে ব্যবহার হতে দেখি। একেকটা সেভেন সেগমেন্ট ডিসপ্লে আসলে অনেকগুলি LED (light emitting diode) এর সমষ্টি। সেভেন সেগমেন্ট ডিসপ্লে তে ০ থেকে ৯ পর্যন্ত যেকোনো ডিজিট ডিসপ্লে করা যায় এবং সাতটি সেগমেন্ট (segment) মিলে একটি ডিজিট তৈরী হয়। একেকটি সেগমেন্ট তৈরী তে একটি করে LED ব্যবহার করা হয়। তাছাড়া প্রতিটা সেভেন সেগমেন্ট ডিসপ্লে তে দশমিক বিন্দুর জন্যে আরেকটি LED থাকে। তাই একটা সেভেন সেগমেন্ট ডিসপ্লে তৈরিতে মোট ৮ টি LED ব্যবহার করা হয়ে থাকে।

একটি সেগমেন্ট ডিসপ্লে তে কেবল মাত্র একটি ডিজিট প্রদর্শন করা যায়। তবে একাধিক ডিজিট সম্বলিত সেভেন সেগমেন্ট ডিসপ্লে ও পাওয়া যায়। নিচের ছবি তে বিভিন্ন ধরণের সেভেন সেগমেন্ট ডিসপ্লে দেখানো হয়েছে।

সংযুগ এর ধরণ অনুসারে সেভেন সেগমেন্ট ডিসপ্লে দুই রকম হয়ে থাকে।
১। কমন এনোড ডিসপ্লে (Common anode display) এবং
২। কমন ক্যাথোড ডিসপ্লে (Common cathode display)

আমরা জানি একটা LED এর দুটি প্রান্ত থাকে। একটা এনোড (Anode) আর অন্যটি হলো ক্যাথোড (Cathode)। যে ডিসপ্লে তে এনোড গুলো একসাথে সংযুক্ত থাকে সেটি হলো কমন এনোড ডিসপ্লে আর যে ডিসপ্লে তে ক্যাথোড গুলো একসাথে সংযুক্ত থাকে সেটি হলো কমন ক্যাথোড ডিসপ্লে। নিচের ছবি থেকে বিষয়টি আরো ভালো করে বুঝা যাবে।

যেহেতু কমন এনোড ডিসপ্লে তে এনোড গুলো একসাথে সংযুক্ত থাকে তাই ক্যাথোড এর মাধ্যমে নির্ধারিত হয় একটা ডিসপ্লে তে কি ডিজিট ডিসপ্লে হবে। কমন ক্যাথোড ডিসপ্লে তে বিষয়টা তার ঠিক উল্টা।

একটি সেভেন সেগমেন্ট ডিসপ্লে তে সাধারণত দশটি পিন থাকে। তারমধ্যে দুইটি পিন হলো কমন আর বাকি আটটি, আটটি লেডি থেকে আসে। নিচের ছবিতে দেখানো হয়েছে।

একটি সেভেন সেগমেন্ট ডিসপ্লের প্রতিটা LED আলাদা আলাদা নাম থাকে। নামগুলি হলো a, b, c ,d e, f, g, dp. এই সেগমেন্ট লেডি গুলো একটা নির্দিষ্ট ক্রম অনুসারে বসানো থাকে। উপরের ছবিতে দেখানো হয়েছে।

int seg_A = 2;
int seg_B = 3;
int seg_C = 4;
int seg_D = 5;
int seg_E = 6;
int seg_F = 7;
int seg_G = 8;
int seg_DP = 9;

void setup()
{
  pinMode(seg_A, OUTPUT);
  pinMode(seg_B, OUTPUT);
  pinMode(seg_C, OUTPUT);
  pinMode(seg_D, OUTPUT);
  pinMode(seg_E, OUTPUT);
  pinMode(seg_F, OUTPUT);
  pinMode(seg_G, OUTPUT);
  pinMode(seg_DP, OUTPUT);
}

void loop()
{
  zero();
  delay(1000);
  one();
  delay(1000);
  two();
  delay(1000);
  three();
  delay(1000);
  four();
  delay(1000);
  five();
  delay(1000);
  six();
  delay(1000);
  seven();
  delay(1000);
  eight();
  delay(1000);
  nine();
  delay(1000);
  
}

void zero(){
  digitalWrite(seg_A, HIGH);
  digitalWrite(seg_B, HIGH);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, HIGH);
  digitalWrite(seg_E, HIGH);
  digitalWrite(seg_F, HIGH);
  digitalWrite(seg_G, LOW);
  digitalWrite(seg_DP, HIGH);
}

void one(){
  digitalWrite(seg_A, LOW);
  digitalWrite(seg_B, HIGH);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, LOW);
  digitalWrite(seg_E, LOW);
  digitalWrite(seg_F, LOW);
  digitalWrite(seg_G, LOW);
  digitalWrite(seg_DP, LOW);
}

void two(){
  digitalWrite(seg_A, HIGH);
  digitalWrite(seg_B, HIGH);
  digitalWrite(seg_C, LOW);
  digitalWrite(seg_D, HIGH);
  digitalWrite(seg_E, HIGH);
  digitalWrite(seg_F, LOW);
  digitalWrite(seg_G, HIGH);
  digitalWrite(seg_DP, HIGH);
}

void three(){
  digitalWrite(seg_A, HIGH);
  digitalWrite(seg_B, HIGH);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, HIGH);
  digitalWrite(seg_E, LOW);
  digitalWrite(seg_F, LOW);
  digitalWrite(seg_G, HIGH);
  digitalWrite(seg_DP, HIGH);
}

void four(){
  digitalWrite(seg_A, LOW);
  digitalWrite(seg_B, HIGH);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, LOW);
  digitalWrite(seg_E, LOW);
  digitalWrite(seg_F, HIGH);
  digitalWrite(seg_G, HIGH);
  digitalWrite(seg_DP, HIGH);
}

void five(){
  digitalWrite(seg_A, HIGH);
  digitalWrite(seg_B, LOW);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, HIGH);
  digitalWrite(seg_E, LOW);
  digitalWrite(seg_F, HIGH);
  digitalWrite(seg_G, HIGH);
  digitalWrite(seg_DP, HIGH);
}

void six(){
  digitalWrite(seg_A, HIGH);
  digitalWrite(seg_B, LOW);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, HIGH);
  digitalWrite(seg_E, HIGH);
  digitalWrite(seg_F, HIGH);
  digitalWrite(seg_G, HIGH);
  digitalWrite(seg_DP, HIGH);
}

void seven(){
  digitalWrite(seg_A, HIGH);
  digitalWrite(seg_B, HIGH);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, LOW);
  digitalWrite(seg_E, LOW);
  digitalWrite(seg_F, LOW);
  digitalWrite(seg_G, LOW);
  digitalWrite(seg_DP, LOW);
}

void eight(){
  digitalWrite(seg_A, HIGH);
  digitalWrite(seg_B, HIGH);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, HIGH);
  digitalWrite(seg_E, HIGH);
  digitalWrite(seg_F, HIGH);
  digitalWrite(seg_G, HIGH);
  digitalWrite(seg_DP, HIGH);
}

void nine(){
  digitalWrite(seg_A, HIGH);
  digitalWrite(seg_B, HIGH);
  digitalWrite(seg_C, HIGH);
  digitalWrite(seg_D, HIGH);
  digitalWrite(seg_E, LOW);
  digitalWrite(seg_F, HIGH);
  digitalWrite(seg_G, HIGH);
  digitalWrite(seg_DP, HIGH);
}

নিচের লিংক থেকে সিমুলেশন করে দেখা যেতে পারে।

https://www.tinkercad.com/things/bp0p90iHOw0

এ রকম আরো টিউটোরিয়াল দেখুন এখানে