මෙම පාඩම මගින්, LED බල්බ වල ආලෝකය පාලනය කිරීමට Arduino භාවිතා කරන්නේ කොහොමද කියලා බලමු. මෙය ඉතා සරල ව්‍යාපෘතියකි. එහෙත්, අනෙක් Sensors සහ Module බොහෝමයක් ක්‍රමවත්ව සකසා ඇති හෙයින් ඔබ එය කලින් කල යුතු ආකාරය ඉගෙන ගෙන තිබිය යුතුයි.

පළමුව මම ඔබට පෙන්වනු ලබන්නේ Arduino බෝර්ඩ් එකේ on-board LED එක blink කරන ආකාරයි. ඉන්පසුව මම arduino බෝර්ඩ් එකේ digital pin එකකට සම්බන්ද වු LED එකක් blink  කරන ආකාරය පෙන්වන්නම්. ඉන්පසු LEDs flashing rate එක සහ LED එකට බලය සපයනු ලබන pin එක වෙනස් කරගන්නා ආකාරය බලමු. අවසානයේදී multiple LEDs  පාලනය කරන්නේ කොහොමද කියලා පෙන්වන්නම්. ආරම්භ කිරීමට පෙර, ඔබේ පරිගණකය මත  Arduino IDE software ස්ථාපිත කර තිබිය යුතුය.

විද්‍යුත් සංඥා (Electrical Signal)


Arduino බෝර්ඩ් එකක් මොඩියුල හා සංවේදක සමඟ සන්නිවේදනය කරන්නේ විදුලි ධාරාවක් යැවීම හෝ නැවත්වීම මගින්. එනම් එය ද්විමය ආකාරයේ(binary code) පවතින 1 හා 0 ට සමාන වේ. ධාරාව පවතින විට එය “HIGH signal” එකක් ලෙස හැඳින්වේ. එය ද්විමය කේතයේ “1” ට සමාන වේ. ධාරාවක් නැති විට, එය “LOW signal” එකක් ලෙස හැදින්වෙන අතර එය  ද්විමය කේතයේ “0” ට සමාන වේ. ධාරාව සක්‍රියව හෝ අක්‍රියව ඇති කාලය මිනිත්තු සිට මයික්‍රෝ තත්පර (microsecond)  දක්වා වෙනස් කළ හැකිය.

Arduino බෝර්ඩ් එකේ LED එක පාලනය කිරීම


LED එක සක්‍රිය කිරීම සඳහා අර්ඩිනෝව විසින්  HIGH signal එකක් එහි pin එකකට යැවිය යුතුය. LED අක්‍රිය කිරීම සඳහා,  pin එකට LOW signal එකක් යැවිය යුතුය. HIGH  signal එක සහ LOW signal එක යවන කාලය වෙනස් කිරීමෙන් LED එක blink වන ආකාරයට සැදිය හැකිය.

Arduino බෝර්ඩ් එකෙහි digital pin 13  සමග සම්බන්ධවන රැහැන් සහිත  on-board surface mount LED එකක් ඇත. එය  “L” ලෙස ඊළගට ඇත.

LED flashing ලබා ගැනීම සදහා, Arduino වෙත “Blink” වැඩසටහන upload කරන්න:

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

මිලිතත්පර 1000 ක් යනු තත්පර එකකි. එනම් LED ය දැන් මිලිතත්පර 1000 ක දැල්වී තිබෙන අතර මිලිතත්පර 1000 ක් නිවී ක්‍රියාත්මක විය යුතුය. (1000 milliseconds = 1 second).

6 වැනි පේළියේ ඇති delay() function එක මගින් 1000 ms දක්වා pin 13 හි දී HIGH  signal එකක් පවත්වා ගනී. 8 වැනි පේළියේ ඇති delay() function එක මගින් 1000 ms දක්වා pin 13 හි LOW signal තබගනී. delay() functions හි වරහන් තුල අංකනය වෙනස් කිරීම මගින් ක්‍රියාත්මක වේගය වෙනස් කළ හැකිය.

පිටතින් සම්බන්ධ කරන ලද LED එකක් පාලනය කිරීම


