28 December 2014

Arduino පළමු Project එක(LED එකක් Blink කරමු..)

ඔන්න එහෙනම් අපි හා හා පුරා කියලා කරන්න හදන්නේ අපේ පලවෙනි Arduino project එක.....මේක තමයි මම දන්නා විදියට කරන්න පුළුවන් සරලම Project එක...
කලින් ලිපි බැලුවේ නැත්තම් ඒවත් බලලම ඉන්නකෝ...
  1. පළමු පාඩම  
  2. දෙවන පාඩම
  3. තෙවන පාඩම
මේ ප්‍රොජෙක්ට් එක බොහොම සරලයි. අපි මේකෙදී කරන්න බලාපොරොත්තු වෙන්නේ Arduino Board එකේ Inbuilt තියෙන LED එක නිවි නිවී පත්තුවෙන්න සකස් කිරීමයි. මේ Inbuilt LED එක කිව්වේ L LED එක. ඔයගොල්ලො කලින් පෝස්ට් එක කියෙව්වනම් මේ L LED එක සවිවෙලා තියෙන්නේ Digital Pin 13 වලට කියලා මතක ඇති.. මේ Project එකේදී අපට වෙන කිසිම දෙයක් Arduino Board එකට එලියෙන් සවිකරන්න වුවමනා වෙන්නේ නෑ. Board එක තිබුනාම ඇති....

L LED UNO

ඕනම Arduino programme එකක අනිවාර්‍රයෙන්ම තියෙන Structures දෙකක් තියෙනවා. ඒ තමයි "void setup ()" සහ "void loop ()" කියන Structures දෙක. අපි ලියන ප්‍රෝග්‍රෑම් එක දාන්න ඕන මේ "setup()" සහ "loop()" කියන කොටස් දෙක ඇතුලටයි. මේ දෙකෙන් "setup()" කියන එක අපි Programme එක ස්ටාර්ට් කරාම එක පාරක් වැඩකරලා ඊළඟට "loop()" කියන එකට යනවා. "loop" එක හැමදිස්සෙම ආපහු ආපහු වැඩ කරකර තමයි තියෙන්නේ. ඒ නිසා ඔයගොල්ලන්ට තේරෙනවා ඇති අපට ප්‍රෝග්‍රෑම් එකේ එකපාරක් විතරක් වෙන්න ඕන දෙවල් ටික "setup" එක ඇතුලට දාලා ඊළඟට repeat වෙන්න ඕන දෙවල් ටික "loop" එක ඇතුලට දාන්න ඕන බව..දැනට ඔය ටික ඇති....දැන් අපි වැඩේට බහිමු...


අපි දැන් අපේ ප්‍රෝග්‍රෑම් එකේ වෙන්න ඕන දෙවල්. ඒ කියන්නේ pseudo code එකක් වගේ එකක් ලියමු.( ඒ කියන්නේ අපේ ප්‍රෝග්‍රෑම් එක වැඩ කරන්න ඕනේ කොහොමද කියල... ) දැන් අපිට අපේ Pin 13 එකේ තියෙන LED එක Blink කරන්න නම් පහල තියෙන දේවල් කරන්න ඕන....

1) LED එක සවිකර ඇති Pin එක Pin 13 බව Arduino එකට පැවසීම.
2) එම Pin එක Output එකක් බවට පත් කිරීම.
3) LED එක දැල්වීම.
4) ටික වේලාවක් බලාසිටීම.
5) LED එක නීවීම.
6) ටික වේලාවක් බලාසිටීම.
7) නැවතත් අංක 3 වෙත යෑම.

ඔය පියවරවල් ටික බැලුවාම ඔයගොල්ලන්ට බොහොම පහසුවෙන් අවබෝධ කර ගන්න පුලුවන් දෙයක් තමයි ඔතන තියෙන පියවර 1 හා 2 එක පාරක් වැඩකරාම ඇති බව. නමුත් පියවරවල් 3 සිට 7 දක්වා නැවත නැවතත් Repeat වෙන්න ඕන. ඒ නිසා අපි ඔය පියවරවල් වලින් 1 සහ 2 දානවා එක "setup()" ඇතුලට. අනිත් ටික (3 සිට 7 දක්වා) දානවා "loop()" එක ඇතුලට.

