Arduino පාඩම 14 - පින් 3 කින් පින් 8 ක වැඩ.

8:56 PM 0

ගොඩ කාලෙකට පස්සේ තමයි arduino ගැන post එකක් ලියන්න පුලුවන් උනේ. මේ පාර පාඩමෙන් මම කතා කරන්න යන්නේ decoders ගැන.

Decoders කියන්නේ මොකක්ද ?

decoders කියන්නේ අපි ලබාදෙන bit කියපයක් තවත් bit කිහිපයකට වෙන් කරලා output එකක් ලබාදෙන්න පුලුවන් දෙයකට. උදාහරණයක් විදිහට කිව්වොත් අපිට arduino එකේ pin 3 භාවිතා කරලා වෙන වෙනම LED 8 ක් control කරන්න බැහැ. නමුත් decoder එකක් use කලොත් අපිට decoder එකට arduino එකේ pin 3 කින් input ලබාදීලා decoder එකෙන් pin 8 කින් output ගන්න පුලුවන්. තවත් විදියකට කිව්වොත් arduino එකේ pin 3 ක් විතරක් use කරලා වෙන වෙනම LED 8 ක් කොන්ට්‍රොල් කරන්න පුලුවන්.

මන් කලින් විස්තර කලේ pin 3 කින් input දීලා pin 8 කින් output ගන්න පුලුවන් decoder එකක් ගැන. මේ වගේ decoder වලට 3 bit to 8 bit decoder කියලා කියනවා. මේ වගේ තවත් decoders වර්ග තියෙනවා.

2 bit to 4 bit decoder       - input 2 කින් output 4 ක්
4 bit to 16 bit decoder     - input 4 කින් output 16 ක්
5 bit to 32 bit decoder     - input 5 කින් output 32 ක්

Decoders වැඩ කරන්නේ කොහොමද ?

decoders වර්ග කිහිපයක්ම තිබුනත් මේවා හැම එකක්ම වගේ වැඩ කරන්නේ පොදු ආකෘතියකට. මේ ආකෘතිය තේරුම් ගත්තහම ඕනේම decoder එකකින් වැඩ කරන්න පුලුවන්. 
මන් මෙතන කියලා දෙන්නේ 74HC237 කියන 3 bit to 8 bit decoder එක use කරන්නේ කොහොමද කියලා.74HC238 IC එකත් කිසිම වෙනසක් නැතුව use කරන්න පුලුවන්.  IC එක රු. 60-80 ත් අතර ගානකට ලංකාවේ මිලදී ගන්න තියෙනවා.

මේ decoder තවත් විශේෂත්වයක් තියෙනවා. ඒ මේ pin 8 න් අපි HIGH කරන පින් එක ඇරුනහම අනිත් pin ඔක්කොම LOW වෙනවා. ඒ කියන්නෙ අපිට වෙලාවකට output ගන්න පුලුවන් එක පින් එකකින් විතරයි.

  • සාමාන්‍ය විදිහට මේ IC එකට GND, VCC pin වලට power එක දෙන්න ඕනේ. 
  • Y0-Y7 වෙනකන් තියෙන්නේ Output pin 8
  • A0-A2 වෙනකන් තියෙන්නේ Inout pin 3
  • E1, E2, E3 කියන්නේ enable pin (සාමාන්‍යයෙන් E1, E2 ground කරලා E3 vcc connect කරනාවා)






සාමාන්‍යයෙන් decoder වැඩ වලදී මේ 4,5 පින් ground කරලා 6 pin එක 5v වලට connect කරනව. උඩ වගුවේ තියෙන්නේ input pin වල voltage level, HIGH සහ LOW කරහම output pin වල voltage වෙනස් වෙන විදිහ.

Arduino සමග decoder

මම මෙතනදී කරන්න යන්නේ push button එකක් ඔබන වාරයක් ගානේ LED එක එක on කරන්න යන්නේ. මේවගේ වැඩක් කරන්න LED 8 කට arduino ouputs 8 ක් ඕනෙ උනත් මම decoder එකක් භාවිතා කරලා arduino ouputs 3 කින් මේක කරලා තියෙන්නේ.

Components

Arduino              x1
74HC238 IC       x1
LED                   x8
680Ohm Resi.    x2
Push button        x1

Diagram


Arduino Sketch


Code explain 

setup එකේදී සාමාන්‍ය විදිහට 4,5,6 pin output විදිහටත්, push button එකට හයි කරපු 11 pin එක input විදිහටත් setup කරගෙන තියෙනවා.

