本实验是通过电容式点动型触摸模块控制led灯的亮灭,并在串口调试助手打印相关信息。
一、概述
1.简介
该模块是一个基于触摸检测IC(TTP223B)的电容式点动型触摸开关模块。常态下,模块输出低电平,模式为低功耗模式;当用手指触摸相应位置时,模块会输出高电平,模式切换为快速模式;当持续12秒没有触摸时,模式又切换为低功耗模式。可以将模块安装在非金属材料如塑料、玻璃的表面,另外将薄薄纸片(非金属)覆盖在模块表面,只要触摸的位置正确,即可做成隐藏在墙壁、桌面等地方的按键。
2.产品特点
- 点动型:初态为低电平,触摸为高电平,不触摸为低电平(类似轻触按键功能)
- 低功耗
- 供电电源可为2-2.5V
- 正反面均可作为触摸面,可替代传统的轻触按键
- 控制接口:共3个引脚(GND、VCC、SIG),GND为地,VCC为供电电源,SIG为数据信号输出脚
- 电源指示灯:绿色LED,上电正确即发亮;
- 触摸区域:类似指示的图标内部区域,手指轻轻触摸即可触发
二、实验材料
- 最小系统STM32F10SC8T6
- 电容式点动型触摸开关模块
- 杜邦线若干
三、硬件连接
模块引脚 | GPIO |
---|---|
VCC | VCC |
GND | GND |
SIG | PA1 |
注:1:触摸
四、程序代码
1.初始化
void Switch_Touch_Pin_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1;
GPIO_Init(GPIOA,&GPIO_InitStruct);
}
2.状态读取
//1:触摸
int Switch_Touch_Value(void)
{
return GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);
}
3.主函数
int main(void)
{
int flag = 0;
Switch_Touch_Pin_Init();
Usart1_Pin_Init(115200);
Sys_Delay_Init();
Led_Init();
printf("初始化成功\r\n");
while(1)
{
if(Switch_Touch_Value())
{
LED_TRUN;//灯状态取反
flag++;
while(Switch_Touch_Value());//等待释放
if(flag == 1)
{
printf("打开led灯\r\n");
}
if(flag == 2)
{
flag = 0;
printf("关闭led灯\r\n");
}
}
}
}
五、实验效果
完整程序及相关资料:
链接:https://pan.baidu.com/s/15vrdCwts_bA5bA6gL-hKnQ
提取码:pib9
如有错误还望指出,谢谢!