PIC ප්රෝග්රෑම් 2
හැමෝටම ආයුබෝවන්...!!!
ඔන්න මම කීවත් වගේ දෙවෙනි ලිපිය ගේනාවා අද.
පළමු ලිපිය කියෙව්වේ නැත්නම් මෙතනින් ( http://www.elakiri.com/forum/showthread.php?t=1677611 ) යන්න.
පළමු ලිපියට හොඳ ප්රතිචාර ලැබිලා තිබුනා. මම වගේම PIC ප්රෝග්රෑම් කරන්න ආසා ඒත් දන්නේ නැති ගොඩක් අය ඉන්නවා කියලා තේරුනා. ඒ අයට මේ ලිපි ප්රොයෝජනවත් වෙන එක ගොඩක් සතුටක්.


වැඩි කතා ඕනි නෑ. වැඩේට බහිමු. මුල් ලිපියෙන් මම පොඩි පොඩි දේවල් ටිකක් කියලා දුන්නනේ.
මුලින්ම මේ වැඩේට ඕනි අඩුම කුඩුම ටික බලමු.
1) PIC ප්රෝග්රැමර් එකක්.
මේකෙන් තමයි අපි පරිගණකයෙන් ලියන ප්රෝග්රෑම් එක අපිට අවශ්ය IC එකට දාන්නේ. මේකෙත් එක එක වර්ග වල එක එක ඒවා තියෙයි.
පරිගණකයේ Serial Port එක මඟින් සම්බන්ධ කරන ඒවා.
http://www.lankatronics.com/aptinexjdm.html
පරිගණකයේ USB Port එක මඟින් සම්බන්ධ කරන ඒවා.
http://www.lankatronics.com/aptinex-pickit2-compatible-programmer-debugger.html
http://www.ebay.com/itm/PIC-Microco...ming-Programmer-K150-ICSP-Cable-/221584758688
Serial Port නම් දැන් පරිගණක වල හොයාගන්නත් අමාරුයි. ඒ වගේම මේක Config කරගන්න එකත් ඇණයක්. USB Port එක තියෙන එක ටින් ටින් ගාලා අමුණලා ඕනි දේ කරගන්න විතරයි තියෙන්නේ. ඒක හරිම Simple Plan එකක්... ඒ හන්දා අලුතින් ගන්න අය USB එකක්ම ගන්න


මමනම් මේ උඩ දාලා තියෙන Link වල ඒවා නෙවෙයි ගත්තේ. ඔය ඉලෙක්ට්රොනික් අමතර කොටස් තියෙන කඩවල තියෙනවා ලංකාවේ හදන Kasuni USB Programmer කියලා එකක්. මම ඒ දවස් වල ගත්තේ රු:700-1000ට වගේ වෙන්න ඇති. ඒක හොඳටම ඇති මටනම්. ඔයාලටත් අන්න ඒක ගත්තනම් නොසෑහෙන්න වැඩ කරගන්න ඇති වෙයි. දැන් ඒක ළඟ නෑ Photo එකක් දාන්න. හෙට දිහාට දාන්නම්.
2) ප්රෝග්රෑම් කරන්න පුලුවන් IC එකක්.
ප්රෝග්රැමර් එකක් ගත්තට IC එකක් නැතිව මක් කොරන්නද?
ලේසිම භෘණ්ඩේ තමයි PIC16F84A කියන එක. ගාණත් රු:250-350ක් වගේ වෙයි. එකක් ගත්තම් මක මක ලීවැකි. මක මක ලීවැකි Pen එකක් වගේ අම්බානක කාලයක්.
http://www.lankatronics.com/pic16f84a-pdip.html
ඕකේ තව තියෙයි PIC16F84 කියලා එකක් A කෑල්ල නැතුව. ඒක ගොඩක් ප්රේග්රැමර් වලට ගන්නේ නෑ. ඒ හන්දා A** මතක තියන් A අකුර තියෙන එකක්ම ගන්න.
අවශ්ය වැඩේ අනුව තව IC අම්බානක් තියෙයි තෝරගන්න. මේන්න මේ,
http://www.microchip.com/pagehandler/en-us/products/picmicrocontrollers
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74 Link වලින් බලාගත්තෑකි.
3) USB Port සහිත පරිගණකයක්.
මේක නැතුව මොකෙන් ලියන්නද මොකෙන් ගහන්නද... ප්රෝග්රෑම් එක


4) Flowcode මෘදුකාංගය.
අපි වගේ Code ලියන්න දන්නේ නැති චූටි බබාලට කුක්කු බෝතලුයි බිල්ඩින් බ්ලොක්සුයි එකතු කරලා ලේසියෙන්ම ප්රේග්රෑම් එක ලියන්න පුලුවන් මේකෙන් තමයි.