ඊට පස්සේ මම LEDon කියලා function එකක හදාගෙන තියෙනවා. මේක තමයි මෙතන තියෙන වැදගත්ම code කොටස. LEDon කියන function එක call කරන තැන d1,d2,d3 කියන parameters වලට ලබාදෙන අගයන් අනුව 4,5,6 කියන pin වල status වෙනස් වෙනවා. ඒ කියන්නේ pin HIGH ද ? LOW ද ? කියලා තීරණය වෙන්නේ d1,d2,d3 කියන parameters වලට ලබාදෙන අගයන් අනුව.

උදාහරණයක් විදිහට  LEDon(0,0,0); විදිහට function එක call කලා කියලා හිතමු. එතකොට වෙන්නේ 4,5,6 කියන pin 3 ම low වෙන එක. එතකොට comment එකේ තියෙනවා වගේ පළවෙනි LED එක විතරක් on වෙලා අනිත් LED 7 ම off වෙනවා.
LEDon(0,0,1); විදිහට function එක call කලා කියලා හිතමු. එතකොට වෙන්නේ 4,5 කියන pin 2 low වෙලා 6 pin එක high වෙන එක. එතකොට දෙවෙනි LED එක විතරක් on වෙලා අනිත් LED 7 ම off වෙනවා.

මේක හරියට වැඩ කරන්නේ truth table එකක් වගේ. මේ විදිහටම තමයි ඕනම decoder එකක් වැඩ කරන්නෙ.

ඊට පස්සේ loop එකේදී මුලින්ම බලනවා ll පින් එක high වෙලාද කියලා. 11 pin එක high වෙලා නම් counter කියන variable එකේ අගය 8 ට අසමානද කියලා බලනවා. අසමාන නම් counter කියන variable එකේ දැන් තියෙන අගයට තව එකක් එකතු වෙනවා. variable එකේ අගය 8 ට අසමාන නැත්නම් ඒ කියන්නේ අගය 8 නම්, variable එකේ අගය 1 කරනවා.

ඊට පස්සේ case statement එකක් දාලා counter එකේ තියෙන අගය අනුව අදාල LED එක on කරනවා. article එක හොදයි නම් අනිත් අයටත් බලන්න share කරන්න.

demo





Coreldraw සිංහලෙන් 3 - Corel draw Tools ගැන දැනගමු.

10:06 AM 3
අද මං මේ corel draw video පාඩම් මාලාවේ 3 වෙනි විඩියෝ පාඩම මගින් කතා කරන්න බලාපොරොත්තු වෙන්නේ අපට අවශ්‍යම tools සහ dockers පිළිබදවයි.

Coreldraw සිංහලෙන් 2 - Corel draw Interface ඒක ගැන දැනගමු.

10:02 PM 3
Corel Draw වලින් වැඩ පටන් ගන්න කලින් interface එක ගැන පොඩි අවබෝධයක් තියෙන්නම ඕනේ. එතකොට තමයි අපිට නිර්මාණයක් පහසුවෙන් කරගන්න පුලුවන් වෙන්නේ. නැත්නම් ඉතින් වෙන්නේ design කරන එක පැත්තකින් තියලා option හොය හොය ඉන්න. ඒක නිසාම මේ පාර video එකේ අපි කතා කරන්නේ Corel Draw එකේ interface එක ගැනයි. corel draw එකේ panel, tool වගේම menu ගැනත් අද කතා කරවා.

Coreldraw සිංහලෙන් - Graphic Design සහ Coreldraw පිළිබද මුලික හැදින්විම.

1:04 PM 2

හැමෝම පිලිගන්නවා අද ඉදලා අපේ සොෆ්ට්වෙයාලන්තය Page එකේ ආරම්භ වෙන Coreldraw පාඩම් මාලාවට. මේ Lesson serious එක video විදිහට තමයි කරන්නේ. මේක කරන්නේ අපේ page එකට අලුත්නි එකතු වුනු Lakshan Harsha සහෝදරයා.


