පරිඝණකයෙන් විදුලි උපකරණ ‍හසු‍රවමු 03.

Hasistranger

Well-known member
  • Oct 21, 2010
    11,248
    1,449
    113
    Western Province, SL
    පරිඝණකයෙන් විදුලි උපකරණ ‍හසු‍රවමු 03.


    පරිඝණකයෙන් විදුලි උපකරණ ‍හසු‍රවමු 01.

    http://www.elakiri.com/forum/showthread.php?t=1493101

    පරිඝණකයෙන් විදුලි උපකරණ ‍හසු‍රවමු 02.

    http://www.elakiri.com/forum/showthread.php?t=1497593



    අද මන් ඔයාලට කියල දෙන්න යන්නේ පරිඝණකයේ යතුරු පුවරුවේ යතුරු එබිම මගින් පරිඝණකයෙන් පිටතට සංඥා යවන්න පුළුවන් පරිගණක වැඩසටනක් නිර්මාණය කරන ආකාරයි .
    මෙයට අපි පරිඝණක භාෂාවේදී හදුන්වන්නේ Key Binding කියාය , ඒ කියන්නේ අපි යතුරු පුවරුවේ යම් යතුරක් එබූ විට එයට අනුරුප ක්‍රියාවක් සිදු කිරීමයි.මෙහිදී යතුරු පුවරුවේ සෑම යතුරකටම අදාළ කේතයක් (code එකක්) තිබෙනවා ,මෙය පරිඝණක මෘදුකාංග නිර්මාණය කිරීමේදී අංකයක් ලෙස භාවිතා කරයි .
    අප ප්‍රථමයෙන්ම එකී එකී යතුරට අදාළ කේතය සොයාගත යුතුය . මන් ඔබට එම අදාල කේතයන් සොයාගත හැකි ක්‍රමයක් දෙන්නම් .මෙම වෙබ් පිටුව මගින් ඔබට අවශ්‍ය සෑම යතුරකටම අදාළ කේතය ලබාගත හැක .


    http://msdn.microsoft.com/en-us/library/0z084th3(v=vs.80).aspx

    මෙම වැඩසටහනට අපි Key Code එක ලෙස යොදාගන්නේ එම යතුරට අදාළ ඉලක්කමයි .

    VbKeyA (65) -----> A

    මෙහිදී යතුරු පුවරුවේ A අකුරට අදාළ ඉලක්කම වන්නේ 65 යි .

    vbKeyUp (38) -----> Up

    මෙහිදී යතුරු පුවරුවේ Up Arrow Key එකට අදාළ ඉලක්කම වන්නේ 38 යි .

    හරි මන් හිතනවා Key Codes පිලිබදව ඔගොල්ලන් යම් දල අවබෝධයක් ලබා ගන්න ඇති කියා ,හරි අපි දැන් වැඩේට බහිමු .මෙහිදී මම මගේ වැඩසටහනට යොදා ගන්නේ යතුරු පුවරුවේ ඇති Arrow Keys හතරයි.

    ඒවායේ Key Codes මොනාද කියල අපි බලමු .

    vbKeyLeft(37) -----> Left

    vbKeyUp(38) -----> Up

    vbKeyRight(39) -----> Right

    vbKeyDown(40) -----> Down

    හරි අපි මුලින්ම Visual Studio open කරන් අලුත් Project එකක් Create කරගන්න ඕන .ඉන්පසු කලින් අපි වැඩසටහන් Code කරපු ආකාරයට කිරීමයි තිබෙන්නේ ,
    වෙනසකට ඇත්තේ යතුරු පුවරුවේ යතුරක් එබෙන විට එය හදුනාගනීමට වෙනමම method එකක් නිර්මාණය කිරීමයි .එම method එක මම පහතින් පල කරන්නම් ,


    Private Sub Key (ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

    // Your Codes type here


    End Sub

    මෙම method එක අපගේ වැඩසටහනේ paste කරගත් පසු Your Codes type here කියන ස්ථානයේ අපගේ වැඩසටහනට අදාළ codes ලිවීම පමණයි ඇත්තේ ,

    පහතින් දක්වා ඇත්තේ Key Binding යොදාගෙන නිර්මාණය කල ඉතා සරල පරිඝනක වැඩසටහනකි.


    Private Sub KeyPressed(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown


    If e.KeyValue = 38 Then 'UpArrow Key

    Out(Val("&h378"), 1)

    ElseIf e.KeyValue = 37 Then 'LeftArrow Key

    Out(Val("&h378"), 4)

    ElseIf e.KeyValue = 39 Then 'RightArrow Key

    Out(Val("&h378"), 8)

    ElseIf e.KeyValue = 40 Then 'DownArrow Key

    Out(Val("&h378"), 2)

    End If


    End Sub


    Private Sub KeyReleased(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp

    Out(Val("&h378"), 0)


    End Sub

    මෙම වැඩසටහනේ ක්‍රියාකාරිත්වය සැකෙවින් මෙසේය , අප UpArrow Key එක එබූ විට Pin අංක 02 හි විභවය ඉහල දමන අතර Key එක අතහැරිය විට එම Pin එකේ විභවය ශුන්‍ය වේ,
    එලෙසම DownArrow Key එක එබූ විට Pin අංක 03 හිද ,LeftArrow Key එක එබූ විට Pin අංක 04 හිද RightArrow Key එක එබූ විට Pin අංක 05 හිද විභවය ඉහල දමන අතර එම අදාළ Key එක
    අතහැරිය විට එම Pin වල විභවය ශුන්‍ය වේ.මෙහිදී එකවර එබිය හැක්කේ එක Key එකක් පමණි .

    පහතින් මෙම වැඩසටහන නිර්මාණය කිරීමේ වීඩියෝ එක .


    http://www.youtube.com/watch?v=IwanfQo9Cds&feature=youtu.be




    මෙහි Module එකේ Code එක පහතින් .

    Option Strict Off

    Option Explicit On




    'Inp and Out declarations for port I/O using inpout32.dll.

    Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer

    Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)


    මෙම වැඩසටහන නිර්මාණය කර ,ඉහත Threads වලදී මන් ඔයාලට කියල දුන්න ආකාරයට LED Bulbs 4 ක් Pararrel Port එකේ අංක 2,3,4,5 යන Pin වලට සවිකර වැඩසටහන ධාවනය කර ඔබගේ යතුරු පුවරුවේ Arrow Keys Press කර බලන්න ,එලෙසම
    යතුරු පුවරුවේ අනෙකුත් යතුරු වලටද අපට අවශ්‍ය ආකාරයට විදානයන් සැකසිය හැක අපට එයට අවශ්‍ය වන්නේ අදාළ Key එකෙහි අංකය පමණි.

    මන් හිතනවා ඔගොල්ලන්ට මන් මේ කියල දුන්න දේ තේරුම්ගන්න පුළුවන් වෙයි කියල ... එහෙනං මන් ඊලග Thread එකෙන් කියල දෙන්නම් මෙම වැඩසටහන උපයොගී කරගෙන RC වහනයක් හසුරුවන හැටි ... එහෙනං මන් ගිහින් එන්නම් .... කට්ටියටම මේක බැලුවට ස්තුතියි.

     

    Hasistranger

    Well-known member
  • Oct 21, 2010
    11,248
    1,449
    113
    Western Province, SL