https://drive.google.com/file/d/0B_FiF3FGG-qNcGlHOVFJX3diRjQ/view?usp=sharing
5) PICkit මෘදුකාංගය.
මේකෙන් තමයි අපි Flowcode වලින් ලියලා හදාගන්න Program එකේ හරි Code file එක Programmer එක හරහා IC එකට දාගන්නේ.
https://drive.google.com/file/d/0B_FiF3FGG-qNMVJuUlZEZFRPcFU/view?usp=sharing
6) IC එක දාලා Test කරලා බලන්න පුලුවන් පරිපථයක්.
මේක නැතුව ඉතින් ප්රෝග්රැමර් එකක් අරන් IC එකත් Program කරලා බකන් නිලන් ඉන්න තමයි වෙන්නේ ඉතින්. මේක ඉතින් තමන්ට ඕනි වැඩේට ඕනි විදිහට තමයි හදාගන්න වෙන්නේ.
හරි ඉතින් දැන් අඩුම කුඩුම ටිකනම්.
දැන් අපි බලමු චුට්ටිම චුට්ටන් Program එකක් Flowcode වලින් ලියන හැටි පළමු පාඩම විදිහට.
ළමාමාමායි මල්ලෙන් එළියට Flowcode ගනිල්ලා...
ඔන්න එහෙනම් අයන්නේ ඉඳන් කියන්නයි යන්නේ.
1) මුලින්ම Flowcode විවෘත කරගන්න.
2) අපි පළමු Program එක ලියන හන්දා Flowcode විවෘත වුනාම අංක 1 රූපයේ වගේ "Create a new Flowcode flowchart..." තෝරලා OK කරන්න.
3) ඊළඟ එකේදී ඔයාලා Program එක ලියන IC එක තෝරන්න. අපි අංක 2 රූපයේ වගේ 16F84A තෝරමු නිකමට වගේ.
4) ඔන්න අපි දැන් ගේම දෙන තැනට ආවා එහෙනම්.
5) මේ තමයි Flowcode වල අපිට වැඩ දාන්න තියෙන තැන.
අංක 3 කොටුවෙන් ඔබට පේන්නේ අපිට Program එක ලියන Flowchart එක හදන්න අවශ්ය බිල්ඩින් බ්ලොක්ස් වගේ ටික කීවොත් හරි. Input, Output & Delay etc.
ඊළඟ අංක 4 තියෙන්නේ අපිට අපේ Program එක Test කරලා බලන්න එක එක කෑලි බෑලි එලියට අරගන්න තියෙන එක. LED, LCD & Inputs etc.
අංක 5 තියෙන්නේ අපේ ලියපු Program එක Test කරලා බලන්න Play කරන්න, Pause, Save & Compile etc කරගන්න තියෙන එක.
අංක 6 තමයි වැඩි වැඩ තියෙන්නේ.
අංක 7 තමයි අපිට අපේ IC එක ගැන අදහසක් දැනගන්න තියෙන තැන ඒකේ Pin Configuration එක වගේ දේවල්.
අංක 8 කෑල්ලම තියෙන්නේ අපිට අංක 4න් ඇදලා ගන්න Input සහ Output වගේ ගන්න දේවල් තියලා තියාගන්න.
දැන් එතකොට කෝ යකෝ Program එක හදන තැන?
ඔය කියපු අංක ඔක්කෝම අයින් කරාම අර Begin සහ End කියලා කෑලි 2ක් තියෙන පැත්තම තියෙන්නේ ඒකට තමයි.


ඔන්න දැන් හඳුන්වාදීම අවසානයි. අසා සිටි ඔබ සැමට ස්තූතියි.
එහෙනම් සිරා ගේම දැන් ඕං...


