සිංහලෙන් අන්තර්ජාලයට පිවිසෙන්න අදියගෙ බ්ලොග් එක |
Arduino Tutorials #5 - Knight Rider & For Loop Posted: 30 Dec 2012 10:46 PM PST මීට කලින් පළවුනු ලිපි... #1 - Introduction #2 - Config & IDE #3 - Blink! #4 - Basic Electronics දැන් මේ වෙනකොට ඔයගොල්ලෝ හැමෝම සාර්ථකව තමන්ගේ ප්රථම ප්රෝග්රෑම් එක එහෙම ලියලා ඉන්නවා කියලා මම හිතනවා. අද මේ Tutorial එකෙන් මම බලාපොරොත්තු වෙන්නේ for loop එක හඳුන්වා දීම හා ඒ හරහා නයිට් රයිඩර් පරිපථයක් නිර්මාණය කිරීමයි. වැඩිය කතා නැතුව අපි කෙළින්ම වැඩට බහිමු. Project #2 - Knight Rider Circuit! #Hardware මේක project එක කළින් එකෙන් වෙනස් වෙන ප්රධානම හේතුව තමයි මේකට එළියෙන් පරිපථයක් නිර්මාණය කිරීමට අවශ්ය වීම. මෙතනදී නම් අපට LED 7ක් සහ ඒ LED වලට 220ohm ප්රතිරෝධක 7ක් අවශ්ය වෙනවා. මේ LED ටික අපි Arduino Board එකේ Digital I/O 2 සිට 8 දක්වා pins වලට සවි කරන්න ඕන. මෙතනදී අපි හදන පරිපථය පේන්නේ මෙහෙමයි.
මේ තියෙන්නේ ඒකට අදාල Schematic එක.
මේ ටික සවිකරාම ඇත්ත ලෝකයේදී පේන්නේ මෙන්න මේ විදියට... #Software දැන් අපි ප්රෝග්රෑම් එක ලියන්න පටන්ගමු. ඉස්සෙල්ලාම අපි මේ පරිපථයේ නිවෙන පත්තුවෙන වේගය define කරන්න ඕන. ඒ නිසා ඉස්සෙල්ලාම ඒ වේගය Int එකක් විදියට Define කරන්න. int Speed = 100; ඊළඟට අපි අපේ LED තියෙන පින්ස් හතම Outputs විදියට නම් කරන්න ඕන. ඒ සඳහා ක්රම දෙකක් තියෙනවා. පළවෙනි ක්රමය නම් නිකම්ම ඔක්කොම පින්ස් ටික මේ වගේ වෙන වෙනම Outputs විදියට නම් කරන එකයි. pinMode(2, OUTPUT); ඒවුනාට මේ වගේ දෙයක් කරන්න අපිට for loop එක භාවිතා කරන්න පුලුවන්. for loop එක කියන්නේ Arduino language වල තියෙන තවත් Control Structure එකක්. මේ loop එක භාවිතා කරන්නේ එකම ප්රකාශනයක් ( Statement එකක් ) නැවත නැවතත් Repeat කරන්න. for loop එකේ සැකැස්ම මෙහෙමයි. ------------------------------------------------------------------
දැන් මේ loop එක වැඩකරන්නේ මෙහෙමයි. ඔය initialize කියල තියෙන කොටස (int x = 0; කියන කොටස) ක්රියාත්මක වෙන්නේ හරියටම එක පාරයි. ඒ loop එක ආරම්භයේදී විතරයි. ඊටපස්සේ ඕකේ test කියල තියෙන කොටස මඟින් අපි දෙන condition එක පරීක්ෂා කෙරෙනවා (මෙතනදී නම් condition එක වෙන්නේ x < 100). ඒ Condition එක True නම් (මෙතනදී නම් x, 100ට වඩා අඩු නම්) loop එකේ Statement block එක ක්රියාත්මක වෙනවා (මෙතනදී නම් println(x); කියන කොටස, එකෙන් x = 0 කියලා print වෙනවා). ඒක ක්රියාත්මක වෙලා අවසාන වුනාට පස්සේ increment or decrement වෙලා අපි define කරපු variable එකේ අගය වෙනස් වෙනවා (මෙතනදී නම් x වල අගය 0වේ සිට 1ට වැඩි වෙනවා). ඊට පස්සේ නැවතත් test එක වෙලා Statement Block එකට යනවා (දැන් ආපහු පාරක් initialize වෙන්නේ නෑ ) නමුත් දැන් තියෙන වෙනස නම් x වල අගය 1ක් වීමයි. (ඒ නිසා print වෙන්නේ x = 1 කියලයි). මේක මේ විදියට දිගින් දිගටම condition එක false වෙනකන් (මෙතනදී නම් x වල අගය 99ට වැඩි වෙනකම්) ක්රියාත්මක වෙනවා. ඊට පස්සේ loop එක අවසාන වෙලා ඊළඟ function එකට යනවා. ------------------------------------------------------------- void setup() {දැන් Programme එකේ ප්රධාන කොටස වෙන LED නිවීම හා දැල්වීම කරන්න ඕනේ. අපිට මේ ටික කරගන්න for loop දෙකක් අවශ්ය වෙනවා. මේ loops දෙක ක්රියාත්මක වෙන්නේ මෙහෙමයි. පළවෙනි loop එකෙන් LED 1 සිට 6 දක්වා දැල්වෙනවා. දෙවැනි loop එකෙන් LED 7 සිට 2 දක්වා අනිත් පැත්තට දැල්වෙනවා. මේ ටික නැවත නැවතත් Repeat වෙනකොට අපිට ඕන කරන effect එක ලබාගන්න පුලුවන්. මේ සඳහා අවශ්ය කරන loops දෙකේ කේත සටහන් මෙහෙමයි. void loop() {ඔය කේත ටික හැමෝටම දැන් තේරුම්ගන්න පුලුවන් ඇති කියලා මම හිතනවා. කලින් ප්රෝග්රෑම් එකට වඩා මේකේ තියෙන එකම වෙනස අපි digitalWrite function එක ඇතුලට කෙලින්ම pin number එක දාන්නේ නැතුව ඒ සඳහා for loop එක ඇතුලේ define කරපු variable එක යොදාගෙන තිබීම විතරයි.මේ දැක්වෙන්නේ අපේ සම්පූර්ණ ප්රෝග්රෑම් එක.. int Speed = 100;දැන් ඉතින් දෙයියනේ කියලා Arduino බෝඩ් එක කොම්පීතරේට හයි කරලා හරියට කෝඩ් එක ටයිප් කරලා Upload button එක ඔබන්න. මේ තියෙන්නේ මම හදපු Circuit එකේ වීඩීයෝ එකක්. මගේ කැමරාවේ පොඩි අව්ලක් නිසා Audio රෙකෝඩ් වෙන්නේ නෑ :'( :'( ඒ වුනාට ඉතින් බලන්න පුලුවන්... එහෙනම් කස්ටියටම ගුඩ්බායි... අදට පෝස්ට් එක ඉවරයි. ඕනම ජාතියක අව්ලක් ගියොත් යටින් කොමෙන්ට් එකක් දාලා අහන්න.. | ||||||||||||||||||||
Arduino Tutorials #4 - Basic Electronics Posted: 30 Dec 2012 08:52 AM PST ඉස්සෙල්ලාම Arduino සම්බන්ධ පරණ ලිපි කියෙව්වේ නැත්නම් ඒ ටික කියවල එන්න.. #1 - Introduction #2 - Config and IDE #3 - Blink! අපි දැනට Arduino හරහා අපේ පළවෙනි Project එක සාර්ථකව නිමා කරලයි තියෙන්නේ :) මීට වඩා සංකීර්ණ පරිපථවලට යන්න කලින් අපි මූලික ඉලෙක්ට්රොනික උපකරණ ගැන දැනගෙන ඉන්න ඕනේ. ඒ නිසා අපි මේ ලිපියෙන් දැනට බහුලව භාවිතා වෙන ඉලෙක්ට්රොනික උපකරණ කීපයක් ගැන ඉගෙනගෙන ඉමු. ඉස්සෙල්ලාම බලමු කොහොමද Breadboard එකක් පාවිච්චි කරන්නේ කියලා... Breadboards මේ තියෙන්නේ අපිට බහුලවම හමුවෙන ජාතියේ Breadboard එකක්.
මේ හැම Breadboard එකකම Power Lines සහ අපේ උපකරණ සවිකරන්න වෙනමම කොටස් තියෙනවා. Breadboard එකක් ඇතුලෙ තියෙන Connectionsමේ විදියයි
ඔය කොළපාට ඉරිවලින් පෙන්වන්නේ Breadboard එක ඇතුල සම්බන්ධ වෙන විදියයි. මේවා වලින් දෙපැත්තේ තියෙන දිග Connections දෙක අපි සාමාන්යයෙන් යොදාගන්නේ Power Lines විදියටයි. මේක වැඩකරන විදිය අපි ඉදිරියට Projects කරනකොට තවදුරටත් ප්රායෝගිකව බලාගන්න පුලුවන් වෙයි. :) Resistors (ප්රතිරෝධක)
Resistor එකක් කියන්නේ පරිපථයක් තුල ධාරාව ගලා යෑමට බාධාවක් ඇති කරන උපාංගයක්. අපි හදන ( හෝ දකින ) සෑම පරිපථයකම වගේ අනිවාර්රයෙන්ම ප්රතිරෝධක අඩංගු වෙනවා. ප්රතිරෝධකවල අගය මනින්නේ Ohm (Ω) කියන ඒකකය යොදාගෙනයි. සාමාන්යයෙන් අපි භාවිත කරන ප්රතිරෝධක වල අගය 1Ω සිට 1MΩ දක්වා පමණ වෙනවා. ( 1000Ω = 1KΩ , 1000KΩ = 1MΩ ) ප්රතිරෝධක වල අගය සටහන් කරලා තියෙන්නේ විශේශ වර්ණ කේත ක්රමයකට අනුවයි. මේ ක්රමයට අනුව 0-9 දක්වා අගයන්ට වර්ණ ලබා දී තියෙනවා. මේ ක්රමයට අනුව ප්රතිරෝධකයක වර්ණ වළලු 4ක් තියෙනවා ( 5ක් තියෙන ප්රතිරෝධකත් තියෙනවා. නමුත් ඒවා අපිට වැදගත් වෙන්නේ නෑ ) මේ වළලු වලින් ප්රථම හා දෙවන වළලු වල අගය කෙලින්ම ගන්න පුලුවන්. නමුත් 3න් වන වර්ණ වළල්ලේ අගය වෙනුවට අපි එම අගයට අදාල ගුණාකාරයෙන් පළමු අගය වැඩි කරන්න ඕන. හතර වෙනි වළල්ලෙන් පෙන්වන්නේ Tolerance එකයි. ඒ කියන්න රෙසිස්ටරයේ දක්වා ඇති අගය වෙනස් වීමේ ප්රතිශතයයි. අපි උදාහරණ කීපයක් අරගෙන බලමු. ඉස්සෙල්ලාම පහත දැක්වෙන වර්ණ වගුව බලන්න. උදා :- මේ පහළ දැක්වෙන රෙසිස්ටරය බලන්න. පළවෙනි වළල්ලේ අගය = 5 ( Green ) දෙවැනි වළල්ලේ අගය = 6 ( Blue ) තුන්වැනි වළල්ලේ අගය = 1 (Brown ) සිවුවැනි වළල්ලේ අගය = ± 5% ( Gold ) සම්පූර්ණ අගය = 56 x 10^1= 560Ω ± 5% ( මෙහිදී පළවෙනි වළල්ලේ අගය හා දෙවැනි වළල්ලේ අගය කෙළින්ම එක ළඟ ලිවිය යුතුයි. ඉන්පසු 3න් වැනි වළල්ලට අදාල ගුණාකාරයෙන් එම අගය ගුණ කළ යුතුයි. ) උදා 2 :- මේ ප්රතිරෝධකයේ අගය ගණනය කරමු. පළවෙනි වළල්ලේ අගය = 4 ( Yellow ) දෙවැනි වළල්ලේ අගය = 7 ( Violet ) තුන්වැනි වළල්ලේ අගය = 3 ( Orange ) සිවුවැනි වළල්ලේ අගය = ± 5% ( Gold ) සම්පූර්ණ අගය = 47 x 10^3= 47000Ω = 47KΩ ± 5% රෙසිස්ටරයක සම්මත පරිපථ සංකේතය විදියට පහත දැක්වෙන සංකේත දෙකම භාවිතා කරන්න පුලුවන්. Transistors (ට්රාන්සිස්ටර)
Capacitors (ධාරිත්රක)
Diodes Diode එකක් කියන්නේ මූලිකවම එක පැත්තකට පමණක් ධාරාව ගලා යෑමට ඉඩදෙන ඉලෙක්ට්රොනික උපාංගයක්. LED කියන්නෙත් Diodes වර්ගයක්ම තමයි. Diodes භාවිතා කරලා AC --> DC බවට පත්කිරීම වගේ දේවල් කරන්න පුලුවන්. මේ තියෙන්නේ Diodes වලට අදාල පරිපථ සංකේතය. Relays (පිළියවන)
Relays භාවිතා කරලා අපිට කුඩා ධාරාවක් මඟින් ඉතා විශාල ධාරාවක් පාලනය කරන්න පුලුවන්. ට්රාන්සිස්ටර වලට වඩා මේවායේ තියෙන විශේශත්වය වෙන්නේ Relays මඟින් අපේ පරිපථය Load එකෙන් ඒකලිත (Isolate) කිරීමයි. ඒ කියන්නේ අපිට Microcontroller එක මඟින් සාමාන්ය 230V AC බල්බයක් දැල්වීමට අවශ්ය වුනොත් Relay එකක් භාවිත කරන්න පුලුවන්. එතකොට අපේ පරිපථය හා බල්බය එකිනෙකින් සම්පූර්ණයෙන්ම වෙන්වෙනවා. එතකොට බල්බයට යන විශාල ධාරාව නිසා අපේ Microcontroller එකට හානිවීම වැලැක්වෙනවා. මේවා භාවිතයත් අපි ඉදිරියේදී කරමු.
අද පෝස්ට් එකෙන් මම කථාකරන්න බලාපොරොත්තු වෙන්නේ මේ උපාංග ටික ගැන විතරයි. මේවාට අමතරව අපිට ඉලෙක්ට්රොනික ලෝකයේදී හමුවන උපාංග ඉතා විශාල ප්රමාණයක් තියෙනවා. අපි ඉතින් ඒවා ගැන අදාල තැන්වලදී කථාකරමු...ඕනම ප්රශ්නයක් තියෙනවනම් යටින් කමෙන්ට් කරලා අහන්න පුලුවන්... එහෙනම් අපි කැපුනා! ඊළඟ පෝස්ට් එකෙන් නයිට් රයිඩර් පරිපථය හදමු.. :D |
You are subscribed to email updates from අදියගෙ බ්ලොග් එක To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |