2020-11-10 16:02:44 +01:00
# ใญใผใใผใใใใชใใฏในใฎไป็ตใฟ
<!-- -
2021-07-01 07:06:06 +02:00
original document: 0.13.15:docs/how_a_matrix_works.md
git diff 0.13.15 HEAD -- docs/how_a_matrix_works.md | cat
2020-11-10 16:02:44 +01:00
-->
ใญใผใใผใในใคใใใฎใใใชใใฏในใฏ่กใจๅใซ้
็ฝฎใใใพใใใใใชใใฏในๅ่ทฏใใชใใใฐใๅในใคใใใฏใณใณใใญใผใฉใซ็ดๆฅ้
็ทใใๅฟ
่ฆใใใใพใใ
ๅ่ทฏใ่กใจๅใซ้
็ฝฎใใใฆใใๅ ดๅใใญใผใๆผใใใใจใๅใฏใคใคใ่กใฏใคใคใจๆฅ่งฆใใๅ่ทฏใๅฎๆใใพใใใญใผใใผใใณใณใใญใผใฉใฏใใฎ้ๅ่ทฏใๆค็ฅใใใญใผๆผไธใจใใฆ็ป้ฒใใพใใ
ใใคใฏใญใณใณใใญใผใฉใฏใใกใผใ ใฆใงใขใไปใใฆใปใใใขใใใใใ่ซ็1ใไธๅบฆใซ1ใคใใคๅใซ้ไฟกใใ่กใใไธๅบฆใซๅ
จใฆใ่ชญใฟๅใใพใ - ใใฎใใญใปในใฏใใใชใใฏในในใญใฃใณใจๅผใฐใใพใใใใใชใใฏในใฏใใใฉใซใใงใฏ้ปๆตใฎ้้ใ่จฑๅฏใใชใใใใใใฎ้ใใในใคใใใงใ - ใใกใผใ ใฆใงใขใฏใญใผใๆผใใใฆใใชใใใฎใจใใฆใใใ่ชญใฟๅใใพใใ1ใคใฎใญใผใๆผใใจใใใซใใญใผในใคใใใๆฅ็ถใใใฆใใๅใใๆฅใฆใใ่ซ็1ใในใคใใใ้้ใใฆๅฏพๅฟใใ่กใซๆธกใใใพใ - ไปฅไธใฎ 2x2 ใฎไพใ็ขบ่ชใใฆใใ ใใ:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
row0 ---(key0)---(key1) row0 ---(key0)---(key1)
| | | |
row1 ---(key2)---(key3) row1 ---(key2)---(key3)
`x` ใฏ้ข้ฃไปใใใใๅใจ่กใฎๅคใ1ใงใใใใHIGH ใงใใใใจใ่กจใใพใใใใใงใฏใใญใผใๆผใใใฆใใชใใใจใๅใใใพใใใใฎใใ `x` ใๅๅพใใ่กใฏใใใพใใใ1ใคใฎใญใผในใคใใใฎไบใคใฎๆฅ็นใฏใใฎในใคใใใฎใใ่กใจๅใซใใใใๆฅ็ถใใใฆใใใใจใซๆณจๆใใฆใใ ใใใ
`key0` ใๆผใใจใ`col0` ใฏ `row0` ใซๆฅ็ถใใใใใใใใกใผใ ใฆใงใขใใใฎ่กใซๅฏพใใฆๅใๅใๅคใฏ `0b01` ใงใ (ใใใง `0b` ใฏใใใใใใๅคใงใใใใจใๆๅณใใพใใใคใพใๆฌกใฎๆฐๅญใฏๅ
จใฆใใใ(0ใพใใฏ1)ใงใใใใใฎๅใฎใญใผใ่กจใใพใ)ใใใฎ่กจ่จใไฝฟ็จใใฆใใญใผในใคใใใๆผใใใใใจใ็คบใใๅใจ่กใๆฅ็ถใใใฆใใใใจใ็คบใใพใ:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
x row0 ---(-+-0)---(key1) row0 ---(-+-0)---(key1)
| | | |
row1 ---(key2)---(key3) row1 ---(key2)---(key3)
`row0` ใซใฏ `x` ใใใใใใๅคใ1ใงใใใใจใใใใใพใใๅ
จไฝใจใใฆใ`key0` ใๆผใใใๆใซใใกใผใ ใฆใงใขใๅไฟกใใใใผใฟใฏใ
col0: 0b01
col1: 0b00
โโrow0
โrow1
ไธๅบฆใซ่คๆฐใฎใญใผใๆผใๅงใใใจๅ้กใ็บ็ใใพใใใใใชใใฏในใใใไธๅบฆ่ฆใใจใใใชใๆ็ฝใซใชใฃใฆใใใฏใใงใ:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
x row0 ---(-+-0)---(-+-1) x row0 ---(-+-0)---(-+-1)
| | | |
x row1 ---(key2)---(-+-3) x row1 ---(key2)---(-+-3)
Remember that this ^ is still connected to row1
ใใใใๅๅพใใใใใผใฟใฏไปฅไธใฎ้ใใงใ:
col0: 0b11
col1: 0b11
โโrow0
โrow1
4ใคๅ
จใฆใงใฏใชใใ3ใคใฎใญใผใใๆผใใใฆใใชใใใใใใใฏๆญฃ็ขบใงใฏใใใพใใใใใฎๆๅใฏใดใผในใใจๅผใฐใใใใฎใใใชๅฅๅฆใชใทใใชใชใงใฎใฟ็บ็ใใพใใใใใๅคงใใชใญใผใใผใใงใฏใใไธ่ฌ็ใงใใใใใๅ้ฟใใๆนๆณใฏใใญใผในใคใใใฎๅพใซใ่กใซๆฅ็ถใใๅใซใใคใชใผใใ้
็ฝฎใใใใจใงใใใใคใชใผใใฏใ้ปๆตใไธๆนๅใซใฎใฟๆตใใใใใซใใพใใใใใซใใใๅใฎไพใงไปใฎๅใจ่กใใขใฏใใฃใใซใชใใชใใใใซใใพใใใใคใชใผใใใใชใใฏในใใใฎใใใซ่กจใใพใ;
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
โ โ | โ
(key0) (key1) (key0) (key1)
! โ ! โ ! | ! โ
row0 โโโโโโดโโโโโโโโโ โ row0 โโโโโโดโโโโโโโโโ โ
โ โ | โ
(key2) (key3) (key2) (key3)
! ! ! !
row1 โโโโโโดโโโโโโโโโ row1 โโโโโโดโโโโโโโโโ
ๅฎ้ใฎ็จ้ใงใฏใใใคใชใผใใฎ้ปใ็ทใ่กใซ้ขใใใใใซใใญใผในใคใใใใ้ขใใใใใซ้
็ฝฎใใใพใ - ใใฎๅ ดๅใฎ `!` ใฏใใคใชใผใใงใ้้ใฏ้ปใ็ทใ่กจใใพใใใใใ่ฆใใ่ฏใๆนๆณใฏใไปฅไธใฎใทใณใใซใ่ใใใใจใงใ: `>|`
ๆฌกใซใ3ใคใฎใญใผใๆผใใฆใใดใผในใใทใใชใชใจใชใใใฎใๅฎๆฝใใพใ:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
โ โ โ โ
(โโโค0) (โโโค1) (โโโค0) (โโโค1)
! โ ! โ ! โ ! โ
x row0 โโโโโโดโโโโโโโโโ โ x row0 โโโโโโดโโโโโโโโโ โ
โ โ โ โ
(key2) (โโโ3) (key2) (โโโ3)
! ! ! !
row1 โโโโโโดโโโโโโโโโ x row1 โโโโโโดโโโโโโโโโ
ๅ
จใฆใๆๅพ
้ใใซๅใใพใ๏ผใใใซใใใไปฅไธใฎใใผใฟใๅๅพใใใพใ:
col0: 0b01
col1: 0b11
โโrow0
โrow1
ใใกใผใ ใฆใงใขใฏใใฎๆญฃใใใใผใฟใไฝฟใฃใฆใไฝใใในใใใใๆ็ต็ใซใฏ OS ใซ้ไฟกใใๅฟ
่ฆใฎใใไฟกๅทใๆคๅบใงใใพใใ
ๅ่ๆ็ฎ:
- [Wikipedia ใฎ่จไบ ](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit )
- [Deskthority ใฎ่จไบ ](https://deskthority.net/wiki/Keyboard_matrix )
- [Dave Dribin ใซใใ Keyboard Matrix Help (2000) ](https://www.dribin.org/dave/keyboard/one_html/ )
2021-01-30 12:02:49 +01:00
- [PCBheaven ใซใใ How Key Matrices Works ](https://pcbheaven.com/wikipages/How_Key_Matrices_Works/ ) (ใขใใกใผใทใงใณใฎไพ)
2020-11-10 16:02:44 +01:00
- [ใญใผใใผใใฎไป็ตใฟ - QMK ใใญใฅใกใณใ ](ja/how_keyboards_work.md )