මම නිකන් මුලින්ම හන්දා එක LED එකක් තත්පරයක් On තත්පරයක් Off එකේ තියෙන්න්න Program එකක් ලියලා පෙන්නන්නම්.
1) මුලින්ම උඩ Outputs ගන්න තියෙන තැනට ගිහින් LED එක Click කරලා එක LED bulb එකක් පහළ තැනට ගන්න.
2) දැන් මුළින්ම අපි මේ LED එක අපි අපේ IC එකේ අවශ්ය Pin එකට Set කරන්න ඕනි. නැත්නම් ඒක ඒකට ඕනි ඕනි එකට Set වෙන්න හෝ නොවෙන්න ඉඩ තියෙනවා. ඒකට අර යටට ආපු LED එක උඩ Right click කරලා Connections යන්න.
එතනින් එන එකේ යට තියෙන්නේ Connect to කියන තැන ඉස්සරහ Port කියන එකෙන් කැමති Port එක තෝරන්න. මේ IC වල A, B, C, D... කියලා Ports බෙදලා තියෙන්නේ. අපි ගත්තු 16F84A එකේ වැඩිය Pin නැති හන්දා ඒකේ තියෙන්නේ A සහ B කියන Ports විතරයි. 16F877A වල එහෙම ගොඩක් Ports තියෙනවා. ඒ එක එක Port එකකට තියෙන Pin ගාණ තමයි Bit කියලා තියෙන්නේ. සාමාන්යෙයන් එක Port එකකට Bit 8ක් එනවා Aනම් A0, A1, A2, A3, A4, A5, A6 සහ A7 කියලා. IC එකේ Pin ගාණත් අනුවත් ඒ ගාණ අඩු වෙන්න පුලවන් හරියට දැන් අපේ A වලට Bit 5යි තියෙන්නේ වගේ A0, A1, A2, A3 සහ A4 කියලා.
අපි දැන් අපේ LED එකට Port A සහ Bit 0 තෝරා Done කරන්න. දැන් අපි පරිපථයක් හදලා අපේ LED එක Port A වල Bit 0ට සෙට් කරොත්, එ් කියන්නේ අපේ IC එකේ 17වෙනි Pin එකට, ඒ කියන්නේ RA0 කියලා තියෙන තැනට සෙට් කළොත් විතරයි පත්තු වෙන්නේ.
3) දැන් Pin එක Set කරලා ඉවර හන්දා ලියන්න ගමු.
හැම දේකම ආරම්භයක් සහ අවසානයක් තියෙන්න ඕනිනේ. අන්න ඒ නිසා තමයි අපේ Program එක Begin සහ End වලින් කලින්ම පටන් අරන් දීලා තියෙන්නේ.
LED එකක් පත්තු වෙනවා කියන්නේ Output එකක් එන්න ඕනි කියන එකනේ. ඒ හන්දා වම් පැත්තේ බිල්ඩින් බ්ලොක්ස් වලින් Output කියන එකක් ඇදලා දාගන්න අපේ Begin සහ End අතරට.
දැන් අපි ඒ Output එකත් අපේ LED එකට සෙට් කරන්න ඕනි. ඒකට Output එක Double click කරලා එන එකෙන් Port කියන තැනට අපි කලින් LED එකට දුන්නු Port A එකම දෙන්න.
Variable or value කිියන තැනින් තමයි අපි LED එක On ද Off ද කරන්නේ කියලා දෙන්නේ.
හැබැයි ඒ දේවල් දෙන්න ඕනි Binary ඒ කියන්නේ ද්වීමය අගයන් වලින්.
ඒ මෙහෙමයි.
අපි අපේ අර Bit ටික ගමු.
ඒවා අවේ 0, 1, 2, 3, 4... කියලානේ. එතකොට,
0 ට එන ද්විමය අගය කියන්නේ 2 බින්දුවෙනි බලය. ඒ කියන්නේ 1
1 ට එන ද්විමය අගය කියන්නේ 2 පළමුවෙනි බලය. ඒ කියන්නේ 2
2 ට එන ද්විමය අගය කියන්නේ 2 දෙවවෙනි බලය. ඒ කියන්නේ 4
3 ට එන ද්විමය අගය කියන්නේ 2 තුන්වෙනි වෙනි බලය. ඒ කියන්නේ 8
4 ට එන ද්විමය අගය කියන්නේ 2 හතරවෙනි බලය. ඒ කියන්නේ 16
අන්න එහෙමයි ඒ ඒ Bit එකට අයිති අගය එන්නේ. හැම Bit එකටම 0ට වඩා අගයක් තියෙනවා කියලා ඔයාලට පේනවා ඇති. එහෙම බැලුවහ ඔයාලට තේරෙනවා ඇති ඔහොම ගියාම මෙකුත්ම නෑ කියන්නේ, එ් කියන්නේ Off කියන්න දෙන අගය තමයි 0. 0ට උඩ මොනවාහරි අගයක් තියෙනවා කියන්නේ Output එකක් එනවා, ඒ කියන්නේ කොහෙන්හරි On වෙනවා කියන එක මොනවාහරි Bit එකක් හෝ කිහිපයක්.
අපි අපේ LED එක සෙට් කළේ A0ට කියලා මතක ඇති නේද?
ඒ හන්දා අපි දැන් අපි අපේ ඇදලා දාපු Output කෑල්ලේ Port එක A විදිහටත් 0ට අදාල Variable or value කියන එක උඩ List එකේ තියෙන විදිහට 0ට තියෙන ද්ළුීමය අගය වන 1 කියලා දීලත් OK කරන්න.
දැන් නිකමට උඩ Play button එක ඔබලා බැලුවොත් ඔයාලට පේයි පහළ LED එක පත්තු වෙලා අපේ IC එකේ බල්බයට අදාල Pin එකත් රතු වෙලා On වෙලා තියෙනවා. එහෙමනම් ඔයාලා මුල් පියවර එලටම කරලා.


දැන් ඉතින් ඕක සදහටම On වෙලා තියෙයි ඔහොම විතරක් ලීවොත්.

