TTP229 16key touch keypad

Dependents:   TTP229_sample

TTP229 16key touch keypad.
/media/uploads/jk1lot/ttp229_MMK5gIi.jpg

This library support only 16key mode and active low mode
jamper set TP1=1(default) and TP2=0(jamper close).

pin connection

mbed                              TTP229
GPIO(InterruptIn) --------------- SDO
GPIO(DigitalOut)  --------------- SCL
             3.3V --------------- VCC
              GND --------------- GND

sample program is here.

アマゾンで購入したTTP229 を使った16キーのタッチキーパッドを使うためのライブラリです。
このボードは8keyモードにも設定できますが、このライブラリは16キーモード専用です
16キーモードに設定するには TP2を高抵抗でGNDに繋ぎます。私が入手したボードではジャンパ設定の3番をクローズにすればこの状態になります。
TP1で active low と active highの切替が出来ますが、このライブラリは active lowを想定していますので、TP1はデフォルトのまま(GNDには繋がない)にしてください。その他のジャンパは使用目的に応じて自由に設定して構いません。

詳しくはこちらをご覧ください。

Committer:
jk1lot
Date:
Sat Jul 16 17:43:16 2016 +0000
Revision:
2:550c26cd6734
Parent:
1:c20148b5c68e
collect document of TTP229::attach()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jk1lot 0:50226acdb872 1 #ifndef TTP229_H
jk1lot 0:50226acdb872 2 #define TTP229_H
jk1lot 0:50226acdb872 3 #include "mbed.h"
jk1lot 0:50226acdb872 4 #include <bitset>
jk1lot 0:50226acdb872 5
jk1lot 0:50226acdb872 6 /** 16key touch keypad\n
jk1lot 0:50226acdb872 7 * Only supported 16key and active low mode\n
jk1lot 0:50226acdb872 8 * jamper settng : TP1=1(jamper2=open):active low, TP2=0(jamper3=close):16key mode\n
jk1lot 0:50226acdb872 9 */
jk1lot 0:50226acdb872 10 class TTP229 {
jk1lot 0:50226acdb872 11 public:
jk1lot 0:50226acdb872 12 ///@param sdopin PinName that support DigitalIn and InterruptIn, connected to TTP229 SDO.
jk1lot 0:50226acdb872 13 ///@param sclpin PinName that support DigitalOut, connected to TTP229 SCL.
jk1lot 0:50226acdb872 14 TTP229(PinName sdopin, PinName sclpin);
jk1lot 1:c20148b5c68e 15 /// set function that is called at change state of keypad\n
jk1lot 1:c20148b5c68e 16 /// FunctionPointer is a pointer to function(no param and void return)
jk1lot 1:c20148b5c68e 17 /// @code
jk1lot 1:c20148b5c68e 18 /// void func();
jk1lot 1:c20148b5c68e 19 /// ttp229.attach(&func);
jk1lot 1:c20148b5c68e 20 /// @endcode
jk1lot 1:c20148b5c68e 21 /// or to menber function(no param and void return)
jk1lot 1:c20148b5c68e 22 /// @code
jk1lot 1:c20148b5c68e 23 /// class Foo {
jk1lot 1:c20148b5c68e 24 /// public:
jk1lot 1:c20148b5c68e 25 /// void func();
jk1lot 1:c20148b5c68e 26 /// };
jk1lot 1:c20148b5c68e 27 /// Foo foo;
jk1lot 2:550c26cd6734 28 /// ttp229.attach(FunctionPointer(&foo, &Foo::func));
jk1lot 1:c20148b5c68e 29 /// @endcode
jk1lot 0:50226acdb872 30 void attach(const FunctionPointer& fp) {callback=fp;}
jk1lot 0:50226acdb872 31 ///get keypad status
jk1lot 0:50226acdb872 32 bitset<16> getkeys() {return sw;}
jk1lot 0:50226acdb872 33 ///same as getkeys()
jk1lot 0:50226acdb872 34 operator bitset<16>() {return getkeys();}
jk1lot 0:50226acdb872 35 ///get keypad status especially singlekey mode(TP3=1,TP4=1)
jk1lot 0:50226acdb872 36 ///@return touched keypad number(1~16) or 0:no keypad touched
jk1lot 0:50226acdb872 37 int onkey() {return swnum;}
jk1lot 0:50226acdb872 38 ///Is number i(0~15) keypad touched?
jk1lot 0:50226acdb872 39 bool ison(size_t i) {return getkeys()[i];}
jk1lot 0:50226acdb872 40 ///same as ison()
jk1lot 0:50226acdb872 41 bool operator[](size_t i) {return ison(i);}
jk1lot 0:50226acdb872 42 protected:
jk1lot 0:50226acdb872 43 void interrupt();
jk1lot 0:50226acdb872 44 private:
jk1lot 0:50226acdb872 45 DigitalIn sdo;
jk1lot 0:50226acdb872 46 InterruptIn sdoInt;
jk1lot 0:50226acdb872 47 DigitalOut scl;
jk1lot 0:50226acdb872 48 FunctionPointer callback;
jk1lot 0:50226acdb872 49 bitset<16> sw;
jk1lot 0:50226acdb872 50 int swnum;
jk1lot 0:50226acdb872 51 };
jk1lot 0:50226acdb872 52
jk1lot 0:50226acdb872 53 #endif