බාහිරින් සම්බන්ධ කරන ලද  LED බල්බයක් පාලනය කරන ආකාරයටම විදුලිය සපයන ලද වෙනත් මොඩියුලයක් මෙම ආකාරයෙන්ම පාලනය කළ හැකිය.

LED බල්බයට ශ්‍රේණිගතව ප්‍රතිරෝධකයක් සම්බන්ධ කළ යුතුය.එසේ නොවුවහොත්, වැඩි වෝල්ටීයතාව සහිත ධාරාවක් ලැබී ඉක්මනින් LED ය පිලිස්සී යා හැකිය. මෙයට ප්‍රතිරෝධකය 100 Ohms සහ 10K Ohms අතර ඕනෑම අගයක් භාවිතා කළ හැකියි. අඩු අගය සහිත ප්‍රතිරෝධක මඟින් වැඩි ධාරාවක් ලැබෙන නිසා  එමගින් LED දීප්තිමත් වේ. ඉහළ අගය සහිත ප්‍රතිරෝධක මගින් වත්මන් ධාරා ප්‍රවාහනය සීමා කරනු ලැබේ. එමගින් LED දීප්තිය අඩු වේ.

එසේම, බොහෝ LED වල ධ්‍රැවියතාවයන් ඇති අතර, එයින් අදහස් වන්නේ ඒවා නිවැරදි මාර්ගයට සම්බන්ධ කළ යුතු බවයි. සාමාන්‍යයෙන් LED වල කොට අග්‍රය ඍන (-) පැත්තට සම්බන්ධ වේ.

පහත දැක්වෙන රූපයේ දැක්වෙන පරිදි ඔබ LED එක pin 13 ට සම්බන්ධ කළහොත්, LED ආලෝකය සක්‍රිය සහ අක්‍රිය කිරීම සඳහා ඉහත අප භාවිතා  කේතයම භාවිතා කළ හැකිය.

 

PIN අංකය වෙනස් කිරීම


LED බල්බයට විදුලි බලය ලබා දීම සඳහා වෙනත් pin එකක් භාවිතා කිරීමට අවශ්‍ය නම් එය වෙනස් කිරීම පහසුය. උදාහරණයක් ලෙස ඔබට pin 13 වෙනුවට PIN 11 භාවිතා කිරීමට අවශ්‍ය නම්,  පළමුව pin 13 සිට pin 11 දක්වා සංඥා වයරය ගෙන යන්න:

       

දැන් ඔබට program එකේ කේතය සංස්කරණය කිරීම අවශ්‍ය වන අතර Arduino බෝර්ඩ් එක විසින් ප්‍රතිදාන pin එක ලෙස භාවිතා කරන්නේ කුමන pin එකද යන්න තීරණය කරයි. 2 වැනි පේළියට අනුව එය සිදුවේ:

pinMode(13, OUTPUT);

pin 11 භාවිතා කිරීම සඳහා, ඔබ විසින් 13 සිට 11 දක්වා වෙනස් කළ යුතුය:

pinMode(11, OUTPUT);

මීලඟට ඔබ විසින් HIGH  සහ LOW signal ලබා දෙනු ලබන Arduino බෝර්ඩ් එකට යෙදු කේතය වෙනස් කිරීමට අවශ්‍ය වනු ඇත. එය digitalWrite() function එක ඇති සෑම තැනකදීම සිදුවේ. ඉහත වැඩසටහන තුළ, 5 වන පේළියේ එකක් සහ 7 වන පේළියේ දී එය යොදාගෙන ඇත.

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

Pin 11 ඉහළ සහ පහළ සංඥා ලබා ගත යුතු බව නිශ්චය කිරීම සඳහා, ඔබ විසින් 13 සිට 11 දක්වා වෙනස් කළ යුතුය:

digitalWrite(11, HIGH);  
digitalWrite(11, LOW);

අවසන් program එක පහත පරිදි වේ:

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

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

upload කිරීමෙන් අනතුරුව, LED බල්බය 11 වන pin  එකට සම්බන්ධ වූ විට එය LED එක ඉතත 13 pin එකේදී යොදාගත් ආකාරයටම  දර්ශණය වේ.

 LED කිහිපයක් පාලනය කිරීම.


