Tastaturmatrix Schaltung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Tastaturmatrix Schaltung

      Hallo Gemeinde,

      da ich in ferner Zukunft eine Schaltung für eine Tastaturmatrix brauche die 9x10 Tasten hat und der AVR dafür eventuell zu träge ist,
      habe ich mir mal eine einfache Schaltung überlegt die sogar die aktuell gedrückte Taste speichert. Es geht dabei um eine Dartmatrix bei der man nicht viel Zeit hat den Wurf zu erkennen.
      Die aktuelle Schaltung wird über einen 4017 (Johnson Zähler) und zwei 4013 (D-FlipFlops) betrieben. Der Zähler schaltet dabei mit 10 kHz die Zeilen durch (gibt also immer pro Spalte eine 1 aus).
      Die FlipFlops sind als Toggle-FlipFlops geschaltet und wenn jetzt zur passenden Zeile eine Taste gedrückt wird, toggelt das FlipFlop und stoppt den Zähler. Somit hat man die Bits für Zeile und Spalte.
      Erst über einen Reset-Impuls läuft die Schaltung weiter.
      Zum Test der Schaltung habe ich mal eine 4x3 Matrixtastatur verwendet. Aber man kann in der aktuellen Schaltung 40 Tasten abfragen und sie ist erweiterbar.

      Matrixtastatur.jpg

      Im Video sieht man, wie bei jedem Tastendruck die jeweilige Zeile (blaue LEDs) und Spalte (grüne LEDs) angezeigt wird.



      Vielleicht kann es ja jemand gebrauchen :)
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • Hello.

      I detached the keyboard very easily. Serial interface used (Bluetooth or USB) with GUI-O, ohne zusätzliche Elektronik und Anschlüsse.

      Initialization procedure and key reading:

      BASCOM-Quellcode

      1. '' Keypad buttons
      2. Print "| BT UID: bt1 X: 25 Y: 66 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "1" ; Chr (34); "SVAL:"; Chr (34); "1" ; Chr (34)
      3. Print "| BT UID: bt2 X: 50 Y: 66 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "2"; Chr (34); "SVAL:"; Chr (34); "2"; Chr (34)
      4. Print "| BT UID: bt3 X: 75 Y: 66 W: 15 H: 6 RED: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "3"; Chr (34); "SVAL:"; Chr (34); "3"; Chr (34)
      5. Print "waitms 10"
      6. Print "| BT UID: bt4 X: 25 Y: 74 W: 15 H: 6 RED: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "4"; Chr (34); "SVAL:"; Chr (34); "4"; Chr (34)
      7. Print "| BT UID: bt5 X: 50 Y: 74 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "5"; Chr (34); "SVAL:"; Chr (34); "5"; Chr (34)
      8. Print "| BT UID: bt6 X: 75 Y: 74 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "6"; Chr (34); "SVAL:"; Chr (34); "6"; Chr (34)
      9. Waitms 1
      10. Print "| BT UID: bt7 X: 25 Y: 82 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "7"; Chr (34); "SVAL:"; Chr (34); "7"; Chr (34)
      11. Print "| BT UID: bt8 X: 50 Y: 82 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "8th"; Chr (34); "SVAL:"; Chr (34); "8th"; Chr (34)
      12. Print "| BT UID: bt9 X: 75 Y: 82 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "9"; Chr (34); "SVAL:"; Chr (34); "9"; Chr (34)
      13. Waitms 1
      14. Print "| BT UID: btcls1 X: 25 Y: 90 W: 15 H: 6 RED: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 2 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "CLS"; Chr (34); "SVAL:"; Chr (34); "cls1"; Chr (34)
      15. Print "| BT UID: bt0 X: 50 Y: 90 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 3 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "0"; Chr (34); "SVAL:"; Chr (34); "0"; Chr (34)
      16. Print "| BT UID: btcls X: 75 Y: 90 W: 15 H: 6 ROT: 0 RAD: 2 SHVR: 0.8 SHE: 1 SHC: # 404040 BGC: # 2C2C2C SBGC: # 2C2C2C FGC: #FFFFFF FSZ: 2 BTH: 0 FFA: "; Chr (34); "font8"; Chr (34); "TXT:"; Chr (34); "CLS"; Chr (34); "SVAL:"; Chr (34); "cls"; Chr (34)
      Alles anzeigen

      Tastenlesen


      BASCOM-Quellcode

      1. Read_data: 'check what comes from phone
      2. Data_key = Inkey ()
      3. If Data_key = "@" Then Input Rdata Noecho
      4. Sep = & H20
      5. Pozicija = 1
      6. Znak = Gettoken (rdata, Sep, Pozicija)
      7. '---------------------------------------
      8. If Znak = "bt1" Then
      9. 'Flgnum = 1
      10. Num = Num + "1"
      11. Frequency = Val (num)
      12. Gosub Freqchg
      13. Gosub Freqdisp
      14. Cursor Off Noblink
      15. End If
      16. If Znak = "bt2" Then
      17. 'Flgnum = 1
      18. Num = Num + "2"
      19. Frequency = Val (num)
      20. Gosub Freqchg
      21. Gosub Freqdisp
      22. Cursor Off Noblink
      23. End If
      24. If Znak = "bt3" Then
      25. 'Flgnum = 1
      26. Num = Num + "3"
      27. Frequency = Val (num)
      28. Gosub Freqchg
      29. Gosub Freqdisp
      30. Cursor Off Noblink
      31. End If
      32. If Znak = "bt4" Then
      33. 'Flgnum = 1
      34. Num = Num + "4"
      35. Frequency = Val (num)
      36. Gosub Freqchg
      37. Gosub Freqdisp
      38. Cursor Off Noblink
      39. End If
      40. If Znak = "bt5" Then
      41. 'Flgnum = 1
      42. Num = Num + "5"
      43. Frequency = Val (num)
      44. Gosub Freqchg
      45. Gosub Freqdisp
      46. Cursor Off Noblink
      47. End If
      48. If Znak = "bt6" Then
      49. 'Flgnum = 1
      50. Num = Num + "6"
      51. Frequency = Val (num)
      52. Gosub Freqchg
      53. Gosub Freqdisp
      54. Cursor Off Noblink
      55. End If
      56. If Znak = "bt7" Then
      57. 'Flgnum = 1
      58. Num = Num + "7"
      59. Frequency = Val (num)
      60. Gosub Freqchg
      61. Gosub Freqdisp
      62. Cursor Off Noblink
      63. End If
      64. If Znak = "bt8" Then
      65. 'Flgnum = 1
      66. Num = Num + "8"
      67. Frequency = Val (num)
      68. Gosub Freqchg
      69. Gosub Freqdisp
      70. Cursor Off Noblink
      71. End If
      72. If Znak = "bt9" Then
      73. 'Flgnum = 1
      74. Num = Num + "9"
      75. Frequency = Val (num)
      76. Gosub Freqchg
      77. Gosub Freqdisp
      78. Cursor Off Noblink
      79. End If
      80. If Znak = "bt0" Then
      81. 'Flgnum = 1
      82. Num = Num + "0"
      83. Frequency = Val (num)
      84. Gosub Freqchg
      85. Gosub Freqdisp
      86. Cursor Off Noblink
      87. End If
      88. If Znak = "btcls" Then
      89. 'Flgnum = 1
      90. Num = ""
      91. Frequency = Val (num)
      92. Gosub Freqchg
      93. Gosub Freqdisp
      94. Cursor Off Noblink
      95. End If
      96. If Znak = "bthz" Then
      97. Frequency = Val (num)
      98. Gosub Freqchg
      99. Gosub Freqdisp
      100. Gosub Freqset
      101. Cursor Off Noblink
      102. End If
      103. If Znak = "btkhz" Then
      104. Frequency = Val (num)
      105. Frequency = Frequency * 1000
      106. Gosub Freqchg
      107. Gosub Freqdisp
      108. Gosub Freqset
      109. Cursor Off Noblink
      110. End If
      111. If Znak = "btmhz" Then
      112. Frequency = Val (num)
      113. Frequency = Frequency * 1000000
      114. Gosub Freqchg
      115. Gosub Freqdisp
      116. Gosub Freqset
      117. Cursor Off Noblink
      118. End If
      119. ...
      Alles anzeigen
      The complete solution can be found here:

      mcselec.com/index2.php?option=…59&page=viewtopic&t=14568

      M.