一、模块选型概述
芯片型号:TTP223B
供电电压:3-5V
控制接口:共三个引脚(GND、VCC、SIG),GND为地,VCC为供电电源,SIG为数字信号输出脚;
PCB尺寸:24 x 24 mm
触摸区域:类似指纹的图标内部区域,轻轻触摸即可。
定位孔:4个M2螺丝定位孔,孔径为2.2mm
本实验选用的触摸检测模块的实物图所示:
图1 模块PCB实物图
使用说明:
点动型:初态为低电平,触摸输出高电平,不触摸为低电平。
电源指示灯:绿色LED,上电正确即发亮
二、触摸检测原理
该模块是一个基于触摸检测IC(TTP223B)的电容式点动型触摸开关模块。常态下,模块输出低电平,当用手指触摸相应位置时,模块输出高电平。触摸感应芯片TTP223B参考原理图如下:
图2 TTP223B芯片原理图
1、电容式触摸检测原理
电容充电时间与电容大小的关系
图3 电容充电时间与电容大小的关系图
如果要达到同样的电压值,那么电容越大,需要的时间越长。
2、触摸按键的检测
图4 电容式触摸按键检测原理图
上图左边,是一个基本的触摸按键,同时也是一个电容,这些按键中会引出一根导线与MCU相连,MCU通过这些导线来检测是否有触摸。外围的绿色与GND大地相连。当没手指接触时,只有一个电容Cp,当有手接触时,“按键”通过手指就形成了电容Cf,由于两个电容并联,所以总电容为两电容之和,电容变大,充电时间变长,MCU通过判断充电时间长短来判断是否有触摸。
三、数据手册简要解读
芯片手册
图5 TTP223B内部电路方块图
四、32单片机程序分析
4.1、硬件连接
连线请参考下图,连好后请确认VCC与GND是否正确。
VCC----电源
GND----接地
DO-------输出端口
上电成功后可看到电源指示灯亮起
图6 TTP223B模块与单片机连接示意图
4.2、stm32程序分析
本实验以触摸控制灯光的亮灭进行分析。
模块输出端口SIG接PC9
相关代码如下:
#include "stm32f10x.h"
#include "stdio.h"void LED_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_8); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOC, &GPIO_InitStructure); }int main(void){LED_Init();while(1){if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)==1) GPIO_ResetBits(GPIOA,GPIO_Pin_8);if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)==0) GPIO_SetBits(GPIOA,GPIO_Pin_8);}
}