ඔබට ප්‍රමාණවත් තරම් pins ලබා ගත හැකි නම් ඔබට අවශ්‍ය පරිදි LED බල්බ ගණනාවක් පාලනය කළ හැකිය. දැන් අපි LED බල්බ 3ක් එකිනෙක දැල්වෙන ආකාරයට සකස් කරමු.. අප කළ යුතු දේ වන්නේ pin 11 සඳහා කේතය අනුපිටපත් කිරීම සහ පහත පරිපථයේ ආකාරයට  pin අංක pin අංක 12 සහ 13ට වෙනස් කිරීමයි.

උදාහරණයක් පහත දැක්වේ:

void setup() {  
 pinMode(12, OUTPUT); 

pinMode(13, OUTPUT); 

} 

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

මෙඅම ප්‍රෝග්‍රෑම් එක අප්ලෝඩ් කළ විට LED දෙකේම දැල්වෙන ආකාරය දැකීමට ඔබට හැකියි. මුලින් පළමු බල්බය දැල් වී තත්පර එකකට පසු ඊලග බල්බය දැල්වේ. ඊට පසු තවත් තත්පරයකට පසු පළමු බල්බය නිවී ඊලග බල්බයත් නිවී යයි.

Arduino ප්‍රෝග්‍රෑම් එකකදී ඉහල සිට පහළ දක්වාම code පේලි ක්‍රියාත්මක වේ. එය එක් එක් පේළිය කියවා ඊළඟ පේළිය වෙත පෙර පේලියේ කාර්යය ඉටු කරයි. අවසානය දක්වා එය කියවා අවසන් වූ පසු එය 6 මාර්ගයේ නැවත නැවතත් ආරම්භ වේ.

ඉහත program එකේදී  මෙම කේතය මේ ආකාරයට ක්‍රියාත්මක වේ:

  1. HIGH signal එක  pin 12ට  යැවේ.
  2. 1000ms දක්වා රැදී සිටින්න.
  3. HIGH signal එක pin 13ට යැවේ.
  4. 1000ms දක්වා රැදී සිටින්න.
  5. LOW signal එක pin 12ට යැවේ.
  6. 1000ms දක්වා රැදී සිටින්න.
  7. LOW signal එක 13ට යැවේ
  8. 1000ms දක්වා රැදී සිටින්න.
  9. නැවතත් පළමු පියවරට යන්න.

ඒ LED දෙකම එකවර  දැල්වීම  සඳහා, මෙම program එකේ දැක්වෙන ආකාරයට, එක් එක් pin එකෙහි HIGH සහ LOW signal අතර ප්‍රමාද වෙලාව ඉවත් කළ යුතුය:

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

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

දැන් LED දෙකම එකවර ක්‍රියාත්මක විය  යුතුය. මෙම කාර්යය පහත ආකාරයට ක්‍රියාත්මක වේ:

  1. HIGH signal එක pin 12ට  යැවේ.
  2. HIGH signal එක pin 13ට යැවේ.
  3. 1000ms දක්වා රැදී සිටින්න.
  4. අඩු සංඥාව pin 8ට යැවේ.
  5. LOW signal එක pin 12ට යැවේ
  6. LOW signal එක pin 13ට යැවේ
  7. 1000ms දක්වා රැදී සිටින්න.
  8. නැවතත් පළමු පියවරට යන්න.

දැන් ඔබ Arduino බෝර්ඩ් එකක් සමඟ LED බල්බ වල ආලෝකය පාලනය කරන්නේ කෙසේදැයි යම් තරමක් දුරට අවබෝධ වී ඇතැයි සිතමි. මෙහි තවත් කොටසක් ඊලග පාඩමෙන් බලාබොරොත්තු වන්න. 

මෙම ව්‍යාපෘතිය සම්බන්ධව ඔබට කිසියම් ප්‍රශ්නයක් හෝ අදහසක් තිබේ නම් පහතින් සටහනක් තබන්න. අප එයට පිළිතුරු ලබා දෙන්නෙමු. අනිවාර්යෙන් subscribe කරන්න. අපි නව පාඩමක් ඇතුලත් කර සැනින් ඔබට e-mail එකක් එවන්නෙමු.