එහෙනම් අපි දැන් ප්‍රෝග්‍රෑම් ලියන්න පටන් ගනිමු...එස්සේල්ලම අපි අපේ project එකට Arduino board එකෙන් ගන්න pin එක මොකක්ද කියල define(එකියන්නේ හඳුන්වන්න ඕනේ)කරන්න ඕනේ...මෙතැනදී අපි Use කරන්නේ 13 වෙනි පින් එක නිසා මම මෙහෙම එක define කරනවා..
int ledpin = 13;
මෙතැනදී අපි 13 වන pin එක ප්‍රෝග්‍රෑම්
එකට define කරනවා විතරක් නෙවෙයි.
මෙතැනදී අපි ledpin කියල වෙරියබල් එකක් හදනවා...
එකියන්නේ අපිට ප්‍රෝග්‍රෑම් එක ඇතුලෙදි(මෙතනින් පසුව)
13 වන pin එකට ledpin කියල කියන්න පුළුවන්... 
මේවගේ define කරන ඒවා අපි "setup" හා "loop" කියන දෙකම
කලින් කරන්න ඕන... 
දැන් ledpin එක output එකක් කරන එක අපි "setup" එක ඇතුලෙ කරන්න ඕන. ඒක මෙහෙම කරන්න පුලුවන්.
void setup() {                
  pinMode(ledpin, OUTPUT);

}
දැන් අපේ "loop" එක ආරම්භ කරන්න ඕන. ඒ සඳහා අවශ්‍ය සම්පූර්ණ කේත සටහනම මෙහෙමයි. 
void loop() {
  digitalWrite(ledpin, HIGH);
  delay(1000);
  digitalWrite(ledpin, LOW);
  delay(1000);
}
ඔතන තියෙන "digitalWrite" කියන function එකෙන් කෙරෙන්නේ අපේ outputs විදියට define කරලා තියෙන digital pins, on හරි off හරි කරන එකයි. ( HIGH කියන්නේ on කියන එකයි. LOW කියන්නේ off වලටයි )
ඒවගේම අපි "delay" කියන function එක භාවිතා කරන්නේ අපේ programme එක වැඩකිරීම යම්කිසි වේලාවකට නවත්වා තැබීමටයි. මෙතනදී නම් LED එක ඔන් කළාට පස්සේ ආපහු LED එක off වෙන්න කලින් තත්පරයක කාලයක් LED එක on තත්වයේම තබාගැනීම delay එක මඟින් මෙතනදී සිදුකරනවා. ( delay function එකෙදී අපි delay time එක ලබාදෙන්න ඕන මිලිතත්පර වලිනුයි.  එක තත්පරයකට මිලිතත්පර 1000ක් තියෙනවා. | | 1 second = 1000 milliseconds ) 
මෙතනදී වැදගත් දෙයක් කියන්න ඕනේ.
ඒ තමයි අපි දෙන හැම Code අවසානයේ ;
කියන සංකේතය දන්නා ඕනේ..
තවදෙයක් තම මතක් කරලම දාන හැම සඟල
වරහනක්ම වහන්නත් මතක තියාගන්න ඕනේ..

ඉතා වැදගත්! :- Arduino Language එක Case Sensitive. ඒ කියන්නේ කැපිටල් සහ සිම්පල් අකුරු හරි විදියට තියෙන්න ඕන. ඒ හින්දා මම මෙතනදී දෙන කෝඩ් එක ඒ තියෙන විදියටම ලියන්න. කැපිටල් සිම්පල් මාරු කරන්න එපා. 

උදා : - Digitalwrite() - මේක වැරදියි.

           DigitalWrite() - මේකත් වැරදියි. 

           digitalWrite()- මේ විදිය විතරයි හරි.
 
ඔන්න code සේරම ටික ලිව්වා...දැන් ඉතින් බෝඩ් එකට Power දීලා තියෙනකම් 13 වන pin එකට සෙට් වෙලා තියෙන LED එක blink වෙනචා..ඕනෙනම් අපිට 13 වන pin එකට LED එකක (-) අග්‍ර සවි කරලා අනිත් අග්‍රය(ඒ කියන්නේ (+)අග්‍රය) බෝඩ් එකේ තියෙන 3.3V  කියන තැනට 220onm විතර resistor එකක් එක්ක ඇල්ලුවොත් ඒ LED එකත් Blink වෙනවා...කරලා බලන්නකෝ...මෙකට Project Board එකක් ගත්තොත් ලේසි...පාඩුවක් වෙන්නේ එකක් ගත්ත කියල මොකද අපි ඉස්සරහට කරන Project බොහොමයකටම අපිට Project Board එකක් ඕනේ වෙන්නේ නෑ....මේකක් සාමාන්‍යයෙන් RS.250-300ක් විතර වෙන්නේ....තව අපි ඉස්සරහට කරන Project වලට jumper cabels එහෙමත් ඕනේ වෙනවා...ඒවත් RS.200ක් විතර වෙනවා...මේ ඔක්කොම බඩු ටික ඔයාලට ලේසියෙන්ම ගන්න පුළුවන් කොටුවේ පලවෙනි හරස් වීදියේ යුනිටෙක් කියන කඩෙන්...

ඔන්න එහෙනම් පහලින් බලා ගන්නකො..අද අපි ලියපු සම්පුර්ණ ප්‍රෝග්‍රෑම් එක...
int ledpin = 13;

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

void loop() {
  digitalWrite(ledpin, HIGH);
  delay(1000);
  digitalWrite(ledpin, LOW);
  delay(1000);
}
දැන් අපේ ප්‍රෝග්‍රෑම් එක සම්පූර්ණයි! දැන් ඉතින් Arduino IDE එකේ තියෙන Upload Button එක ඔබලා ප්‍රෝග්‍රෑම් එක බෝඩ් එකට upload කරන්න. 


                                                Upload Button Position
වැඩේ හරියට කළානම් LED එක නිවී නිවී පත්තු වෙන්න ඕන. මේ වීඩියෝ එක බලන්න....

 
ඔන්න එහෙනම් අදට පාඩම ඉවරයි...මීළඟ ලිපියෙන් නයිට් රයිඩර් සර්කිට් එකක් හදන්න කියල දෙන්න හිතන් ඉන්නවා.arduino වලින්...
එහෙනම් එකට පහල තියෙන බඩු ටික හොයා ගෙන ලෑස්ති වෙලා ඉන්නකෝ...
  1. Arduino Board එක (ඕන ජාතියක එකක්) with the USB cable
  2. LED - 10
  3. 220 ohm Resistor -1
  4. Jumper Cables (Male to Male)
  5. Breadboard -1
ඔන්න එහෙනම් මම යනවා.....අද පාඩමේ මොකක් හරි දෙයක් කියන්න තියෙනවනම් Comment එකක් දාලා අහන්නකො...
එහෙමනම් අපි කැපුනා.
සුභ දවසක්!

0 comments:

Post a Comment