Thursday, March 10, 2016

How to use Analog pins as Digital pins

සුභ දවසක් හැමෝටම...

අද ලිපියෙන් පැහැදිලි කරන්නේ Arduino එකේ ඕනෑම Analog pin එකක්, Digital pin එකක් විදියට භාවිතා කරන ආකාරය ගැන.





ඒ කියන්නෙ උදාහරණයක් විදියට ගත්තොත්, Arduino UNO Board එකේ 0 ඉදන් 13 වෙනකම් digital pins 14ක් තියෙනවා... ඒ වගේම A0 ඉදන් A5 වෙනකම් analog pins 6ක් තියෙනවා... මම කලින් කිව්ව වගේ ඕනෑම Analog pin එකක් digital pin එකක් විදියට භාවිතා කරන්න පුලුවන් නිසා UNO Board එකෙන් Outputs 20ක් ගන්න පුලුවන්. :)


 ඒ කියන්නෙ shift registers වගේ දෙයක් භාවිතා කරන්නෙ නැතිව උනත් එකිනෙකින් ස්වායත්තව ප්‍රතිදාන 20ක් ලබාගන්න පුලුවන්... ^_^

ඉතින් මම මේ ක්‍රමයට led 20ක් භාවිතා කරලා අපි හැමෝම දන්න Knight Rider Circuit එක හදලා බැලුවා... වැඩේ සාර්තකයි... :D :D :D

මේ තියෙන්නෙ ඒ සදහා භාවිතා කල කේතය.

//setup කොටස එක් වරක් පමණක් ක්‍රියාත්මක වේ.
void setup(){
for(int i=0; i<20; i++){//i විචල්‍යයට 0සිට 19දක්වා සoඛ්‍යා ආදේශ කිරීම for loop එක මගින් සිදු වේ.
pinMode(i, OUTPUT);//එසේ i සදහා ලැබෙන අගයන්ට අදාල අග්‍රය OUTPUT එකක් ලෙස හදුන්වා දේ.
}
}

//loop කොටස දිගින් දිගටම ක්‍රියාත්මක වේ.

void loop(){
for(int i=0; i<20; i++){//පෙර පරිදිම i සදහා අගයන් ලබා දේ.
digitalWrite(i, HIGH);//එසේ ලැබෙන අගයට හිමි ප්‍රතිදාන අග්‍රය ON බවට පත් කරයි.
delay(100);//මිලි තතපර 100ක කාලයක විවේකයක් ගනී.
digitalWrite(i, LOW);//එම ප්‍රතිදාන අග්‍රය OFF බවට පත් කරයි.
}
}

 කේතය IDE එකේ දිස් වෙන්නෙ මේ විදියට.


ඔබ මෙම කේතයේ ඇති for loop functions දෙක ගැන අවදානයෙන් බැලුවොත් පැහැදිලි වෙන්න ඇති i ලෙස හදුන්වපු integer වර්ගයේ විචල්‍යයට 0සිට 19දක්වා අගයන් ආදේශ වන බව... ඒවගේම එම අගයන්ට අනුරූප අග්‍රය සදහා යම්කිසි ක්‍රියාවලි for loop කොටස තුල සිදු වෙන බව. (pins HIGH හෝ LOW බවට පත් කිරීම වැනි දේ...)


ඒත් ඔබට සිතෙන්නට ඇති 13වන Digital pin එකෙන් පසුව 14, 15, 16, 17, 18, 19 යන අග්‍ර Arduino UNO Board එකේ තිබේද කියලා...


ඔව්.

14, 15, 16, 17, 18, 19 යන අග්‍ර තමයි Analog pins... 

එතකොට A0, A1, A2, A3, A4, A5 කියන්නෙ මොනවද?


ඒවාම තමයි කලින් 14,15,16... ලෙස හැදින්වුවෙත්... ඒ කියන්නෙ Arduino UNO Board එකක් සදහා ලියපු කේතයක යම් කිසි අග්‍රයක් 14 ලෙස නම් කලොත් Arduino එක එම අග්‍රය A0 analog pin එක ලෙස හදුනා ගන්නවා...

එනම් A0, A1, A2, A3, A5 යන අග්‍ර 6, පිලිවෙලින් 14, 15, 16, 17, 18, 19 ලෙස හදුන්වන්න පුලුවන්.

ඉන් පසුව එම අග්‍ර පහත ආකාරයට නම් කර digital pins ලෙස භාවිතයට ගන්න පුලුවන්...

උදා:- 

pinMode(14, OUTPUT);

pinMode(2, OUTPUT);

මේ දේ අත්හදා බලන්න. ගැටලු තිබේ නම් පහතින් comment කරන්න.

3 comments:

  1. ardunikayanta hoda pahadili kirimak hoda lipiyak subhapathum bro

    ReplyDelete
    Replies
    1. ස්තුතියි ඔබේ වටිනා අදහස් වලට...

      Delete
  2. arduino eken read karana data database ekata yawana vidiya dannawa nam kiyannko

    ReplyDelete