Arduino Sinhalen- Part1 -What is Arduino

 ආර්දුයිනෝ (Arduino) කියන්නේ මොකද්ද.එක එක නම් වලින් එන arduino වල තියෙන වෙනස මොකද්ද. අපිටත් arduino වලින් වැඩක් ගන්න පුලුවන්ද? කියන ප්‍රශ්නේ ගොඩක් අයට තියෙනවා.තව Arduino ඉගෙන ගන්න ආසයි.එත් මුකුත් programming බෑ.Video බලල ඉගෙනගන්න තේරෙන්නේ නැ .ඔය ප්‍රශ්න වලට විසදුම් හොයන්න තමයි මම මේ පොස්ට් එක සිංහලෙන් ලියන්නේ.

ඇයි අපිට Arduino ඕනේ වෙන්නේ.නිකන් electronic circuit එකකින් අපිට වැඩ කරගන්න බැරිද ?

උදාහරණයක් විදියට knight rider circuit එක ගන්නම්. අපිට එක කඩේ තියෙන pcb එකකින් හදාගන්න නැත්නම් dot board එකක හදාගන්න පුළුවන්. හැබැයි එකේ led පත්තුවෙන pattern එක පොඩ්ඩක් වෙනස් කරන්න, led දෙක දෙක පත්තුවෙන්න හදන්න ඒවගේ  දේවල් hardware parts වෙනස් කරන්නේ නැතුව හදන්න බැ. electronic විදියට මොකක් හරි වෙනසක් කරන්නම වෙනවා.එහෙම කරත් හදාගන්න බැරි patterns තියෙනවනේ.

දැන් මේකම Arduino වලින් හැදුවොත් අපිට ඕනේ වෙන්නේ led 10යි resistor 10යි වයර් ටිකකුයි විතරයි.පොඩි code එකකුත් ඕනේ.එත් එක හරිම ලේසියි.හැබැයි හොදම part එක තමයි මේකේ code එක අපිට ඕනේ විදියට වෙනස් කරන්න පුළුවන් වගේම Arduino එක වෙන වැඩකට උනත් use කරන්න පුළුවන් වීම.code එක ගහල එක computer එකේ save කරාට පස්සේ ඒ code එක ආයේ ආයේ දාන්න පුලුවන්.හරියට USB පෙන් එකක් වගේ.


මේ තියෙන්නේ Arduino IDE එක.එහෙමත් නැත්නම් Arduino code කරන software එක.මේක Arduino එකේ web site එකෙන් ගන්න පුළුවන්.

https://www.arduino.cc/

මොනවද තියෙන arduino board වර්ග 

ඊලග ප්‍රශ්නේ 

arduino board එක එක වැඩ අනුව ගොඩක් වර්ග තියෙනව. UNO, Mega, nano, Pro Mini මේ තියෙන්නේ වැඩියෙන්ම පාවිච්චි වෙන වර්ග.අපි UNO එකකින් වැඩ පටන් ගමු.


අදුරගන්න මේ තමයි UNO( උනො)
විස්තර ටිකක් බලමු.
මෙයට වැඩකරන්න 5V ඕනේ. එත් අපිට හැමවෙලාවෙම අපිට 5v දෙන්න විදියක් නෑ නේ.එක හින්දම මේකට voltage regulator ic එකක් දාලම එවලා තියෙන්නේ.එක හින්ද 7V -12V පරාසයේ උනත් මේක වැඩකරනවා.

මේකට I/O pin දාහතරක් තියෙනවා. I කියන්නේ input ,ඒ කියන්නේ මේකට හයිකරන්න පුළුවන් එක එක ජාතියේ sensors වලින් ගන්න සිග්නල් ගන්න මේකේ තියෙන ඒ pin වලින් එකක් අපිට පාවිච්චි කරන්න පුලුවන්.
O කියන්නේ output. ඒ කිව්වේ කලින් විදියට මේකෙන් led පත්තු කරන්න මෝටර් වැඩකරන්න relay වැඩකරන්න මේකෙන් එලියට සිග්නල් ගන්න pin.මේකේ තියෙන pin 14 output විදියට භාවිතා කරන්නත් පුළුවන්.
මේකේ I/O pin වලින් අපිට කැමති ඒවා input හෝ output විදියට වෙන් කරන්න පුළුවන්.එක කරන්නේ code එකෙන්.හරිම ලේසි.වචන 3යි .