මෙක තමයි මගේ පළවෙනි POST එක.. හැමදාම code ඒක්ක ඔට්ටු ෙවන අපේ  කොල්ලෝ  කෙල්ලෝ ටික ඒක්කහු කරගෙන පොඩි අාර්ට්ලි වැඩක් කරන්නයි මගේ idea ඒක. ඉස්සරහට මේ blog ඒකත් ඒක්ක set වෙලා ඔයාලට Graphic design ගැන  තෙරෙන සින්හලෙන්ම කියලා දෙන්නයි මගේ idea ඒක තියෙන්නේ. මං ඉස්සරහට අපේ මේ blog ඒකෙ ඉන්න කස්ටියට Photoshop Illustrator Coreldraw Indesign Lightroom වගේ හැම software ඒකක් ගැනම කතා කරන්න හිතාගෙන ඉන්නවා. software ඒකක් open කරපු ගමන් design ඒකක් හදනවට වඩා මේ හැම software ඒකක් ගැනම හොද knowledge ඒකක් ඒන විදියටයි මං මේ Tutorial හදලා තියෙන්නේ ඒහෙනම් අපි අද ඉදන් බෙලි කපන්න අත පය ගලනවන්න ඉගෙන ගමු. අාාාා කට්ටිය ඒකපාරට බය උනාද බය වෙන්න ඒපා අැත්තට බෙලි කපන්න නෙමේ අපි ඉස්සරහට කතා කරමු කොහොමද හොද designer කෙනෙක් වෙන්නෙ කියලා. අපි අද මුලින්ම කතා කරමු Graphic Design කියන්නේ මොකක්ද කියලා. මෙ video ඒක බලලා අඩු පාඩු කියන්නකෝ කස්ටිය. පළෙවනි ඒක නිසා අවුල් තියනවනම් මං සමාව ඉල්ලනවා මුලින්ම. ඒෙහෙනම් කොල්ලනෙ ලක්ෂාන්  කොල්ලා කැපුනා උබලා මට ෂාන් කියලම කියහල්ලකෝ..

Arduino පාඩම 13 - Code කරන්නේ නැතුව Arduino PC App හදන හැටි.

11:27 AM 9

මම මේ පාර article එකෙන් කතා කරන්න යන්නේ Arduino එක PC එකත් එක්ක සම්බන්ධ කරන program එකක් හදා ගන්න හැටි ගැන. මීට කලින් පාඩමක මම මේක කරන හැටි ගැන සඳහන් කලා නමුත් ඒ පාඩමේ මම කතා කලේ VB.net හරි C#.net යොදාගෙන ඒ විදිහට program එකක් ලියන හැටි ගැනයි. එහෙමත් නැත්නම් වෙන මොකක් හරි language එකක් use කරලා තමයි program එක ලියන්න වෙන්නේ.

නමුත් මම මේ පාර කියලා දෙන්නේ PC එකේ ඉදලා arduino එක control කරන්න පුලුවන් computer program එකක් කිසිම computer language එකක් use නොකර හදාගන්නේ කොහොමද කියන එක ගැනයි. 

මෙතනදී මම උදාහරණයක් විදිහට කියලා දෙන්න හදන්නේ RGB LED එකක පාට වෙනස් කරන්න පුලුවන් program එකක් code කරන්නේ නැතුව හදාගන්නේ කොහොමද කියන ගැනයි.

මේක කරන්න මම පාවිච්චි කරන්නේ App Make කියන software එක. මේ software එක 100% ක්ම මගේම නිර්මාණයක්. මේකෙ තවත් විශේෂත්වයක් තියෙනවා ඒ තමයි program එකට ගැලපෙන Arduino serial data code කොටස  එක auto generate වෙනවා. මේක ඇත්තටම අලුත් වැඩක්. මම දන්න තරමින් මේ වගේ software එකක් වෙන නෑ. 



මේ software එක මම Arduino වලට හදපු  aulternative IDE එක වන Codino IDE එක 2nd version එකත් එක්ක ලැබෙන software එකක්. App Make එක install කරග්න්න Codino IDE v2 setup එක download කරලා install කරගන්න ඔනේ. install කරගත්තට පස්සේ

Download setup here : http://codino.tk/

Start > All Programs > Codino > Codino IDE > App Make
Desktop > App Make
Codino IDE > Tools > App Make

වගේ ඕනම ක්‍රමයකට App Make open කරගන්න පුලුවන්. 

PC Program එක සෑදීම.

මේකට මුලින්ම App Make open කරගන්න ඕනේ. open කරගත්තට පස්සේ පහල තියෙනවා වගේ interface එකක් දකින්න පුලුවන්.

 ඊට පස්සේ කරන්න තියෙන්නේ  new project උඩ click කරලා Window settings window එක ලබා ගන්න එකයි. එතනදී project එකට කැමති නමක් දීලා Done කරහම App එකේ main window එක desgin කරන අවස්තාවට යන්න පුලුවන්.