4) අපි කතා උනේ තත්පරයක් On තත්පරයක් Off වෙලා තියෙන්න හදන්නනේ.
ඒ කියන්නේ අපි දැන් On කරගත්තු එක තත්පරයක් තියෙන්න හදන්න ඕනි. ඒ කියන්නේ තත්පරයක Delay එකක් දාමු අපි.
ආ ළමාමාමායි බිල්ඩින් බ්ලෝක්ස් වලින් මේ වගේ Delay එකක් ඇදලා දාගන්න යටටට...
දැන් ඕක එන්න ඇත්තේ 1ms කියලා තියෙන Delay එකක්. නමුත් අපිට ඕනි තත්පරයක්. තත්පරයක් කියන්නේ මිලි තත්පර 1000ක් ළමාමාමායි.
1s = 1000ms
ඒ හන්දා අපි මේක හදාගන්න Delay එක උඩ Double click කරන්න. ඒ එන එකෙන් අයෙ 1000 දිදී ඉන්නේ නැතුව 1 එහෙමම තියෙද්දී Seconds කියන එකට බෝලේ දාලා OK කරන්න.
5) ඔහොම දාලා Play කරත් LED එක සදහටම On එකේ තියෙයි අපි තවම Off එකක් දීලා නැති හන්දා. ඒ හන්දා අපි දැන් Off එක හදමු.
Off කියන්නෙත් මොකුත් නැති උනත් Output එකක්. ඒ හන්දා එ්කටත් Output එකක් ඇදලා දාගන්න Delay එකට යටින්. ඒ අපිට තත්පරේකට පස්සේ Off වෙන්න ඕනි හන්දා.
ඒකෙත් අපිට දැන් අපි දීපු LED එකට දීපු Pin එක Off කරන්න ඕනි හන්දා Output Double click කරලා Port එක A විදිහටත් Value එක 0ත් දීලා OK කරන්න. මම කලින් කීවා වගේ මොකුත්ම නෑ, ඒ කියන්නේ Off කියන්න දෙන්නේ 0.
දැන් අපි Play කළොත් Led එක On වෙලා තත්පරයක් තිබිලා Off වෙලාම යයි සදහටම. ඒ ආපහු LED එක On වෙන්නේ නැතුව අපේ Program එක End වෙලා යන හන්දා.
ඉතින් දැන් අපිට ඕනි වෙන්නේ තත්පරයක් Off වෙලා තිබිලා ආපහු LED එක On වෙන්න සහ Off වෙන්න තත්පරයක් පාසා.
6) දැන් ඉතින් Off වෙලා තව තත්පරයක් තියෙන්න අපි තව තත්පරේක Delay එකක් දානවා යටට.
ඕන් දැන් Play කරලා බැලුවොත් තත්පරයක් On එකේ තිබිලා තත්පරයක් Off එකේ තියෙයි අපේ LED එක. වැඩේ ගොඩ.


ඒත් දෙයියනේ මේක දිගටම වෙන්න ලියන්නේ කොහොමද...???


ඒකට ඉතින් කැමතිනම් අපේ උඩ ඇදලා දාලා ලියපු කෑලි 4ම Copy & Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste... කරනවා...








මෙහෙම කරොත්නම් පුතෝ ඔය Design code එකෙන්ම විතරක් IC එකේ Memory full වෙයි.


7) ඒකට කරන්නේ පුතාලා ශේප් න්යාය පාවිච්චි කරන එක. ඕවා කරලා තමයි AL Maths කරලා පාර දිගේ Light කනු ඇද්දේ...


ඔව් ඒකට තියෙන්නේ අපේ කෑලි 4 ටෝච් එකට... නෑ නෑ Code එකට හැම වෙලේම මෙතන ඉඳන් මෙතෙන්ට යන්න කියලා උගන්නන එක.
ඒකට තමයි අර බිල්ඩ්න් බ්ලොක්ස් වල A: කියලා 2ක් තියෙන්නේ. ඒකේ යට එක යටටටමයි උඩ එක උඩඩඩටමයි ඇදලා දාන්න.
ඔන්න දැන් පුතාලා Play කරලා බැලුවොත් කවදාවත් ඉවර නොවෙන විදිහට තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off... විදිහට අපේ LED එක වැඩ කරයි...


ඕන් එහෙනම් අදට ගම් පෙරළිය ඉවරයි... අනිත් දවසේ ඉඳන් පෙම් පෙරළිය පටාටාටාන් ගමු. කට්ටිය ඉන්න ගමන් පරීක්ෂණ සහ නිරීක්ෂණ කරලා නිගමනවලට එහෙම එළඹීලා අවුලක් තිබ්බොත් පවුල රට කියලා අහලා දාන්න. දන්න දෙයක් වෙලාව තියෙන වෙලාවට කියලා දෙන්නම්...


මේ චුට්ටන්ම චුට්ටන් Program එකක්. ඒ හන්දා වැඩි දේවල් නෑ. එවා පස්සේ කියලා දෙන්නම්...
පට්ට ලේසියි නේද වැඩේ... එක Code එකක්වත් නෑ.


ඉන්න ගමන් ඔයාලත් තව එක එක LED එහෙම දාලා පල්ලට පල්ලට Program ලියලා බලන්න. ලේසියිනේ වැඩේ.



මේ මම Flowcode වලින් Program කරලා 16F877A එකකින් මමම හදපු පරිපථයක Video එකක්. බලන්න හොඳයිද කියලා...




https://youtu.be/rK01yMT-jzM 


එහෙනම් ගිහින් එන්නානානාම්... මම Elakiriයට අලුත්. වැඩි වැඩ දන්නේ නෑ මේ Forum එකේ. ඒ හන්දා PM දාන අය FB එකෙන් Message එකක් දාන්න ආ...


www.Facebook.com/hprane
මේ මම ඉන්න ගමන් කරන තවත් වැඩක්. පුලුවන් අය Like එකක්වත් දාලා Sup දෙන්න.


www.Facebook.com/TVSeriesLK
හැමෝටම ආයුබෝවන්...!!!
ඔන්න මම කීවත් වගේ දෙවෙනි ලිපිය ගේනාවා අද.

