Arduino IO Pin සමග ගනු සහ දෙනු
සුබ දවසක් යාලුවනේ... අද post එක නම් ඔයාලට ගොඩක් වැදගත් වෙයි. මොකද, අද කියලා දෙන්නෙ arduino එකේ තියන IO (Input / Output) pins වලින් වැඩ ගන්නෙ කොහොමද කියලා. මම කලින් post එකක් ගෙනාවා arduino pin එකක් input එකක් හෝ output එකක් විදියට හදුන්වාදෙන්නෙ කියලා. ඒ දැනුම මෙතනදි ගොඩක් වැදගත් වෙනවා. ඉතින් ඒක කියවපු නැති අය මෙතනින් ගිහින් මුලින්ම ඒක බලලා ඉන්න.
අපි මේ ලිපිය කොටස් හතරකට බෙදාගමු.
1 - කොහොමද Arduino එකේ digital pin එකක් On / Off කරන්නෙ
2 - කොහොමද arduino එකේ digital pin එකකට පිටතින් දෙන signal එකක් read කරන්නෙ
3 - කොහොමද arduino එකෙන් PWM විදියට Analog output එකක් ගන්නෙ
4 - කොහොමද arduino එකේ analog input pin වලින් අපි පිටතින් ලබා දෙන analog signal එකක් read කරන්නෙ
ඉතින් මේ මූලික දේවල් ටික ඉගෙනගත්තම ඔයාට arduino එකෙන් පොඩි පොඩි වැඩ පෙන්නන්න යම් කිසි හැකියාවක් ලැබේවි. හරි, වැඩි කතා නැතුව යමු පලවෙනි කොටසට.
කොහොමද Arduino එකේ digital pin එකක් On / Off කරන්නෙ
මේ වැඩේට අපිට මෙන්න මේ දේවල් ටික අවශ්ය වෙනවා.
1 x Arduino UNO
1 x LED
1 x 220 Ohm Resistor
2 x Jumper Wires
1 x Breadboard
මෙතනදි අපි කරන්න යන්නෙ arduino එකේ D13 කියන digital pin එකට LED එකක් සවි කරලා ඒක On / Off කරන්නෙ කොහොමද කියලා බලන එක. ඔයාලට පේනවා ඇති මම 220 Ohm Resistor එකක් මෙතන භාවිතා කරලා තියෙනවා. ඒකට හේතුව තමයි arduino එකෙන් එන 5V වලින් LED හානි වෙන්න ඉඩ තියන නිසයි.
මුලින්ම මේ විදියට පරිපතය අටවාගන්න.
මෙතනින් arduino code එක download කරගන්න.
code එක කියවලා බැලුවම ඔයාලට තේරෙනවා ඇති අපි මෙතනදි යොදාගෙන තියෙන්න arduino programming වල තියෙන digitalWrite() කියන function එක. මේකෙන් කරන්නෙ arduino pin එකක state එක HIGH හෝ LOW බවට පත් කරන එක. තවත් විදියට කිව්වොත් අදාල pin එකෙන් 5V පිටතට ලබාදීම හෝ 0V පිටතට ලබා දීම.
මේ digitalWrite() function එකට අපි parameters දෙකක් දෙන්න ඕනෙ මෙන්න මේ විදියට.
digitalWrite(pin, state);
මෙතනදි pin කියලා කියන්නෙ අපි arduino එකේ output එක ලබාගන්න pin එක. මේකට අපිට D0 ඉදන් D13 දක්වා ඕනෙම pin එකක් දෙන්න පුලුවන්. අර මම කලින් බලන්න කිව්ව post එක බැලුවා නම් ඔයාලට මතක ඇති අපිට ඕනෙ නම් මේ pin එක විදියට A0 ඉදන් A5 pin වලින් එකක් උනත් දෙන්න පුලුවන් කියලා.
state කියන්නෙ අපි තෝරපු pin එක ON කරනවාද නැත්නම් Off කරනවාද කියන දේ. On කරන්න ඕනෙ නම් අපි ලියන්නෙ HIGH කියලා. Off කරනවා නම් state එක වෙන්නෙ LOW කියන එක. code එක බැලුවම ඔයාලට මේ දේ හොදින්ම පැහැදිලි වේවි.
ඉතින් මේ විදියට 5V (HIGH) එන වෙලාවට LED එක දැල්වෙනවා. ඒ වගේම 0V (LOW) අවස්තාවෙදි LED එක නිවෙනවා.
මේ විදියට අපිට ඕනෙ නම් LED එක වෙනුවට Buzzer එකක් හෝ transistor එකක්, relay එකක් සවි කරලා මේ දේ වෙනත් නිර්මානයකට උනත් ගන්න පුලුවන්. මම කලින් post එකක දාපු LED රටා හදන්නත් භාවිතා කලේ මේ digitalWrite() function එකම තමයි. ඒ video එක බලන්න මෙතනින්.
දැන් යමු ලිපියේ දෙවනි කොටසට.
2 - කොහොමද arduino එකේ digital pin එකකට පිටතින් දෙන signal එකක් read කරන්නෙ
මුලින්ම මම මේකෙ ප්රායෝගික පැත්ත ගැන කියන්නම්. සමහර arduino project වලදී අපිට push button, digital output එකක් දෙන විවිද sensor වර්ග භාවිතා කරන්න වෙනවා. ඉතින් මේ දේවල් arduino එකට සම්බන්ද කරාට පස්සෙ ඒවගෙන් එන signal එක HIGH ද LOW ද කියල බලන්න තමයි අපි මේ කොටසෙන් ඉගෙනගන්නෙ.
අපි මේක අහදාබලන්න යොදාගන්නෙ push button එකක්.
මෙතනදි අවශ්ය වෙන උපාංග ටික තමයි මේ...
1 x Arduino UNO
1 x Push Button
1 x 10K Ohm Resistor
3 x Jumper Wires
1 x Breadboard
මෙතනදි වෙන්නෙ push button එකෙන් එන signal එක arduino එකේ D2 කියන pin එකෙන් read කරලා ඒක HIGH නම් Serial Monitor එකේ "button pressed" කියලත්, LOW නම් "button released" කියලත් print කරන එක. Serial Monitor එක ගැන දන්නෙ නැත්නම් මගේ කලින් ලිපියක ඒ ගැන කියලා දීලා තියෙනවා. මෙතනින් ඒක බලන්න.
මේ විදියට පරිපතය අටවාගන්න.
මෙතනදි ඔයාලට පේනවා ඇති button එක press කරද්දි arduino එකේ 5V pin එකෙන් එන current එක button එක හරහා arduino එකේ D2 pin එකට ලැබෙනවා. ඔයාලට ප්රශ්නෙකට තියෙන්නෙ 10k ohm resistor එක දාලා තියෙන්නෙ මොකටද කියලා? ඒක දාලා තියෙන්නෙ button එක press කරලා නැති වෙලාවට arduino එකේ D2 pin එක 0V වලට සම්බන්ද කරන්න. මේකට කියන්නෙ arduino pin එකක් pull-down කරනවා කියලා. ඔය resistor එකට කියන්නෙ pull-down resistor එක කියලා. මේකෙදි වෙන්නෙ හැම වෙලාවෙම arduino pin එක ප්රතිරොදයක් හරහා 0V මට්ටමට ගේන එක. එහෙම කලේ නැත්නම් arduino pin එක button එක release කරලා තියනකොට ඒ pin එක LOW කියලා හදුනාගන්නෙ නැහැ. (එතකොට arduino එකෙන් HIGH හෝ LOW දෙවිදියටම ගන්නවා) එතකොට arduino එක නිවැරදිව අපේ button එක read කරන්නෙ නැහැ. මේ ගැටලුවට විසදුම තමයි pull-down resistor එකක් යොදාගැනීම. මේකට අපි අරන් තියෙන්නෙ සාමන්ය 10K Ohm resistor එකක්.
දැන් යමු coding පැත්තට. මේ කොටසෙ code එක මෙතනින් download කරගන්න.
code එක බැලුවම තේරෙන්න ඇති අපි මෙතනදි භාවිතා කරලා තියෙන්නෙ digitalRead() කියන function එක. මේක ටිකක් වෙනස්. මේක ලියන්නෙ මෙන්න මේ විදියට.
digitalRead(pin);
මෙතනදි parameter එක විදියට දෙන්නෙ අපි read කරන්න යන pin එක. මේ විදියට ලිව්වම button එක press කරාම digitalRead() කියන function එක true කියන logic එක return කරනවා. button එක release කරාම false කියන logic එක return කරනවා. තේරුනේ නෑ නේද? :D code එක ටිකක් බලන්නකො. code එකේ if()... else දාලා digitalRead() function එක return කරන්නෙ මොන වගේ logic එකක් ද කියලා තමයි check කරලා තියෙන්නෙ. (if...else ගැන post එකක් ඉදිරියෙදි ගෙන එන්නම්. එතකොට මේ කොටස තව පැහැදිලි වේවි)
ඉතින් මේ logic එක true නම්, ඒ කියන්නෙ button එක press කරලා නම් අපිට පුලුවන් serial monitor එකට "button pressed" කියලා print කරගන්න. ඒ විදියටම false අවස්තාවේදී "button released" කියලා print කරගන්න පුලුවන්.
ඉතින් අද ලිපියෙන් කතා කරපු කොටස් දෙකට අමතරව analog value වලටත් මේ වගේම functions දෙකක් තියනවා. ඒ ගැන වෙනම ලිපියකින් ඔයාලට කියලා දෙන්නම්. සුබ දවසක් හැමෝටම.
Comments
Post a Comment