එතනින් එහාට කරන්න තියෙන්නෙ බොහොම සුළු දේවල් ටිකක්. ඒ දේවල් ටික පහල තියෙන video එකේ තියෙනවා.

කාගාව හරි RGB LED එකක් නැත් නම් ඒ වෙනුවට Red, Green, Blue LED 3 ක් use කරන්න පුලුවන්. එතකොට circuit එක පහල විදිහට තමයි එන්නේ.


වැඩ අවසන් කිරීම.

දැන් video එකේ විදිහට කරහට පසේ program එකේ exe file එක ගන්න ඕනෙනේ ඒකට කරන්න තියෙනේ පොඩි දෙයක්. program එක run කරාට පස්සේ අව්ලක් නැතුව වැඩ කරනවනම් 
Action > Make EXE  click කරහම ඇති. ඊට පස්සේ exe file එක save වෙන්න ඕනේ folder එක select කරහම exe file එක ඒ folder එකේ save වෙනවා.



මෙහෙම save කරහම file දෙකක් create වෙනවා. මේ හදපු වෙන computer එකක run කරන්න ඕනෙ නම් මේ file 2 ක විතරක් copy කරහම ඇති.

මේ විදිහට RGB LED විතරක් නෙමෙයි, Servo motor, Fan, Relay, Fan, Light, Displays වගේ ගොඩක් දේවල් control කරන්න පුලුවන් තවත් program ගොඩක් code නොකර හදා ගන්න පුලුවන්.

software එක හොදයි කියල හිතෙනවන codino page එකත් like කරන්න. http://facebook.com/codino

මේ ගැන තවත් විස්තර හා videos  http://codino.businesscatalyst.com/ හරහා ලබා ගන්න පුලුවන්.

මේ article එක හොදයි නම් share කරන්න අමතක කරන්නත් එපා. මොනව හරි නොතේරෙන දෙයක් තියෙනවනම් comment එකක් දාලා අහන්න.


Arduino පාඩම 12 - EEPROM එකේ Data save කරන්නේ මෙහෙමයි.

5:30 PM 11

අපිට Arduino එක්ක වැඩ කරන කොට සමහර දේවල් save කරගන්න උවමනා වෙනවා. Arduino එකට power එක දීලා තියෙන වෙලාවට විතරක් data එක save කරගෙන තියාගන්න ඕනේ උනාම අපි variable use කරනවා. නමුත් Arduino එක power එක off කරහම මේ data මැකිලා යනවා.
අපිට Power එක off කරපු වෙලාවට මැකිලා යන්නේ නැතුව data save කරලා තියගන්න ඕනෙ උනහම වෙනත් ක්‍රම පාවිච්චි කරන්න වෙනවා. උදාහරණයක් විදිහට කිව්වොත් EEPROM, SD Card, Pen Drive වගේ ඒවා  යොදාගන්න පුලුවන්.
මම මේ පාර පාඩමෙන් කියලා දෙන්නේ Ardunio වල තියෙන EEPROM එක use කරලා data save කරන්නේ කොහොමද කියන එක ගැනයි. Arduino board වල තියෙන Micro Controller එක අනුව මේ EEPROM එකේ තියෙන ඉඩ ප්‍රමාණය වෙනස් වෙනවා. පහලින් තියෙන්නේ විවිධ Arduino board වල තියෙන EEPROM size එකයි.

   - Arduno Duemilanove: 512b EEPROM storage.
    - Arduino Uno, Mini, Pro Mini, Nano:        1kb EEPROM storage. (Atmega 328 based boards)
    - Arduino Mega:       4kb EEPROM storage.

කොහොම උනත් මේ EEPROM එක පාවිච්චි කරන්න කලින් ඒකේ තියෙන සීමා හා සැකැස්ම ගැන පොඩ්ඩක් දැනගෙන ඉන්න ඕනේ.

EEPROM හි සැකැස්ම.

මම මෙතනදී කතා කරන්න බලාපොරොත්තු වෙන්නේ Arduino UNO හි ඇති EEPROM එක ගැනයි. නමුත් මේක Atmega 328 based වෙලා තියෙන Pro Mini, Nano වගේ board වලටත් අදාලයි. 
ඒ වගේම අනිත් ඕනෑම Arduino board  එකකටත් වලංගුයි. වෙනසකට තියෙන්නේ EEPROM එකේ size එක විතරයි.