මේ පින්තුරේ උඩ තීරුවේ තියෙන්නේ ඒ input output pin සෙට් එක. එවල අංක 0 ඉදන් 13 වෙනකම් නම් කරලා තියෙන්නේ.ඒවා ඉස්සරහින් චුටි ~ සලකුණක් දාල තියෙන pin තියෙනවා. ඒවා PWM pin. PWM ගෙන පස්සේ කතා කරමු.

යටින් තියෙනවා analog input pin 6ක් . ඒවා A0 A1 A2.......A6 විදියට නම් කරලා තියෙනවා .එවලින් කරන්නේ 0v ඉදන් 5v දක්වා කියවන එක.ඒවත් අපි පස්සේ කතා කරමු.ඒ pin 6 input විදියට සෙට් කරලා තිබුනට output විදියට උනත් භාවිතා කරන්න පුළුවන්. ඒවත් පස්සේ. ඒ pin ටිකට වම පැත්තේ තියෙන්නේ power pin සෙට් එක.එතන pin වලින් පුළුවන් 5v ගන්න . නැත්නම් Arduino board එකට අවශ්‍ය 5v එක දෙන්න.3.3v ගන්න.7v-12v දෙන්න.මේ ඔක්කොම අපි පස්සේ කතා කරමු විස්තර ඇතිව.


  • මේ තියෙන්නේ තව arduino board එකක් . මේක arduino mega


නමේ හැටියටම එක mega. I/O pin 54 තියෙනවා. analog inputs 16 තියෙනවා .


  • මේ arduino nano 
චුටි උනාට I/O pin ගාන අඩු නෑ. I/O 14යි. analog input 8යි.මේකේ විශේෂත්වය ගොඩක් පොඩි වීම වගේම මේක කෙලින්ම breadboard එකට හයි කරගන්න පුළුවන්.


දැන් විස්තර කිව්වා ඇති.වැඩ පටන් ගනිමු.

Arduino එකේ pin13 ට led එකක් connect කරලාම එවල තියෙනවා.මේ නිසා අපිට ලේසියෙන්ම board එක වැඩ කරනවද කියල බලන්න පුළුවන්.දැන් අපි බලමු code එකක් ගහන විදිය

තනි led එකක් නිවී නිවී දැල්වෙන code එක 

void setup() {
            pinMode(13, OUTPUT);
}


void loop() {
           digitalWrite(13, HIGH);  
           delay(1000);                     
           digitalWrite(13, LOW);   
           delay(1000);                     
}

මේ code එකට අදාල වෙන බාහිර පරිපථය 



මේ තියෙන්නේ සරලම arduino code එකක්.මේකෙන් මොකද වෙන්නේ.

මේකේ මුලින්ම තියෙනවා void setup(){} කියල කෑල්ලක්.එකට කියන්නේ setup method එක කියල.මුලින්ම කියන්න ඕනේ Arduino code එකක් run වෙන්න ඕනේ method දෙකක් තියෙනවා . එකක් තමයි setup එක. අනික loop එක.මේ දෙකෙන් setup method එක run වෙන්නේ එක පාරයි.ඒ Arduino එක ඕන වුන ගමන් විතරයි.loop method එක සදාකාලික run වෙනවා.මේ දෙක use කරන්නේ වැඩ දෙකකට. setup එක use  කරන්නේ Arduino එකේ pin input හෝ output විදියට නම් කරන්නයි.තව වැඩ තියෙනවා.දැනට එක මතක තියාගමු.එතකොට loop එකෙන් කරන්නේ අපිට ඕනේ pattern එක නැත්නම් එක දිගට වෙන්න ඕනේ වැඩේ code කරං එක.

උඩ code එකේ setup method එක ඇතුලේ

pinMode(13,OUTPUT); 

කියල ගහල තියෙන්නේ.එකෙන් කරන්නේ 13 වෙනි pin එක output එකක් විදියට සෙට් කරන එක.

12වෙනි pin එක output විදියට සෙට් කරන්න ඕනේ නම්
pinMode(12,OUTPUT);
විදියට code වෙන්න ඕනේ.

10 වෙනි pin එක input එකක් විදියට සෙට් කරන්න නම්
pinMode(10,INPUT);

එතකොට output input මාරු වෙනවා.අපිට අවශය pin අවශ්‍ය විදියට set කරගන්න එක setup method එකෙන් කරගන්නවා.

