Skip to content

Commit 13614d4

Browse files
authored
Add files via upload
1 parent 4c6d804 commit 13614d4

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

TTP229_BSF.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# MicroPython driver for TTP229-BSF 16-key capacitive keypad in serial interface mode
2+
# by Alan Wang
3+
4+
from machine import Pin
5+
import utime
6+
7+
class Keypad:
8+
9+
def __init__(self, scl, sdo, inputs=8, multi=False, raw=False):
10+
self._scl_pin = scl
11+
self._sdo_pin = sdo
12+
self._inputs = inputs
13+
self._multi_mode = multi
14+
self._raw_mode = raw
15+
16+
def read(self):
17+
key = []
18+
for i in range(self._inputs):
19+
key.append(1)
20+
self._scl_pin.on()
21+
utime.sleep_ms(1)
22+
for i in range(self._inputs):
23+
self._scl_pin.off()
24+
utime.sleep_ms(1)
25+
key[i] = self._sdo_pin.value()
26+
self._scl_pin.on()
27+
utime.sleep_ms(1)
28+
utime.sleep_ms(1)
29+
if self._raw_mode:
30+
return key
31+
else:
32+
if self._multi_mode:
33+
key_multi = []
34+
for i in range(self._inputs):
35+
if key[i] == 0:
36+
key_multi.append(i)
37+
return key_multi
38+
else:
39+
key_single = -1
40+
for i in range(self._inputs):
41+
if key[i] == 0:
42+
key_single = i
43+
break
44+
return key_single

0 commit comments

Comments
 (0)