Arduino UNO board එකක 1024 Bytes (= 1KB) ක EEPROM එකක් තියෙනවා. අපි data save කරන්නේ මේ එක byte එකක තමයි. මේ එක byte එකකට එහි පිටීමට අදාලව Byte address එකක් තියෙනවා. අපි data save කරන කොට ඒ data save කරන්නේ මොන byte එකේද කියලා හදුවලා දෙන්නේ මේ address එකේ උදව්වෙන්. 

ඒ වගේම තමයි අපිට මේ byte එකක් තුල ගබඩා කරන්න පුලුවන් වෙන්නේ 0 ඉදලා 255 දක්වා වෙන සංඛ්‍යාත්මක අගයන් විතරයි. ඒ කියන්නේ මේකේ වචන save කරන්න බෑ ඉලක්කම් විතරයි.

EEPROM  Data Write/Read

 මේ සඳහා යොදා ගන්න Keyword 2 ක් තියෙනවා. එකක් data write කරන්න අනික data read කරන්න.

 EEPROM.write(addr, val);

data write කරන්නේ මේ keyword එකෙන් තමයි. මෙතන addr කියලා තියෙන්නේ data write කිරීමට බලාපොරොත්තුවෙන Byte එකට හිමි address එකයි. val කියලා තියෙන්නේ write කරන value එකයි . මෙතන 0-255 වෙන අගයක් ලියන්න පුලුවන්.

EEPROM.read(address);

data read  කරන්නේ මේ keyword එකෙන් තමයි. මෙතන address කියලා තියෙන්නේ data read කිරීමට බලාපොරොත්තුවෙන Byte එකට හිමි address එකයි

මේක වැඩ කරන හැටි තේරුම්  ගන්න මුලින්ම මේ code එක ලියලා බලන්න. මෙතනදී මම කරලා තියෙන්නේ 1, 2 හා 3 කියන Byte වලට 128, 12 හා 0 කියන value write කරලා ඊට පස්සේ ඒ values read කරලා serial monitor එකේ print කරන එකයි.

#include <EEPROM.h>
void setup(){
    Serial.begin(9600);
    Serial.println(EEPROM.length());  
    //Write values
    EEPROM.write(1,128);
    EEPROM.write(2,12);
    EEPROM.write(3,0);
    //Read values
    Serial.println(EEPROM.read(1));
    Serial.println(EEPROM.read(2));
    Serial.println(EEPROM.read(3));
}

මම මෙතනදී මුලින්ම EEPROM library එක include කරගෙන තියෙනවා. 3 වෙනි පෙලියෙන් serial communication එක start කරලා තියෙනවා.

4 පේලියෙන් කරලා තියෙන්නේ EEPROM එකේ කොච්චර byte ප්‍රමාණයක් තියෙනවද කියන එක serial monitor එකේ print කරන එක.

6,7,8 පේලි වලින් කරලා තියෙන්නේ 1,2,3 කියන byte වල පිලිවලින් ඒ byte වලට 128,12,0 කියන values write කරලා තියෙනවා.

10,11,12 පේලි වලින් කරලා තියෙන්නේ 1,2,3 කියන byte වල තියෙන value එකින් එක serial monitor එකේ print කරන එකයි.

එක පාරක් මේ code එක upload කරලා arduino එකේ power off කරලා අයෙත් arduino එක PC එකට connect කරලා 6,7,8 පේලි delete කරලා code එක අයේ upload කරන්න. ඊර පස්සේ serial monitor එක ආයෙත් open කරලා බලන්න්. 128, 12, 0 කියන values අයේ ප්‍රින්ට් වේවි.



EEPROM Update.

EEPROM එකේ තියෙන එක byte එකක data write කරන්න පුලුවන් වාර ගණනක් තියෙනවා ඒ කියන්නේ මේ එක byte එකක data write කරන්න පුලුවන් 100,000 වතාවක් විතරයි. ඒ වගේම මේ එක data write එකකට 3.3 ms (3.3 මිලි තත්පර) කාලයක් වැයවෙනවා.

මේ කාරනා දෙකම මග හැර ගන්න අපිට මේ update keyword එක use කරන්න පුලුවන්. 

EEPROM.update(addr, val);

මෙතන addr කියලා තියෙන්නේ data update කිරීමට බලාපොරොත්තුවෙන Byte එකට හිමි address එකයි. val කියලා තියෙන්නේ write කරන value එකයි . මෙතන 0-255 වෙන අගයක් ලියන්න පුලුවන්.