#RULE01 මතක තියාගන්න. අපි හැම code එකක්ම ගහන්න කලින් අපේ input output arduino එකට හදුන්වල දෙන මේ setup code එක ගොඩක් වැදගත්.මේක අනිවාර්යයයි .

ඊළගට බලමු loop method එකේ මොනවද තියෙන්නේ කියල.

void loop() {
           digitalWrite(13, HIGH);  
           delay(1000);                     
           digitalWrite(13, LOW);   
           delay(1000);                     
}

මේකෙන් කරන්නේ 13 වෙනි pin එක on කිරීම සහ off කිරීමයි. digitalWrite කියන command එකෙන් කරන්නේ අදාල pin එක අදාල වොල්ටියතවයට සෙට් කිරීම.digitalWrite එක HIGH උනාම අදාල pin එකෙහි වෝල්ටීයතාවය 5v වෙනව. LOW උනාම අදාල pin එකේ වෝල්ටීයතාවය 0v වෙනවා


  • උදාහරණ විදියට 2 pin එක 5v output කිරීමට නම් 

             digitalWrite(2,HIGH);
             #RULE01 බලන්න 


  • 5 pin එකෙන් 5v output කිරීමට නම් 

             digitalWrite(5,HIGH);
             #RULE01 බලන්න 

  • 4 pin එකේ දැනට 5v තිබේ නම් හා එය 0v කිරීමට අවශ්‍ය නම් 
             digitalWrite(4,LOW);

             #RULE01 බලන්න 

හරි. ඒ code එකේ delay කියල කෑල්ලකුත් තියෙනවා. එකෙන් කරන්නේ මේ code එක රුන් වෙද්දී එතනට අවම පොඩ්ඩක් වෙලා code එක පරක්කු කරන එක. හරියටම කිව්වොත් මිලි තත්පර 1000 පරක්කු කරනවා. delay method එක ඇතුලේ code කරලා තියෙන වෙලාව තමයි පරක්කු වෙන්නේ.

(මිලි තත්පර 1000 = තත්පර 1)

මොකද්ද පරක්කු වෙනවා කියන්නේ.අපි led එක on කරා නම් on එකේම තත්පරයක් ඉන්න කියන එක තමයි පරක්කු වෙනවා කියන්නේ.


  • උදාහරණ විදියට තත්පර දෙකක් පරක්කු වෙන්න ඕනේ නම් 
            delay(2000);
  • තත්පරෙන් දහයෙන් එකක් පරක්කු වෙන්න නම් 
            delay(100);

එතකොට මේ code එකෙන් වෙන්නේ 


           digitalWrite(13, HIGH);  
           delay(1000);                     
           digitalWrite(13, LOW);   

           delay(1000);        

13 වෙනි led එක දැල්වීම , තත්පරයක් රැදී සිටීම , led එක off කිරීම , තත්පරයක් රැදී සිටීම 

කියන පියවර 4යි. නමුත් මේක code කරලා තියෙන්නේ loop method එකේ නිසා මේ පියවර 4ත් සදාකාලිකව run වෙනවා.

මේක වෙනස් කරන්නේ කොහොමද.

  • උදාහරණයක් විදියට 4 වෙනි pin එකේ led එකක්  තත්පරයක් දැල්විලා තත්පර 5ක් නිවිලා තිබීම 
සම්පුර්ණ code එක .

 void setup() {

      pinMode(4, OUTPUT);
}

void loop() {
     digitalWrite(4, HIGH);   
     delay(1000);                       
     digitalWrite(4, LOW);   
     delay(5000);                       
}

මේ code එකට බාහිර පරිපථය 


  • 3 හා 4 pin දෙකේ led දෙකක් මාරුවෙන් මාරුවට තත්පරයක කාලයකදී දැල්වීම 
සම්පුර්ණ code එක 

void setup() {
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  
}

void loop() {
  digitalWrite(4, HIGH); 
  digitalWrite(3,LOW);  
  delay(1000);                       
  digitalWrite(4, LOW); 
  digitalWrite(3,HIGH);  
  delay(1000);                       
}

මේ code එකට බාහිර පරිපථය 

arduino සම්බන්ද මුලික හදුන්වාදීම මෙතනින්  ඉවරයි. ඊලග පොස්ට් එකේදී නැවත හමුවෙමු. ප්‍රශ්න comment කරන්න 

Comments

Popular posts from this blog

Lab bench power Supply / Voltage regulator with current limiter and indicators / adjustable volage current regulator

PT 2308 Headphone Driver IC

Light a LED using Main Current 230V/110V AC