if...else if...else වලින් තීරණ ගන්නෙ මෙහෙමයි


සුබ දවසක් හැමෝටම. අද පෝස්ට් එක ලියන්නේ if...else if...else මෙන්න මේ arduino coding වලදි වැඩිපුරම තීරණ ගන්න යොදාගන්න function ටික ගැන.



මේක arduino coding වලදි ලියන්නෙ මෙන්න මේ විදියට.

if(condition){
//condition එක true නම් වෙන්න ඕනෙ දේ
}
else{
//condition එක false නම් වෙන්න ඕනෙ දේ
}

මේකෙන් කරන්නෙ අපි condition එක විදියට දෙන දේ සත්‍ය (true) නම් if එකේ body එක ඇතුලෙ (ඒ කියන්නෙ {} මේ වරහන් තුල) අපි දාලා තියන කෝඩ් ටික execute කරනවා. condition එක අසත්‍ය (false) නම් else එකේ body එක තුල ඇති කෝඩ් ක්‍රියාත්මක කරනවා. අපි condition එක විදියට දෙන්නෙ අපිට පරීක්ශා කරන්න අවශ්‍ය දේ. උදාහරණයක් විදියට අපිට යම් කිසි සෙන්සරයකින් signal එකක් දෙනවද නැද්ද බලන්න ඕනෙ නම් අපිට ඒ කෝඩ් කොටස මේ විදියට ලියන්න පුලුවන්.

if(digitalRead(2) == HIGH){
   Serial.println("sensor high");
}
else{
  Serial.println("sensor low");
}

මෙතනදි වෙන්නෙ අපි ආඩුයිනෝ එකේ D2 pin එකට සවි කරපු digital සෙන්සරය HIGH ප්‍රතිදානයක් දෙනවා නම් serial monitor එකේ "sensor high" ලෙසත්, සෙන්සරයේ ප්‍රතිදානය LOW නම් "sensor low" ලෙසත් පෙන්වීමයි. (serial monitor ගැන ලිපිය මෙතනින් බලන්න) මෙතනදි මම භාවිතා කරන්නෙ digital light sensor එකක්.

පහතින් බලාගන්න wiring diagram එක.

මේකට අවශ්‍ය code එක මෙතනින් download කරගන්න.

ඔයාලට if...else ගැන යම් වැටහීමක් ලැබෙන්න ඇති කියලා හිතනවා ඉහත උදාහරනයෙන්.

මේ තියෙන්නෙ මම ඔය පරිපතය අටවගත්ත විදිය.

උඩ කෝඩ් එකේ ඔයාලට මෙන්න මේ "==" සලකුණ තරමක් නුහුරු දෙයක් වෙන්න ඇති. අපි බලමු ඒ == ලකුනෙන් කරන්නෙ මොකක්ද කියලා.

"==" මේ සමාන ලකුණු දෙකෙන් අපි බලන්නෙ එය දෙපස අපි දාපු දේවල් එකිනෙකට සමානද කියලා. මෙතනදි නම් digitalRead(2) කියන එකෙන් ලැබෙන අගය HIGH කියන එකට සමානද බැලීම තමයි සිදු වෙන්නෙ. ඒ දෙක සමාන නම්,
"digitalRead(2) == HIGH" මෙන්න මේ අපි ලියපු condition එකම true බවට පත් වෙනවා. ඒ වගේම සමාන නැත්නම් false වෙනවා. මෙන්න මේ වෙලාවෙදි අපේ if එක පහත විදියට සරල කරන්න පුලුවන් තේරුම් ගැනීමේ පහසුවට.

if(true){
Serial.println("sensor high");
}
else{
  Serial.println("sensor low");
}

දැන් මේකෙ output එක අනිවාර්යයෙන්ම serial monitor එකේ පෙන්වන්නෙ "sensor high" විදියට.
condition එක true නම් else කොටස වැඩ කරන්නෙ නැහැ.