#include <EEPROM.h>
void setup(){
    Serial.begin(9600);
    Serial.println(EEPROM.length());  
    //Write values
    EEPROM.update(1,255);
    EEPROM.update(2,25);
    EEPROM.update(3,1);
    //Read values
    Serial.println(EEPROM.read(1));
    Serial.println(EEPROM.read(2));
    Serial.println(EEPROM.read(3));
}

මේකටත් තියෙන්නේ කලින් පැහදිලි කිරීමම තමයි. වෙනසකට තියෙන්නේ data write කිරීම වෙනුවට data update කිරීමයි.
Ardunio සදහාම නිර්මාණය කෙරුනු ලංකාවේ පලවෙනි Alternative IDE එක මෙතනින් download කරගන්න.

article එක හොදයි නම් comment එකක් දාගෙනම යන්න !
article එක හොදයි නම් අනිත් අයටත් බල්න්න share කරන්න. අපේ page එකටත් like කරන්න අමතක කරන්න එපා.

WPF VB.Net පාඩම 13 - Message box වලින් වැඩ ගන්නේ මෙහෙමයි.

7:45 AM 3

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ කොහොමද message box භාවිතා කරලා අපි හදන computer program එක භාවිත කරන user ට පණිවිඩයක් දෙන්නේ, user ගෙන් ප්‍රශ්නයක් අහලා උත්තරයක් ගන්න වගේ දේවල කොහොමද කරගන්නේ කියලා.

මේ කරන්න අපි වෙනම window ලබාගන්න ඕනෙ නෑ. මේ වගේ වැඩ කරග්න්න විශේෂ class library එකක් visual studio වැඩසටහන තුලින්ම අපිට සපයනවා. මෙතැන ඉදලා ඉස්සරහට විස්තර කරනේ මේ message box වලින් වැඩ කරන්නෙ කොහොමද කියන එක ගැනයි.

Message Box එකක පොදු ආකෘතිය.

හැම දෙයකටම වගේ message box එකකටත් පොදු ආකෘතියක් තියෙනවා. පහල තියෙන Code එක තමයි අපි බහුලව භාවිතා කරන පොදු ආකෘතිය. ඒ වගේම තමයි පහල රූපයේ තියෙන්නේ message box එකක user interface එකේ භාහිර පෙනුම හා එහි විවිධ කොටස්.

MessageBox.Show(Title, Content, MessageBoxButton, MessageBoxImage)

Message Box එකක් පෙන්වීම.

මේ කරන්න මුලින්ම අලුත් WPF application project එකක් open කරගෙන ලැබෙන MainWindow එකට අලුති button එකක් අරගෙන button එකේ content එකට කැමති නමක් යොදා ගන්න මම නම් යොදාගෙන තියෙන්නේ Show Message Box කියලා.

ඊට පස්සේ button එක්කේ Click event එක තුලදී පහලින් තියෙන code එක ලියන්න.

MessageBox.Show("Title","Content",MessageBoxButton.OK,MessageBoxImage.Information)



මෙතන Title එකයි content කියන එකටයි තමන් කැමති නමක් දෙන්න uපුලුවන් උනත් ඒවා දෙන්න ඕනේ String format එකෙන්, ඒ කියන්නේ පෙරලි කොමා ඇතුලේ.

ඒ වගේම තමයි Button style කියන Ok වෙනුවට වෙනත් style එකක් උනත් යොදා ගන්න පුලුවන්. Image  එකටත් එහෙම තමයි.

මේ විදිහට වෙන තියෙන style මොනවාද කියලා බලගන්න තියෙන හොදම විදිහ තමයි. MessageBoxButton කියලා type කරලා තිත තියපුවහම එන list එක කියවලා බලන එක

දැන් F5 ඔබලා program එක Run කරලා button එක click කරපු වහම පහලින් තියෙනවා වගේ Message Box එකක් දකින්න ලැබේවි.

වැදගත්.

අපි කලින් වගේ code එකක් ලියලා Message Box එකක්  show කරගත්තහම පස්සේ මතක තියාගන්න ඕනේ වැදගත් තියෙනවා. ඒ තමයි Message Box එකක් show කරහට පස්සේ Message Box එක close කරනකන් Message Box එක show කරන එකට අදාල code එකට පහලින් තියෙන code කිසිම එකක් වැඩ කරන්නෙ නෑ කියන එක.

තව දුරටත් උදාහරණයකින් කියනවනම් පහලින් තියෙන code එක බලන්න. එතන් දී මම පළවෙනි පේලියේ Message Box එකක්  show කරලා දෙවැනි පේලියේ button එකේ Content එක වෙනස් කරලා තියෙනවා.


