Arduino සිංහලෙන් 12 - 7 Segment Display භාවිතය.

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ SSD එහෙමත් නැත්නම් 7 Segment Display (සප්ත කන්ඩ දර්ශක) Arduino එකත් එක්ක පාවිච්චි කරන්නේ කොහොමද කියන එක ගැනයි. SSD එකක් කියන්නේ output module එකක්. සාමාන්‍යයෙන් LCD එකකට වඩා අවධානය ගන්න ඕනේ අවස්ථාවල මේ SSD පාවිච්චි කරනවා. මම මෙතනදී කියලා දෙන්නේ ඉලක්කම් විතරක් පෙන්නන SSD  ගැනයි. නමුත් ඉංග්‍රීසි අක්ෂර පෙන්නන්න පුලුවන් Segment Display ත් තියෙනවා.

SSD හැදින්වීම

SSD එකක් හැදිලා තියෙන්නේ වෙන වෙනම පාලනය කරන්න පුලුවන් LED 8 කින් මේ 8 න් 7 ක්ම පාවිච්චි වෙන්නේ අංකයක් දර්ශනය කරන්නයි. ඉතුරු LED එක තියෙන්නේ දශම තිත සදහා යි. ඒවගේම තමයි අපි SSD එකක් මිලදී ගන්න කොට ප්‍රධාන වශයෙන් සැලකිලිමත් වියයුතු කරුන නම් Common පින් එකයි. මෙය ආකාර දෙකකට තියෙනවා. ඒ කියන්නේ common anode (පොදු අග්‍රය + ) හා common cathode (පොදු අග්‍රය -) වශයෙන් වර්ග දෙකක් වෙනවා. පහලින් තියෙන්නේ SSD එකක දල සැකැස්මයි.

සාමාන්‍යයෙන් SSD එකක් කියන්නෙ එක ඉලක්කමක් විතරක් පෙන්නන්න පුලුවන් තනි unit එකකට.  මේ එක unit  එකකට segment  එකක් කියල කියනවා. කොහොම උනත් හුගක් අවස්තා වල අපිට එක ඉලක්කමකට වඩා පෙන්නන්න ඕන අවස්ථා තියෙනවා. එතකොට අපි SSD කිහිපයක් එකතු කරලා හදලා තියෙන SSD unit එකක් ගන්න ඕනේ.

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ අංක 4 ක් පෙන්නන්න පුලුවන් SSD unit එකකින් වැඩකරන හැටි ගැනයි. මේ වගේ SSD එකකට කියන්නේ 4-digit SSD කියලයි. සාමාන්‍යයෙන් මේ 4-digit SSD එකක්ත් common pin එකට අමතරව සැලකිලිමත් වෙන්න ඕනේ තව දෙයක් තියෙනවා. ඒ කියන්නේ pin ගණන ගැනයි. 4-digit SSD එකක් 12 pin හා 16 pin වශයෙන් වර්ග 2 ක් තියෙනවා මම මෙතන්දී කතා කරන්නේ 4-digit 12 pin common cathode seven segment display ගැනයි. පහලින් තියෙන්නෙ 4-digit SSD එකක් පෙනුම හා පින් පිහිටලා තියෙන හැටියි.


SSD Driver IC

මෙතනදී මම SSD Driver IC එකක් පාවිච්චි කරලා තියෙනවා. මේකට බහුලව යොදාගන්න IC 2 ක් තියෙනවා MAX7219, MAX7221. මම මෙතනදී ගන්නේ MAX 7219 කියන IC එක. මේ IC එකට එකවර අංක 8 තියෙන Display එකක් හසුරුවන්න උනත් පුලුවන්. ලංකවේ මේ IC එක රු.180/- විතර වෙනවා.
පහලින් තියෙන්නේ මේ IC එකේ පින් OUT එක.

Components

Arduino board
Max7219 Chip
4-digit 7-segment LED display (common cathode)
40KΩ resistor
10μF capacitor
100nF capacitor

Circuit Diagram


Arduino Code

#include <SPI.h>

const int slaveSelect= 10; //pin used to enable the active slave

const int numberofDigits= 2;

const int maxCount= 99;

int number=0;

void setup()
{
Serial.begin(9600);
SPI.begin(); //initialize SPI
pinMode(slaveSelect, OUTPUT);
pinMode(slaveSelect, LOW); //select Slave

//prepare the 7219 to display 7-segment data
sendCommand (12,1); //normal mode (default is shutdown mode)
sendCommand (15,0); //Display test off
sendCommand (10,8); //set medium intensity (range is 0-15)
sendCommand (11, numberofDigits); //7219 digit scan limit command
sendCommand (9, 255); //decode command, use standard 7-segment digits
digitalWrite(slaveSelect, HIGH); //deselect slave
}

void loop(){
//display a number from serial port terminated by end of line character
if(Serial.available())
{
char ch= Serial.read();
if (ch == '\n')
{
displayNumber(number);
number=0;
}
else
number= (number * 10) + ch - '0';
}
}

//function to display up to 4 digits on a 7-segment display
void displayNumber (int number)
{
for (int i=0; i < numberofDigits; i++)
{
byte character= number % 10; //get the value of the rightmost digit
if (number == 0 && i > 0)
character = 0xf;
sendCommand(numberofDigits-i, character);
number= number/10;
}
}

void sendCommand(int command, int value)
{
digitalWrite(slaveSelect, LOW); //chip select is active low
SPI.transfer(command);
SPI.transfer(value);
digitalWrite(slaveSelect,HIGH);
}

original source code & diagram by : learningaboutelectronics.com/
Code එක upload කරලා Serial monitor එකේ 0 ත් 9999 ත් අතර අගයක් ගහල බලන්න.
මේ ක්‍රමයට අමතරව තව පහසු ක්‍රමයක් තියෙනවා. මෙච්චර code ලියන්න ඕනෙත් නෑ. පහලින් තියෙන link එකෙන් ඒ ගැන වැඩිදුර දැනගන්න පුලුවන්.
http://embedded-lab.com/blog/new-version-of-max7219-based-4-digit-serial-seven-segment-led-display/
Ardunio සදහාම නිර්මාණය කෙරුනු ලංකාවේ පලවෙනි Alternative IDE එක මෙතනින් download කරගන්න.

article එක හොදයි නම් අනිත් අයටත් බල්න්න share කරන්න. ඔයාලා හදපු project වල photo එකක් comment කරන්නත් අපේ එකේ post කරන්නත් අමතක කරන්න එපා.


EmoticonEmoticon