ඒ වගේම මේකෙ අනිත් පැත්ත උනොත්, ඒ කියන්නෙ condition එක false උනොත් if කොටස ඇතුලෙ තියන කෝඩ් වැඩ කරන්නෙ නෑ. එතකොට වැඩ කරන්නෙ else කොටස. අන්න ඒ වෙලාවෙදි output එක තමයි "sensor low" කියන එක serial monitor එකේ පෙන්වීම.

එතකොට දෙපස තියන කොටස් එකිනෙකට අසමානද බලන්නෙ කොහොමද? ඒකට තමයි "!=" මෙන්න මේ සලකුණ තියෙන්නෙ. මේක code එකට යොදාගන්නෙ මෙන්න මේ විදියට

if(කොල්ලො != කෙල්ලො){

}
else{

}

 ඔයාලා දන්නවා නේ, කොල්ලො කෙල්ලොන්ට සමාන නෑ කියලා. ඒ කියන්නෙ condition එක true. ඒ නිසා අනිවාර්යයෙන්ම වැඩ කරන්නෙ if එක ඇතුලෙ තියන ටික.

ඒත් කවද හරි දවසක කොල්ලොයි කෙල්ලොයි සමාන වෙලා condition එක false උනොත් අන්න එතකොට වැඩ කරන්නෙ else එක.

මීට අමතරව මෙන්න මේ ටිකත් ඕන වෙනවා coding වලදි

අපි දෙපස තියන දේවල් A සහ B ලෙස ගමු.

දැනට ඉගෙනගත්තු දේවල් වලට අනුව A හා B සමානද කියලා බලන්නෙ මෙහෙම.
if(A == B)

A හා B අසමානද කියලා බලන්නෙ මෙහෙම.
if(A != B)

ඔයාලා දැන් ඔය දෙක දන්නවා නේ. එතකොට කොහොමද A, Bට වඩා විශාලද කියලා බලන්නෙ? මෙන්න මෙහෙම.
if(A > B)

එහෙනම් A, Bට වඩා කුඩා ද බලන්නෙ මෙහෙම.
if(A < B)

එතකොට ">=" මේ සලකුණ මොකක්ද? මේකෙන් බලන්නෙ A, B ට වඩා විශාල හෝ සමානද කියලා. ලියන්නෙ මෙන්න මෙහෙම.
if(A >= B)

මෙතනදි A, Bට වඩා විශාල උනත් condition එක true වෙනවා. ඒ වගේමයි A, Bට සමාන උනත් condition එක true වෙනවා.

condition එක false වෙන්න නම් එක්කො A, Bට වඩා කුඩා වෙන්න ඕනෙ.

ඒ වගේමයි A, B ට වඩා කුඩා හෝ සමානද කියලා බලන්නෙ මෙහෙම.
if(A <= B)

ඔය කියපු ඒවට coding වලදි කියන නම් තමයි පහතින් තියෙන්නෙ.

== equal to
!= not equal to
> grater than
< less than
>= grater than or equal to
<= less than or equal to

කෝඩ් ලියද්දි ඕවා කියව කියව ලියන්න. ගෙදර අය නම් හිතයි උබට පිස්සු කියලා. ඒත් එහෙම කියව කියව code කරද්දි code වරදිනවා අඩුයි.

යාලුවනේ ඔයාලට මේ එක්කම arduino වලදි පාව්ච්චි වෙන logic ගැනත් කියලා දුන්නා නම් හොදයි. ඒත් ඒ ටිකත් මෙතනම ලිව්වොත් ඔයාලට පැටලෙන නිසා ඒ ගැන වෙනම ලිපියක් ලියන්නම්.

හරි. දැන් ඔයාලා if...else දන්න නිසා else if ගැනත් කියලා දෙන්නම්. අපිට condition එකකට වැඩි ගනනක් පිලිවලට check කරන්න ඕනෙ නම් අපි if හා else අතරට else if කියන coding block වර්ගය දානවා. ඒක ලියන්නෙ මෙන්න මෙහෙම.