නමුත් program එක run කරහම ලැmබුන Message Box එක close කරන කන් දෙවැනි පේලියේ තියෙන code එක වැඩ කරන්නේ නෑ.

Message Box එකකින් ලැබෙන පිළිතුර අනුව වැඩ කිරීම.

ඔයාලා දැකල ඇති සමහර software වලදී Message Box හරහා විවිධ ප්‍රශ්න අහලා එතනදී අපි ලබා දෙන උත්තරය අනුව ක්‍රියා කරනවා. මම කියන්න යන්නේත් ඒ විදිහට ප්‍රශ්න අහලා ලබා දෙන උත්තරය අනුව ඉදිරිය ක්‍රියත්මකවෙන ආකාරයේ program එකක් හදන හැටියි.
ඒකට button එකක් අරගෙන button එකේ click event එකේ පහලින් තියෙන code එක ලියන්න.

Select Case MessageBox.Show("Are you ok ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question)
            Case MessageBoxResult.Yes
                MessageBox.Show("You are ok. That's good")
            Case MessageBoxResult.No
                MessageBox.Show("Oh no !")
End Select

ඔය නිල් පාට පේලිය තනි පේලියට ලියන්න ඕනේ.

Code එක පැහැදිලි කිරීම.

මම මෙතන කරලා  තියෙනේ button එක click කලහම Message Box එකක් හරහා User ගෙන්  Are you ok ?"  විදිහට  ප්‍රශ්නයක් අහනවා.
මෙතනදී මම select-case එක භවිත කරලා user ලබාදෙන උත්තරය මොකක්ද කියලා බලනවා.
user Yes කියලා ලබා දුන්නොත් You are ok. That's good කියන message box එක පෙන්වනවා

No කියලා ලබා දුන්නොත් Oh no !" කියන message box එක පෙන්වනවා.

මෙතනදී ඔයාලා මතක තියගන්න ඕනේ තව දෙයක් තියෙනවා. ඒ තමයි හැම වෙලේම Title, Button style හා Image/Icon එක මොකක්ද කියලා ලබා නොදීම උනත් message box එකක් පෙන්නන්න පුලුවන් කියන එක.

ලිපිය හොදයි නම comment එකක් දාලා තව කෙනෙකුට බලන්න share කරන්න.

Arduino පාඩම 11 - 7 Segment Display භාවිතය.

8:25 PM 2

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ SSD එහෙමත් නැත්නම් 7 Segment Display (සප්ත කන්ඩ දර්ශක) Arduino එකත් එක්ක පාවිච්චි කරන්නේ කොහොමද කියන එක ගැනයි. SSD එකක් කියන්නේ output module එකක්. සාමාන්‍යයෙන් LCD එකකට වඩා අවධානය ගන්න ඕනේ අවස්ථාවල මේ SSD පාවිච්චි කරනවා. මම මෙතනදී කියලා දෙන්නේ ඉලක්කම් විතරක් පෙන්නන SSD  ගැනයි. නමුත් ඉංග්‍රීසි අක්ෂර පෙන්නන්න පුලුවන් Segment Display ත් තියෙනවා.

SSD හැදින්වීම

SSD එකක් හැදිලා තියෙන්නේ වෙන වෙනම පාලනය කරන්න පුලුවන් LED 8 කින් මේ 8 න් 7 ක්ම පාවිච්චි වෙන්නේ අංකයක් දර්ශනය කරන්නයි. ඉතුරු LED එක තියෙන්නේ දශම තිත සදහා යි. ඒවගේම තමයි අපි SSD එකක් මිලදී ගන්න කොට ප්‍රධාන වශයෙන් සැලකිලිමත් වියයුතු කරුන නම් Common පින් එකයි. මෙය ආකාර දෙකකට තියෙනවා. ඒ කියන්නේ common anode (පොදු අග්‍රය + ) හා common cathode (පොදු අග්‍රය -) වශයෙන් වර්ග දෙකක් වෙනවා. පහලින් තියෙන්නේ SSD එකක දල සැකැස්මයි.

සාමාන්‍යයෙන් SSD එකක් කියන්නෙ එක ඉලක්කමක් විතරක් පෙන්නන්න පුලුවන් තනි unit එකකට.  මේ එක unit  එකකට segment  එකක් කියල කියනවා. කොහොම උනත් හුගක් අවස්තා වල අපිට එක ඉලක්කමකට වඩා පෙන්නන්න ඕන අවස්ථා තියෙනවා. එතකොට අපි SSD කිහිපයක් එකතු කරලා හදලා තියෙන SSD unit එකක් ගන්න ඕනේ.

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ අංක 4 ක් පෙන්නන්න පුලුවන් SSD unit එකකින් වැඩකරන හැටි ගැනයි. මේ වගේ SSD එකකට කියන්නේ 4-digit SSD කියලයි. සාමාන්‍යයෙන් මේ 4-digit SSD එකක්ත් common pin එකට අමතරව සැලකිලිමත් වෙන්න ඕනේ තව දෙයක් තියෙනවා. ඒ කියන්නේ pin ගණන ගැනයි. 4-digit SSD එකක් 12 pin හා 16 pin වශයෙන් වර්ග 2 ක් තියෙනවා මම මෙතන්දී කතා කරන්නේ 4-digit 12 pin common cathode seven segment display ගැනයි. පහලින් තියෙන්නෙ 4-digit SSD එකක් පෙනුම හා පින් පිහිටලා තියෙන හැටියි.


SSD Driver IC

මෙතනදී මම SSD Driver IC එකක් පාවිච්චි කරලා තියෙනවා. මේකට බහුලව යොදාගන්න IC 2 ක් තියෙනවා MAX7219, MAX7221. මම මෙතනදී ගන්නේ MAX 7219 කියන IC එක. මේ IC එකට එකවර අංක 8 තියෙන Display එකක් හසුරුවන්න උනත් පුලුවන්. ලංකවේ මේ IC එක රු.180/- විතර වෙනවා.
පහලින් තියෙන්නේ මේ IC එකේ පින් OUT එක.

Components

Arduino board
Max7219 Chip
4-digit 7-segment LED display (common cathode)
40KΩ resistor
10μF capacitor
100nF capacitor

Circuit Diagram


Arduino Code

#include <SPI.h>

const int slaveSelect= 10; //pin used to enable the active slave

const int numberofDigits= 2;

const int maxCount= 99;

int number=0;

void setup()
{
Serial.begin(9600);
SPI.begin(); //initialize SPI
pinMode(slaveSelect, OUTPUT);
pinMode(slaveSelect, LOW); //select Slave

//prepare the 7219 to display 7-segment data
sendCommand (12,1); //normal mode (default is shutdown mode)
sendCommand (15,0); //Display test off
sendCommand (10,8); //set medium intensity (range is 0-15)
sendCommand (11, numberofDigits); //7219 digit scan limit command
sendCommand (9, 255); //decode command, use standard 7-segment digits
digitalWrite(slaveSelect, HIGH); //deselect slave
}

void loop(){
//display a number from serial port terminated by end of line character
if(Serial.available())
{
char ch= Serial.read();
if (ch == '\n')
{
displayNumber(number);
number=0;
}
else
number= (number * 10) + ch - '0';
}
}

//function to display up to 4 digits on a 7-segment display
void displayNumber (int number)
{
for (int i=0; i < numberofDigits; i++)
{
byte character= number % 10; //get the value of the rightmost digit
if (number == 0 && i > 0)
character = 0xf;
sendCommand(numberofDigits-i, character);
number= number/10;
}
}

void sendCommand(int command, int value)
{
digitalWrite(slaveSelect, LOW); //chip select is active low
SPI.transfer(command);
SPI.transfer(value);
digitalWrite(slaveSelect,HIGH);
}

original source code & diagram by : learningaboutelectronics.com/
Code එක upload කරලා Serial monitor එකේ 0 ත් 9999 ත් අතර අගයක් ගහල බලන්න.
මේ ක්‍රමයට අමතරව තව පහසු ක්‍රමයක් තියෙනවා. මෙච්චර code ලියන්න ඕනෙත් නෑ. පහලින් තියෙන link එකෙන් ඒ ගැන වැඩිදුර දැනගන්න පුලුවන්.
http://embedded-lab.com/blog/new-version-of-max7219-based-4-digit-serial-seven-segment-led-display/
Ardunio සදහාම නිර්මාණය කෙරුනු ලංකාවේ පලවෙනි Alternative IDE එක මෙතනින් download කරගන්න.

article එක හොදයි නම් අනිත් අයටත් බල්න්න share කරන්න. ඔයාලා හදපු project වල photo එකක් comment කරන්නත් අපේ එකේ post කරන්නත් අමතක කරන්න එපා.