පළමු ලිපිය කියෙව්වේ නැත්නම් මෙතනින් ( http://www.elakiri.com/forum/showthread.php?t=1677611 ) යන්න.
පළමු ලිපියට හොඳ ප්රතිචාර ලැබිලා තිබුනා. මම වගේම PIC ප්රෝග්රෑම් කරන්න ආසා ඒත් දන්නේ නැති ගොඩක් අය ඉන්නවා කියලා තේරුනා. ඒ අයට මේ ලිපි ප්රොයෝජනවත් වෙන එක ගොඩක් සතුටක්.



වැඩි කතා ඕනි නෑ. වැඩේට බහිමු. මුල් ලිපියෙන් මම පොඩි පොඩි දේවල් ටිකක් කියලා දුන්නනේ.
මුලින්ම මේ වැඩේට ඕනි අඩුම කුඩුම ටික බලමු.
1) PIC ප්රෝග්රැමර් එකක්.
මේකෙන් තමයි අපි පරිගණකයෙන් ලියන ප්රෝග්රෑම් එක අපිට අවශ්ය IC එකට දාන්නේ. මේකෙත් එක එක වර්ග වල එක එක ඒවා තියෙයි.
පරිගණකයේ Serial Port එක මඟින් සම්බන්ධ කරන ඒවා.
http://www.lankatronics.com/aptinexjdm.html
පරිගණකයේ USB Port එක මඟින් සම්බන්ධ කරන ඒවා.
http://www.lankatronics.com/aptinex-pickit2-compatible-programmer-debugger.html
http://www.ebay.com/itm/PIC-Microco...ming-Programmer-K150-ICSP-Cable-/221584758688
Serial Port නම් දැන් පරිගණක වල හොයාගන්නත් අමාරුයි. ඒ වගේම මේක Config කරගන්න එකත් ඇණයක්. USB Port එක තියෙන එක ටින් ටින් ගාලා අමුණලා ඕනි දේ කරගන්න විතරයි තියෙන්නේ. ඒක හරිම Simple Plan එකක්... ඒ හන්දා අලුතින් ගන්න අය USB එකක්ම ගන්න



මමනම් මේ උඩ දාලා තියෙන Link වල ඒවා නෙවෙයි ගත්තේ. ඔය ඉලෙක්ට්රොනික් අමතර කොටස් තියෙන කඩවල තියෙනවා ලංකාවේ හදන Kasuni USB Programmer කියලා එකක්. මම ඒ දවස් වල ගත්තේ රු:700-1000ට වගේ වෙන්න ඇති. ඒක හොඳටම ඇති මටනම්. ඔයාලටත් අන්න ඒක ගත්තනම් නොසෑහෙන්න වැඩ කරගන්න ඇති වෙයි. දැන් ඒක ළඟ නෑ Photo එකක් දාන්න. හෙට දිහාට දාන්නම්.
2) ප්රෝග්රෑම් කරන්න පුලුවන් IC එකක්.
ප්රෝග්රැමර් එකක් ගත්තට IC එකක් නැතිව මක් කොරන්නද?

ලේසිම භෘණ්ඩේ තමයි PIC16F84A කියන එක. ගාණත් රු:250-350ක් වගේ වෙයි. එකක් ගත්තම් මක මක ලීවැකි. මක මක ලීවැකි Pen එකක් වගේ අම්බානක කාලයක්.

http://www.lankatronics.com/pic16f84a-pdip.html
ඕකේ තව තියෙයි PIC16F84 කියලා එකක් A කෑල්ල නැතුව. ඒක ගොඩක් ප්රේග්රැමර් වලට ගන්නේ නෑ. ඒ හන්දා A** මතක තියන් A අකුර තියෙන එකක්ම ගන්න.

අවශ්ය වැඩේ අනුව තව IC අම්බානක් තියෙයි තෝරගන්න. මේන්න මේ,
http://www.microchip.com/pagehandler/en-us/products/picmicrocontrollers
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74 Link වලින් බලාගත්තෑකි.

3) USB Port සහිත පරිගණකයක්.
මේක නැතුව මොකෙන් ලියන්නද මොකෙන් ගහන්නද... ප්රෝග්රෑම් එක



4) Flowcode මෘදුකාංගය.
අපි වගේ Code ලියන්න දන්නේ නැති චූටි බබාලට කුක්කු බෝතලුයි බිල්ඩින් බ්ලොක්සුයි එකතු කරලා ලේසියෙන්ම ප්රේග්රෑම් එක ලියන්න පුලුවන් මේකෙන් තමයි.



