add keypad scanner for shift registers
This commit is contained in:
parent
b3ec37e274
commit
d2e87b3e70
@ -74,6 +74,31 @@ class MyKeyboard(KMKKeyboard):
|
||||
```
|
||||
|
||||
|
||||
### keypad ShiftRegisterKeys
|
||||
|
||||
This scanner can read keys attached to a parallel-in serial-out shift register
|
||||
like the 74HC165 or CD4021. Note that you may chain shift registers to load in
|
||||
as many values as you need.
|
||||
```python
|
||||
from kmk.scanners.keypad import ShiftRegisterKeys
|
||||
|
||||
class MyKeyboard(KMKKeyboard):
|
||||
def __init__(self):
|
||||
# create and register the scanner
|
||||
self.matrix = ShiftRegisterKeys(
|
||||
# require arguments:
|
||||
clock=board.GP0,
|
||||
data=board.GP1,
|
||||
latch=board.GP2,
|
||||
key_count=8,
|
||||
# optional arguments with defaults:
|
||||
value_to_latch=True, # 74HC165: True, CD4021: False
|
||||
value_when_pressed=False,
|
||||
interval=0.02,
|
||||
max_events=64
|
||||
)
|
||||
```
|
||||
|
||||
## Digitalio Scanners
|
||||
|
||||
### digitalio MatrixScanner
|
||||
|
@ -88,3 +88,29 @@ class KeysScanner(KeypadScanner):
|
||||
max_events=max_events,
|
||||
)
|
||||
super().__init__()
|
||||
|
||||
|
||||
class ShiftRegisterKeys(KeypadScanner):
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
clock,
|
||||
data,
|
||||
latch,
|
||||
value_to_latch=True,
|
||||
key_count,
|
||||
value_when_pressed=False,
|
||||
interval=0.02,
|
||||
max_events=64,
|
||||
):
|
||||
self.keypad = keypad.ShiftRegisterKeys(
|
||||
clock=clock,
|
||||
data=data,
|
||||
latch=latch,
|
||||
value_to_latch=value_to_latch,
|
||||
key_count=key_count,
|
||||
value_when_pressed=value_when_pressed,
|
||||
interval=interval,
|
||||
max_events=max_events,
|
||||
)
|
||||
super().__init__()
|
||||
|
Loading…
Reference in New Issue
Block a user