if(condition 1){

}
else if(condition 2)

}
else{

}

මෙතනදි condition 1 සහ condition 2 කියන්නෙ අපිට check කරගන්න අවශ්‍ය දේවල් ටික. code එක execute වෙද්දි මුලින්ම if එක ඇතුලෙ තියන condition 1 එක true ද බලනවා. true නම් if එකේ body එක execute වෙනවා. එතනින් පස්සෙ else if එක හෝ else කොටස් check කරන්නෙ නැහැ. නමුත් පලවෙනි if එක false උනොත් අන්න එතකොට else if එක ඇතුලෙ තියන condition 2 එක check කරනවා. කලින් විදියටම ඒ condition 2 එක true නම් මේ else if එකේ body එක ඇතුලෙ තියන code ටික වැඩ කරන්න ගන්නවා. else if එකත් false නම් තමයි අන්තිමට තියන else එක වැඩ කරන්නෙ.

ඉතින් ඔයාලට condition ගොඩක් check කරන්න තියනවා නම් ඔයාලට පුලුවන් else if අවශ්‍ය ගනනක් ඔයාගෙ code එකට දාලා අවශ්‍ය condition එකින් එක check කරගෙන යන්න. ඒක ලියන්නෙ මෙන්න මෙහෙම.

if(condition 1){

}
else if(condition 2){

}
else if(condition 3){

}
else{

}

ඔන්න ඔහොම.

if......else if...else භාවිතා කරද්දි සැලකිලිමත් වෙන්න ඕනෙ කරුනු ටිකක් කියලා ම මම post එක ඉවර කරන්නම්.


  • ඔයාලට අවශ්‍ය නම් else දාන්නෙ නැතුව if විතරක් උනත් පාවිච්චි කරන්න පුලුවන්. මේක ගොඩක්ම වැදගත් වෙන්නෙ අපි check කරන condition එකේ true අවස්තාවට අදාල දේවල් විතරක් කරගෙන false අවස්තාවෙදි ආදා වගේ ලිස්සලා යන්න ඕනෙ උනාම.
if(condition){

}

  • if විතරක් තනියම ලියන්න පුලුවන් උනාට මුලින් if එකක් නැතුව else if හෝ else කෑලි තනියම ලියන්නට බැරිය. ලිව්වොත් කෝඩ් එකේ errors පෙන්වනු ඇත.
  • ඕනි නම් else එක නැතුව if සමග else if කැමති ගනනක් ලිවීමට හැක. මෙන්න මෙහෙම.
if(){

}

else if(){

}
else if(){

}


  • කැමති නම් {} මේවා නැතුව උවද ලිවිය හැකිය. (මම නම් එහෙම ආසා නැත) එවිට ඔබ කලින් {} මේ සගල වරහන් තුල ලියූ code කෑලි if() එක ඉදිරියෙන් හෝ යටින් ලිවිය හැක. මෙන්න මෙහෙම.
if(digitalRead(2) ==HIGH) Serial.println("sensor high");
else Serial.println("sensor low");

හෝ

if(digitalRead(2) == HIGH)
Serial.println("sensor high");
else
Serial.println("sensor low");

එතකොට ස'ර් if එකේ () මේවා නැතුවත් ලියන්න පුලුවන්ද?

ස්'ර් :- තමුසෙට පිස්සුද ඕයි!!!
ආඩුයිනෝ IDE එක :- error!!!

එහෙනම් තවත් මේ වගේ ලිපියකින් හමු වෙමු. අනිත් අයටත් බලන්න share කරන්න.

Comments

Popular posts from this blog

Arduino එකෙන් .wav සින්දු අහමු

Arduino IO Pin සමග ගනු දෙනු - Part 2

Arduino Coding පටන්ගමු