https://drive.google.com/file/d/0B_FiF3FGG-qNcGlHOVFJX3diRjQ/view?usp=sharing
5) PICkit මෘදුකාංගය.
මේකෙන් තමයි අපි Flowcode වලින් ලියලා හදාගන්න Program එකේ හරි Code file එක Programmer එක හරහා IC එකට දාගන්නේ.
https://drive.google.com/file/d/0B_FiF3FGG-qNMVJuUlZEZFRPcFU/view?usp=sharing
6) IC එක දාලා Test කරලා බලන්න පුලුවන් පරිපථයක්.
මේක නැතුව ඉතින් ප්රෝග්රැමර් එකක් අරන් IC එකත් Program කරලා බකන් නිලන් ඉන්න තමයි වෙන්නේ ඉතින්. මේක ඉතින් තමන්ට ඕනි වැඩේට ඕනි විදිහට තමයි හදාගන්න වෙන්නේ.
හරි ඉතින් දැන් අඩුම කුඩුම ටිකනම්.
දැන් අපි බලමු චුට්ටිම චුට්ටන් Program එකක් Flowcode වලින් ලියන හැටි පළමු පාඩම විදිහට.

ළමාමාමායි මල්ලෙන් එළියට Flowcode ගනිල්ලා...
ඔන්න එහෙනම් අයන්නේ ඉඳන් කියන්නයි යන්නේ.

1) මුලින්ම Flowcode විවෘත කරගන්න.
2) අපි පළමු Program එක ලියන හන්දා Flowcode විවෘත වුනාම අංක 1 රූපයේ වගේ "Create a new Flowcode flowchart..." තෝරලා OK කරන්න.
3) ඊළඟ එකේදී ඔයාලා Program එක ලියන IC එක තෝරන්න. අපි අංක 2 රූපයේ වගේ 16F84A තෝරමු නිකමට වගේ.
4) ඔන්න අපි දැන් ගේම දෙන තැනට ආවා එහෙනම්.

5) මේ තමයි Flowcode වල අපිට වැඩ දාන්න තියෙන තැන.
අංක 3 කොටුවෙන් ඔබට පේන්නේ අපිට Program එක ලියන Flowchart එක හදන්න අවශ්ය බිල්ඩින් බ්ලොක්ස් වගේ ටික කීවොත් හරි. Input, Output & Delay etc.
ඊළඟ අංක 4 තියෙන්නේ අපිට අපේ Program එක Test කරලා බලන්න එක එක කෑලි බෑලි එලියට අරගන්න තියෙන එක. LED, LCD & Inputs etc.
අංක 5 තියෙන්නේ අපේ ලියපු Program එක Test කරලා බලන්න Play කරන්න, Pause, Save & Compile etc කරගන්න තියෙන එක.
අංක 6 තමයි වැඩි වැඩ තියෙන්නේ.
අංක 7 තමයි අපිට අපේ IC එක ගැන අදහසක් දැනගන්න තියෙන තැන ඒකේ Pin Configuration එක වගේ දේවල්.
අංක 8 කෑල්ලම තියෙන්නේ අපිට අංක 4න් ඇදලා ගන්න Input සහ Output වගේ ගන්න දේවල් තියලා තියාගන්න.
දැන් එතකොට කෝ යකෝ Program එක හදන තැන?

ඔය කියපු අංක ඔක්කෝම අයින් කරාම අර Begin සහ End කියලා කෑලි 2ක් තියෙන පැත්තම තියෙන්නේ ඒකට තමයි.



ඔන්න දැන් හඳුන්වාදීම අවසානයි. අසා සිටි ඔබ සැමට ස්තූතියි.

එහෙනම් සිරා ගේම දැන් ඕං...



මම නිකන් මුලින්ම හන්දා එක LED එකක් තත්පරයක් On තත්පරයක් Off එකේ තියෙන්න්න Program එකක් ලියලා පෙන්නන්නම්.

1) මුලින්ම උඩ Outputs ගන්න තියෙන තැනට ගිහින් LED එක Click කරලා එක LED bulb එකක් පහළ තැනට ගන්න.
2) දැන් මුළින්ම අපි මේ LED එක අපි අපේ IC එකේ අවශ්ය Pin එකට Set කරන්න ඕනි. නැත්නම් ඒක ඒකට ඕනි ඕනි එකට Set වෙන්න හෝ නොවෙන්න ඉඩ තියෙනවා. ඒකට අර යටට ආපු LED එක උඩ Right click කරලා Connections යන්න.
එතනින් එන එකේ යට තියෙන්නේ Connect to කියන තැන ඉස්සරහ Port කියන එකෙන් කැමති Port එක තෝරන්න. මේ IC වල A, B, C, D... කියලා Ports බෙදලා තියෙන්නේ. අපි ගත්තු 16F84A එකේ වැඩිය Pin නැති හන්දා ඒකේ තියෙන්නේ A සහ B කියන Ports විතරයි. 16F877A වල එහෙම ගොඩක් Ports තියෙනවා. ඒ එක එක Port එකකට තියෙන Pin ගාණ තමයි Bit කියලා තියෙන්නේ. සාමාන්යෙයන් එක Port එකකට Bit 8ක් එනවා Aනම් A0, A1, A2, A3, A4, A5, A6 සහ A7 කියලා. IC එකේ Pin ගාණත් අනුවත් ඒ ගාණ අඩු වෙන්න පුලවන් හරියට දැන් අපේ A වලට Bit 5යි තියෙන්නේ වගේ A0, A1, A2, A3 සහ A4 කියලා.
අපි දැන් අපේ LED එකට Port A සහ Bit 0 තෝරා Done කරන්න. දැන් අපි පරිපථයක් හදලා අපේ LED එක Port A වල Bit 0ට සෙට් කරොත්, එ් කියන්නේ අපේ IC එකේ 17වෙනි Pin එකට, ඒ කියන්නේ RA0 කියලා තියෙන තැනට සෙට් කළොත් විතරයි පත්තු වෙන්නේ.

