想给项目加一块不留机械磨损的触控面板,TTP229是个很顺手的方案——它一片能扩展16个电容触摸按键,手指轻轻一碰就能触发,做触控键盘、智能家居控制面板、访客门铃都合适。这篇把接线、两种接口、扫16键一次讲清楚。
TTP229怎么接线:VCC/GND/SCL/SDO
模块常用接口就四根:VCC接5V、GND接地、SCL(时钟)接Arduino一个数字脚、SDO(数据)接另一个数字脚(比如SCL接D3、SDO接D2)。TTP229支持串行两线或三线方式,常用的是两线,配合内部寄存器扫描16个键。手指碰到对应的触摸盘,模块就会把对应按键的状态反映到数据位上。

这张图把SCL、SDO两个信号脚的连接画了出来:SCL做时钟由Arduino输出、SDO做数据由模块输出,VCC到5V、GND共地。注意不同厂家模块的I2C地址或两线接线可能略有差异,先看手上的模块丝印或规格说明再连。
扫描16个键的代码思路
用两线方式时,可以模拟一个时钟读取过程:先给SDO一个起始信号,然后逐个时钟沿把16个按键的二进制状态bit一位一位读进Arduino,拼成一个16位的数字,每一位对应一个按键,为1就代表被按下。每读到一次变化就串口打印,方便你确认哪个键对应哪一位。如果模块走真I2C,就include Wire库配合模块地址去读。

这就是把16键触摸模块铺在桌面上用手指触发的情景——手指一碰,对应的通道状态就变了,做触控键盘或者一排功能按钮都很直接。电容触摸没有物理开关,手感也好,用在面板上省掉不少机械件。
两个注意点
一是供电和共地要稳,触摸信号比较灵敏,电源不稳会导致误触或读不到;二是触摸盘表面别贴太厚的非导电遮挡物,灵敏度会下降,金属或含水分的表面也可能引起误触发,实际安装时按“点到哪就响哪”校准一遍最稳。







触摸盘别贴太厚的膜,灵敏度会降
用这块做门铃和面板挺方便,没有机械磨损手感好
SCL接时钟SDO接数据,VCC给5V共地,四根线就能跑
一位对应一个键,读到变化先串口打印确认键位