සුභ දවසක්. අද අපි කතා කරන්න යන්නේ LED BAR GRAPH සමග වැඩ කරගන්නා විදියයි.

මුලින්ම අපට මේ සදහා ඕන දේවල් බලමු.
1. Uno board එකක්.
2. LED BAR GRAPH එකක්.
3. Jumper Wires.
4. Resistors 220 Ohm 10ක්.

10 SEGMENT LED BAR GRAPH

LED BAR GRAPH යනු LED 10කින් හෝ සමන්විත තනි ඒකකයකි. එහි පැත්තක PIN 10 බැගින් PIN 20ක් ඇත. එම නිසා මෙය ක්‍රියාත්මක කිරීම සදහා අපි Arrays භාවිතා කරනවා. Array variable එකක් තුල values කිහිපයක් ගබඩා කර තැබිය හැකිය. මෙහි අපි ගබඩා කිරීමට යන්නේ Arduino board එකේ අපට අවශ්‍ය PIN අගයන් වේ.

ආඩුඊනෝ තුල Arrays සාදාගන්නේ මෙහෙමයි.

මුලින්ම අදාල variable type එක අපි සදහන් කර යුතු වන අතර ඉන් පසු Array එකෙහි නම සදහන් කරයි. ඉන්පසු එම නම ලගින් [] සදහන් කරනු ලැබේ.

int arrayName[];
string arrayName[];


Array වෙත values ආදේශ කිරීමේදී පහත ආකාරයට ආදේශ කරනු ලැබේ.

int LedPin[] = {3,4,5,6,7,8,9,10,11,12}

මෙහෙදී අපි values ලෙස යොදාගෙන ඇත්තේ arduino uno board එකේ සම්බන්ධ කර ඇති PIN අංක ටිකයි.

දැන් අපි මෙම LED BAR GRAPH එක දල්වමු.

Circuit

මුලින්ම අපි ඒ අදාල සියලු PIN ටික setup කරගත යුතුයි. ඒ සදහා void setup() තුල අපි for loop එකක් ආධාරයෙන් මෙසේ setup කරගන්නවා.

for (int i=0;i<10; i++)
{
   pinMode(LedPin[i], OUTPUT);
}


මෙහිදී int i හි මුල් අගය 0ට සමාන කර තිබෙන්නේ Array එකක මුල්ම value එකට අදාල index අගය 0 වන නිසාවෙනි. for loop එකෙහි මැද i<10 යනු i වල ඇති අගය 10ට අඩු වන තෙක් එසේ නැතිනම් අපගේ array එකෙහි ඇති PIN ගණනට එය ක්‍රියාත්මක කරවීමටයි. එහි අන්තිමට i++ එකෙන් වනුයේ i නැමැති variable එකේ ඇති අගය 1 කින් වැඩි කිරීමයි (i=i+1).

pinMode() එකේ ඇතුලත අපි සදහන් කරනුයේ අදාල PIN එක සහ එම PIN එක INPUTද OUTPUT ද යන වගයි. මෙහිදී අපි PIN සියල්ල Array එකක් භාවිතයෙන් ලබා දී ඇති නිසා එය අපි LedPin[i] ලෙස සදහන් කරනවා. එහිදී කොටු වහරන් ඇතුලතට i ලෙස සදහන් වීමෙන් for loop එක ක්‍රියාත්මක වන තෙක් i හි අගය වෙනස් වෙවී මෙම pinMode එකට ලැබෙනවා. එමගින් array එකේ ඇති සියලුම PIN අංක OUTPUT PIN බවට පත්වේ.

මෙහිදී පිලිවෙලින් i හි අගය සහ එම array එකෙන් එලියට එන value එක මේ ආදී වශයෙන් වෙනස් වෙයි.

LedPin[0]; = 3
LedPin[1]; = 4
LedPin[2]; = 5
LedPin[3]; = 6
LedPin[4]; = 7
LedPin[5]; = 8
LedPin[6]; = 9
LedPin[7]; = 10
LedPin[8]; = 11
LedPin[9]; = 12

දැන් අපි void loop එක තුලින් මේ LED BAR GRAPH එක දල්වමු. ඒ සදහා අපි for loop එකක් යොදාගන්නවා. මේ මගින් කරනුයේ අපි ඉහත සාදාගත් Array එකේ ඇති සියලුම values වලට අදාල සියලු port හෝ කිහිපයක් දල්වා ගැනීමයි. පහත ආකාරයට අපි එය සදාගන්නවා.

මුලින් අපි වරකට එක බැගින් සියලු LED දල්වමු.


for (int i= 0;i<10; i++)
{
  digitalWrite(LedPin[i], HIGH);
  delay(1000);
}


මෙහිදී Uno board එකේ තිබෙන 3වෙනි Port එකේ සිට 12 වෙනි Port එක දක්වා තිබෙන සෑම PIN එකක්ම තත්පරයකට සැරයක් දැල්වේ.

දැන් අපි එක් එක් LED එක වෙන වෙනම දල්වමු.


for (int i= 0;i<10; i++)
{
  digitalWrite(LedPin[i], HIGH);
  delay(1000);
  digitalWrite(LedPin[i], LOW);
}


මෙහිදී අප පලමුවෙන් තිබෙන PIN එක HIGH කරමින් එය දල්වයි. නැවත delay එකකින් පසු එය නිවා දමයි. මෙය for loop එකක් මගින් කරන නිසා i හි එකකින් අගය වැඩිවෙයි. නැවත ඊලග PIN එකට අදාල LED එක දැල්වෙයි. නැවත delay එකකින් පසු එය නිවෙයි.

Code

මේ ආකාරයට අපට කැමති කැමති ලෙස මෙය වෙනස් කරමින් දැල්වීමට සහ නිවීමට පුලුවනි.

code file https://github.com/realrajapaksha/Arduino

එහෙනම් යාලුවනේ අදට අපි සමුගන්නවා. තවත් මේ වගේ ආටිකල් එකක් අරගෙන ආයෙත් එන්නම්. ඔයාලගේ අදහස් යෝජනා සහ අඩුපාඩු comment කරන්නත් අමතක කරන්න එපා. සුභ දවසක්.