3) දැන් Pin එක Set කරලා ඉවර හන්දා ලියන්න ගමු.
හැම දේකම ආරම්භයක් සහ අවසානයක් තියෙන්න ඕනිනේ. අන්න ඒ නිසා තමයි අපේ Program එක Begin සහ End වලින් කලින්ම පටන් අරන් දීලා තියෙන්නේ.

LED එකක් පත්තු වෙනවා කියන්නේ Output එකක් එන්න ඕනි කියන එකනේ. ඒ හන්දා වම් පැත්තේ බිල්ඩින් බ්ලොක්ස් වලින් Output කියන එකක් ඇදලා දාගන්න අපේ Begin සහ End අතරට.
දැන් අපි ඒ Output එකත් අපේ LED එකට සෙට් කරන්න ඕනි. ඒකට Output එක Double click කරලා එන එකෙන් Port කියන තැනට අපි කලින් LED එකට දුන්නු Port A එකම දෙන්න.
Variable or value කිියන තැනින් තමයි අපි LED එක On ද Off ද කරන්නේ කියලා දෙන්නේ.
හැබැයි ඒ දේවල් දෙන්න ඕනි Binary ඒ කියන්නේ ද්වීමය අගයන් වලින්.

ඒ මෙහෙමයි.
අපි අපේ අර Bit ටික ගමු.
ඒවා අවේ 0, 1, 2, 3, 4... කියලානේ. එතකොට,
0 ට එන ද්විමය අගය කියන්නේ 2 බින්දුවෙනි බලය. ඒ කියන්නේ 1
1 ට එන ද්විමය අගය කියන්නේ 2 පළමුවෙනි බලය. ඒ කියන්නේ 2
2 ට එන ද්විමය අගය කියන්නේ 2 දෙවවෙනි බලය. ඒ කියන්නේ 4
3 ට එන ද්විමය අගය කියන්නේ 2 තුන්වෙනි වෙනි බලය. ඒ කියන්නේ 8
4 ට එන ද්විමය අගය කියන්නේ 2 හතරවෙනි බලය. ඒ කියන්නේ 16
අන්න එහෙමයි ඒ ඒ Bit එකට අයිති අගය එන්නේ. හැම Bit එකටම 0ට වඩා අගයක් තියෙනවා කියලා ඔයාලට පේනවා ඇති. එහෙම බැලුවහ ඔයාලට තේරෙනවා ඇති ඔහොම ගියාම මෙකුත්ම නෑ කියන්නේ, එ් කියන්නේ Off කියන්න දෙන අගය තමයි 0. 0ට උඩ මොනවාහරි අගයක් තියෙනවා කියන්නේ Output එකක් එනවා, ඒ කියන්නේ කොහෙන්හරි On වෙනවා කියන එක මොනවාහරි Bit එකක් හෝ කිහිපයක්.
අපි අපේ LED එක සෙට් කළේ A0ට කියලා මතක ඇති නේද?

ඒ හන්දා අපි දැන් අපි අපේ ඇදලා දාපු Output කෑල්ලේ Port එක A විදිහටත් 0ට අදාල Variable or value කියන එක උඩ List එකේ තියෙන විදිහට 0ට තියෙන ද්ළුීමය අගය වන 1 කියලා දීලත් OK කරන්න.
දැන් නිකමට උඩ Play button එක ඔබලා බැලුවොත් ඔයාලට පේයි පහළ LED එක පත්තු වෙලා අපේ IC එකේ බල්බයට අදාල Pin එකත් රතු වෙලා On වෙලා තියෙනවා. එහෙමනම් ඔයාලා මුල් පියවර එලටම කරලා.



දැන් ඉතින් ඕක සදහටම On වෙලා තියෙයි ඔහොම විතරක් ලීවොත්.


4) අපි කතා උනේ තත්පරයක් On තත්පරයක් Off වෙලා තියෙන්න හදන්නනේ.
ඒ කියන්නේ අපි දැන් On කරගත්තු එක තත්පරයක් තියෙන්න හදන්න ඕනි. ඒ කියන්නේ තත්පරයක Delay එකක් දාමු අපි.
ආ ළමාමාමායි බිල්ඩින් බ්ලෝක්ස් වලින් මේ වගේ Delay එකක් ඇදලා දාගන්න යටටට...
දැන් ඕක එන්න ඇත්තේ 1ms කියලා තියෙන Delay එකක්. නමුත් අපිට ඕනි තත්පරයක්. තත්පරයක් කියන්නේ මිලි තත්පර 1000ක් ළමාමාමායි.
1s = 1000ms
ඒ හන්දා අපි මේක හදාගන්න Delay එක උඩ Double click කරන්න. ඒ එන එකෙන් අයෙ 1000 දිදී ඉන්නේ නැතුව 1 එහෙමම තියෙද්දී Seconds කියන එකට බෝලේ දාලා OK කරන්න.

