fbpx
Arduino පාඩම 03: Push button ස්විචයක් සමග වැඩ කිරීම
Arduino pushbutton
Arduino පාඩම 3

3.Push Button ස්විචයක් සමග වැඩ කිරීම

Push Button ස්විච්චයක් මඟින් LED බල්බයක් on/off කරමු.

Components Required

Magicbit
Buy

හැඳින්වීම

මේ පාඩමේදී push button ස්විචයක් digital input එකක් ලෙස භාවිතා කරන ආකාරය පැහැදිලි කරන අතර එය භාවිතා කර LED බල්බයක් හෝ වෙනත් උපාංඟයක් on/off කරන ආකාරය ඉගෙන ගත හැකිය.

පාඩමේ අරමුණ

මේ පාඩම මඟින් ඔබට..
  • Digital Read
  • IF-ELSE conditions
  • Variables

ගැන අවබෝධයක් ලබාගත හැකිය

සිද්ධාන්තය

Digital input මගින් ඔබට ඩිජිටල් සිග්නල් කියවීමට හැකියාව ලබාදේ.එවිට Microcontroller මඟින්, ලබාදී ඇති pin එකෙහි අගය 3.3v (හෝ 5v ලෙස යොදාගන්නා microcontroller එක මත වෙනස්වේ) අගයට ආසන්න වූ විට HIGH ලෙසත් 0v අගයට ආසන්න වූ විට LOW ලෙසත් හඳුනාගනී. මේ අගයන් යොදාගෙන විවිධ වූ කාර්යයන් සිදු කිරීමට හැකිය.

ක්‍රමවේදය

Magicbit උපාංඟය පුවරුවට සවිකෙරූ push-button  ස්විච් දෙකක් සමග පැමිණේ. වැඩසටහන සැකසීමට මෙම ස්විච් දෙකෙන් D34 අග්‍රයට සම්බන්ධ ස්විචය තෝරාගනිමු. Push button ස්විච්ච දෙකම ඇතුලතින් pulled up කර ඇත. (pullups/pulldowns ගැන වැඩිදුර දැන ගැනීමට මෙම සබැඳිය භාවිතා කරන්න), එනම් බොත්තම තදකර නොමැති අවස්ථාවේ දී 1(HIGH) ලෙසත්, බොත්තම තදකර ඇටි අවස්ථාවේදී 0(LOW) ලෙසත් ආදානය (input) ලැබේ.

 

https://github.com/Ruwatech/docu-Magicbit/blob/master/Resources/image7.png?raw=true

පෙර උදාහරණයේදී මෙන් මෙහි අගය බලාගැනීමට පුවරුවට සම්බන්ධ LED බල්බයක් භාවිතා කරන අතර ඒ සඳහා D27 අග්‍රයට සම්බන්ධ රතු පැහැති LED බල්බය යොදා ගමු.

මුලින්ම pinMode භාවිතා කර ස්විච්චය INPUT ලෙසත් LED බල්බය OUTPUT ලෙසත් සකසාගත යුතුය. ඊලඟට වැඩසටහනේ loop කොටසෙන් ස්විච්චයේ අවස්ථාව පරික්ෂා කර එය  buttonState  නම් int වර්ගයේ විචල්‍ය‍යකට  (variable) ඇතුලත් කරගනු ලබයි. (මෙම සබැඳිය ඔස්සේ arduino හි භාවිතා වන data types ගැන වැඩිදුර දැන ගැනීමට හැකිය).

දැන් අපට if block එකක් භාවිතා කර ස්විචය පවතින අවස්ථාවට අනුව LED බල්බය දැල්වීම, නිවීම සිදුකල හැකිය. එනම් ස්විචය තදකල විට බල්බය දැල්වීමත්, අතහැරිය විට බල්බය නිවීමත් සිදුවිය යුතුවේ.

Code

 

void setup(){
   pinMode(27,OUTPUT);
   pinMode(34,INPUT);
}
void loop(){

 int buttonState = digitalRead(34);
 if(buttonState == LOW){
   digitalWrite(27, HIGH);
 }else{
   digitalWrite(27, LOW);
 }
}

පැහැදිලි කිරීම

 

digitalRead(pin No): ලබාදෙන pin එකක් කියවා එහි අගය ඩිජිටල් අගයක් ලෙස HIGH හෝ LOW මගින් ලබා දෙයි.

IF/ELSE: Digital අගයක් මත කොන්දේසියක් මගින් තීරණයක් ගැනීමට භාවිතා කරයි. if කොටසේ යොදා ඇති කොන්දේසිය සත්‍ය නම් එහි සඟල වරහන් අතර ඇති කේතය ක්‍රියාත්මක කරන අතාර එම කොන්දේසිය අසත්‍ය උවහොත් else කොටසේ ඇති සඟලවරහනට අදාල කේත ක්‍රියාත්මක වේ.

if(කොන්දේසිය){
//කොන්දේසිය සත්‍ය නම් සිදු විය යුතු දේ
}else{
//කොන්දේසිය අසත්‍ය නම් සිදු විය යුතු දේ
}

 

සටහන: ස්විචයක් එබීම මගින් LED බල්බයක් දිගටම දැල්වීමට හෝ දිගටම නිවී තිබීමට වැඩසටහනක් සකස්කරන්න. එනම් එක් වරක් ස්විචය තදකර අතහැරිය පසු දැල්වීමටත්, නැවත තදකර අතහැරිය පසු නිවීමටත් අවශ්‍ය වේ.. (ඉගිය: බොත්තම එබීමෙන් බල්බයේ අවස්ථාව වෙනස් වීම මතක තබා ගැනීමට ‘remember’ ලෙස විචල්‍ය‍යක් සකසා ගන්න).

Related Posts
1 Comment
Senitha Yaneth

In following code example “S” (void Setup) should be in lower case
void Setup(){
pinMode(27,OUTPUT);
pinMode(34,INPUT);
}

Leave a Reply