5) ඔහොම දාලා Play කරත් LED එක සදහටම On එකේ තියෙයි අපි තවම Off එකක් දීලා නැති හන්දා. ඒ හන්දා අපි දැන් Off එක හදමු.
Off කියන්නෙත් මොකුත් නැති උනත් Output එකක්. ඒ හන්දා එ්කටත් Output එකක් ඇදලා දාගන්න Delay එකට යටින්. ඒ අපිට තත්පරේකට පස්සේ Off වෙන්න ඕනි හන්දා.

ඒකෙත් අපිට දැන් අපි දීපු LED එකට දීපු Pin එක Off කරන්න ඕනි හන්දා Output Double click කරලා Port එක A විදිහටත් Value එක 0ත් දීලා OK කරන්න. මම කලින් කීවා වගේ මොකුත්ම නෑ, ඒ කියන්නේ Off කියන්න දෙන්නේ 0.

දැන් අපි Play කළොත් Led එක On වෙලා තත්පරයක් තිබිලා Off වෙලාම යයි සදහටම. ඒ ආපහු LED එක On වෙන්නේ නැතුව අපේ Program එක End වෙලා යන හන්දා.
ඉතින් දැන් අපිට ඕනි වෙන්නේ තත්පරයක් Off වෙලා තිබිලා ආපහු LED එක On වෙන්න සහ Off වෙන්න තත්පරයක් පාසා.
6) දැන් ඉතින් Off වෙලා තව තත්පරයක් තියෙන්න අපි තව තත්පරේක Delay එකක් දානවා යටට.
ඕන් දැන් Play කරලා බැලුවොත් තත්පරයක් On එකේ තිබිලා තත්පරයක් Off එකේ තියෙයි අපේ LED එක. වැඩේ ගොඩ.



ඒත් දෙයියනේ මේක දිගටම වෙන්න ලියන්නේ කොහොමද...???



ඒකට ඉතින් කැමතිනම් අපේ උඩ ඇදලා දාලා ලියපු කෑලි 4ම Copy & Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste, Paste... කරනවා...









මෙහෙම කරොත්නම් පුතෝ ඔය Design code එකෙන්ම විතරක් IC එකේ Memory full වෙයි.



7) ඒකට කරන්නේ පුතාලා ශේප් න්යාය පාවිච්චි කරන එක. ඕවා කරලා තමයි AL Maths කරලා පාර දිගේ Light කනු ඇද්දේ...



ඔව් ඒකට තියෙන්නේ අපේ කෑලි 4 ටෝච් එකට... නෑ නෑ Code එකට හැම වෙලේම මෙතන ඉඳන් මෙතෙන්ට යන්න කියලා උගන්නන එක.
ඒකට තමයි අර බිල්ඩ්න් බ්ලොක්ස් වල A: කියලා 2ක් තියෙන්නේ. ඒකේ යට එක යටටටමයි උඩ එක උඩඩඩටමයි ඇදලා දාන්න.
ඔන්න දැන් පුතාලා Play කරලා බැලුවොත් කවදාවත් ඉවර නොවෙන විදිහට තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off, තත්පරයක් On තත්පරයක් Off... විදිහට අපේ LED එක වැඩ කරයි...



ඕන් එහෙනම් අදට ගම් පෙරළිය ඉවරයි... අනිත් දවසේ ඉඳන් පෙම් පෙරළිය පටාටාටාන් ගමු. කට්ටිය ඉන්න ගමන් පරීක්ෂණ සහ නිරීක්ෂණ කරලා නිගමනවලට එහෙම එළඹීලා අවුලක් තිබ්බොත් පවුල රට කියලා අහලා දාන්න. දන්න දෙයක් වෙලාව තියෙන වෙලාවට කියලා දෙන්නම්...



මේ චුට්ටන්ම චුට්ටන් Program එකක්. ඒ හන්දා වැඩි දේවල් නෑ. එවා පස්සේ කියලා දෙන්නම්...
පට්ට ලේසියි නේද වැඩේ... එක Code එකක්වත් නෑ.



ඉන්න ගමන් ඔයාලත් තව එක එක LED එහෙම දාලා පල්ලට පල්ලට Program ලියලා බලන්න. ලේසියිනේ වැඩේ.




මේ මම Flowcode වලින් Program කරලා 16F877A එකකින් මමම හදපු පරිපථයක Video එකක්. බලන්න හොඳයිද කියලා...





https://youtu.be/rK01yMT-jzM 


එහෙනම් ගිහින් එන්නානානාම්... මම Elakiriයට අලුත්. වැඩි වැඩ දන්නේ නෑ මේ Forum එකේ. ඒ හන්දා PM දාන අය FB එකෙන් Message එකක් දාන්න ආ...



www.Facebook.com/hprane
මේ මම ඉන්න ගමන් කරන තවත් වැඩක්. පුලුවන් අය Like එකක්වත් දාලා Sup දෙන්න.



www.Facebook.com/TVSeriesLK
Last edited:



Mama mewa Google Drive ekata dala demme sharing on karala. Wena kohomada pics danne kiyala poddak kiyanna. Mama apahu hadannam. 