单片机 电容触摸按键 报告

任务:MSP-EXP430G2 板上P1.0 上接了一个LED,而在配套的LaunchPad 扩
展板上,将MSP430G2553 的P2.0 和P2.5 引出作为电容触摸按键。

要求按下P2.0 后LED 亮,按下P2.5 后LED 灭,程序运行过程中不阻塞CPU,并且实现低功耗运行。

硬件连接:如图所示
程序代码:
TouchIN.c:
#include "MSP430G2553.h"
#define KEY_NUM 2 /*触摸按键数目,根据需要修改*/ //=============具体触摸按键IO宏定义,根据需要添加代码===============
#define KEY0_INIT P2DIR &= ~BIT0; P2SEL &= ~ BIT0; P2SEL2 |= BIT0 /*按键1开启振荡*/ #define KEY1_INIT P2DIR &= ~BIT5; P2SEL &= ~ BIT5; P2SEL2 |= BIT5 /*按键2开启振荡*/ #define ALL_OSC_OFF P2SEL2 &= ~(BIT0 + BIT5) /*关闭全部触摸振荡*/ /*门限频率的取值取决于定时扫描的时长,3300对应的是1.9ms定时情况,实际定时可取1ms~20ms*/
const unsigned int FREQ_THRESHOLD[KEY_NUM]={3300,3300}; /*参考值,需用仿真器查看后调整*/
//-----静态局部变量----
static unsigned int Freq[KEY_NUM]={0}; //当前测频值
static unsigned char Key_Buff[KEY_NUM][4]={0}; // 软件FIFO
static unsigned char Key_Num=0; //按键编号
//-----全局变量,复杂程序中可以移植到Global.h统一管理-----
unsigned char TouchIN=0; //相当于PxIN寄存器作用,支持8个触摸按键
void Key_Measure_Freq()
{
Freq[Key_Num]=TAR; //当前编号按键的频率被测得
ALL_OSC_OFF; //关闭所有振荡IO
Key_Num++; //切换下一振荡IO
if (Key_Num>=KEY_NUM) Key_Num=0; //各触摸按键循环交替
switch (Key_Num)
{
case 0 : KEY0_INIT; break; //振荡IO初始化
case 1 : KEY1_INIT; break;
default: break;
}
TA0CTL = TASSEL_3+MC_2+TACLR; //增计数清0,并开始计数
}
void Key_FIFO() //存储连续4次测量数据
{
Key_Buff[Key_Num][0]=Key_Buff[Key_Num][1];
Key_Buff[Key_Num][1]=Key_Buff[Key_Num][2];
Key_Buff[Key_Num][2]=Key_Buff[Key_Num][3];
if( Freq[Key_Num]<FREQ_THRESHOLD[Key_Num]) //判断是否识别为按键
Key_Buff[Key_Num][3]=1;
else
Key_Buff[Key_Num][3]=0;
}
void Key_Judge() //按键仲裁,只有连续4次测量结果一致,才算数
{
if( (Key_Buff[Key_Num][0]==0)&&(Key_Buff[Key_Num][1]==0)
&&(Key_Buff[Key_Num][2]==0)&&(Key_Buff[Key_Num][3]==0) )
// TouchIN=0<<Key_Num; //按键松开(错误代码)
TouchIN &=~(1<<Key_Num); //按键松开(正确代码)
if( (Key_Buff[Key_Num][0]==1)&&(Key_Buff[Key_Num][1]==1)
&&(Key_Buff[Key_Num][2]==1)&&(Key_Buff[Key_Num][3]==1) )
// TouchIN =1<<Key_Num; //按键按下(错误代码)
TouchIN |=1<<Key_Num; //按键按下
}
void TouchIN_Dect() //触摸输入检测
{
Key_Measure_Freq(); //测频
Key_FIFO(); //软件FIFO缓存最近4次测量数据
Key_Judge(); //仲裁按键是否按下或松开
}
TouchIN.h:
/***** TouchIN.h******/
#ifndef TOUCHIN_H_
#define TOUCHIN_H_
extern void TouchIN_Dect() ; //WDT中断事件
extern unsigned char TouchIN; // 相当于PxIN寄存器作用,支持8个触摸按键#endif /* TOUCHIN_H_ */
main.c:
#include "MSP430G2553.h"
#include "TouchIN.h" /*触摸按键检测库函数*/
void WDT_Ontime(void);
//-----对硬件相关代码进行宏定义处理-----
#define LED_ON P1OUT |= BIT0 /*宏定义LED所在IO*/
#define LED_OFF P1OUT &= ~BIT0 /*宏定义LED所在IO*/
void main(void) {
WDTCTL = WDTPW+WDTHOLD; //关狗
//-----初始化GPIO-----
P1DIR |= BIT0; //LED所连IO口P1.0设为输出
P1OUT &= ~BIT0;
//-----初始化WDT定时中断为16ms-----
WDTCTL = WDT_ADLY_16; // “超级”宏定义
IE1 |= WDTIE; //使能WDT中断
_EINT(); // 使能总中断
__bis_SR_register(LPM3_bits); //等同LPM3
}
#pragma vector=WDT_VECTOR // Watch dog Timer interrupt service routine
__interrupt void WDT_ISR(void)
{
WDT_Ontime();
}
void WDT_Ontime(void)
{ //-----首先必须定时扫描触摸按键检测函数-----
TouchIN_Dect();
if(TouchIN & BIT0) LED_ON;
if(TouchIN & BIT1) LED_OFF;
}
调试情况:
第一次调试:TouchIN_Dect函数重复定义
第二次调试:正常
调试结果:按下P2.0 后LED 亮,按下P2.5 后LED 灭,任务达成。

涉及知识点:
1、库函数头文件
2、电容触摸、用Timer_A 定时器测量电容振荡频率
3、WDT定时器
4、位操作、寄存器、中断。

合集下载

单片机控制按键实训报告

单片机控制按键实训报告

一、实训目的1. 掌握单片机的基本工作原理和硬件结构;2. 熟悉单片机编程环境及编程方法;3. 学习按键控制的基本原理和编程技巧;4. 提高动手能力和解决问题的能力。

二、实训内容1. 单片机简介2. 单片机编程环境及编程方法3. 按键控制原理及编程4. 实验设计与实现三、实训步骤1. 单片机简介(1)单片机定义:单片机是一种集成度高、功能强大的微处理器,具有运算、存储、输入输出、定时计数等功能。

(2)单片机硬件结构:主要包括中央处理单元(CPU)、存储器(RAM、ROM)、输入输出接口(I/O)、定时器/计数器、串行通信接口等。

2. 单片机编程环境及编程方法(1)编程环境:Keil uVision、IAR EWARM等。

(2)编程语言:C语言、汇编语言等。

3. 按键控制原理及编程(1)按键控制原理:按键作为一种输入设备,其作用是将物理信号转换为电信号,通过单片机对电信号进行处理,实现相应的功能。

(2)按键编程技巧:① 按键消抖:由于按键存在机械特性,按下和释放时会产生抖动,导致单片机检测到多个按键动作。

为了消除抖动,通常采用软件消抖方法,如延时消抖、计数消抖等。

② 按键扫描:按键扫描是检测按键状态的一种方法,通过单片机的I/O口循环检测每个按键的状态,实现按键的识别。

③ 按键去抖:在按键扫描过程中,若检测到按键动作,则需要进行去抖处理,以消除抖动对按键识别的影响。

4. 实验设计与实现(1)实验目的:通过按键控制LED灯的亮灭。

(2)实验原理:当按下按键时,单片机检测到按键动作,通过编程控制LED灯亮起;当按键释放时,单片机检测到按键释放,控制LED灯熄灭。

(3)实验步骤:① 准备实验器材:单片机、按键、LED灯、电阻、面包板等。

② 连接电路:将按键、LED灯、电阻等元器件连接到单片机的相应引脚上。

③ 编写程序:根据实验原理,编写控制LED灯的亮灭程序。

④ 烧录程序:将编写的程序烧录到单片机中。

⑤ 测试程序:观察LED灯的亮灭状态,验证程序的正确性。

电容触摸按键报告

电容触摸按键报告

电容触摸按键报告摘要本报告旨在介绍电容触摸按键的原理、应用领域、优势以及市场前景。

通过对电容触摸按键的研究,我们可以更好地理解这一技术的工作原理和优势,并在相应的应用领域中发挥其最大的潜力。

引言随着科技的不断发展,触摸技术已经成为了电子设备领域的重要组成部分。

电容触摸按键技术作为触摸技术的一种,以其高灵敏度、良好的响应速度和无需机械按键等特点,逐渐受到市场的广泛关注。

本报告将重点介绍电容触摸按键的原理、应用领域、优势以及市场前景。

一、电容触摸按键的工作原理电容触摸按键的工作原理是基于电容传感技术。

在触摸按键上方的感应区域,布置有一组导电材料(例如金属电极)形成一个电容结构。

当人的手指接触到触摸按键时,会产生电容变化。

触摸按键芯片通过检测电容的变化来判断用户是否触摸了按键,从而实现按键的触摸检测功能。

二、电容触摸按键的应用领域电容触摸按键由于其优越的技术特点,在许多领域得到了广泛应用。

以下是几个主要的应用领域:1. 智能手机和平板电脑智能手机和平板电脑作为目前最为普及的电子设备之一,电容触摸按键的应用正越来越广泛。

这些设备通常会使用电容触摸按键来替代机械按键,提供简洁、方便的操作体验。

2. 家电控制面板电容触摸按键具有触摸灵敏、易于清洁的特点,因此在家电控制面板上得到了广泛的应用。

用户可以通过触摸控制面板来轻松地控制家电的开关、模式选择等功能。

3. 汽车内部控制电容触摸按键在汽车内部控制系统中也得到了广泛的应用。

例如,驾驶员可以通过触摸按键来控制空调、音频设备、导航系统等,提供更便捷的操作体验。

4. 工控设备在工业领域中,电容触摸按键的应用也非常常见。

工控设备通常需要耐用性和可靠性,电容触摸按键的无机械运动结构满足了这一需求。

此外,电容触摸按键可以提供更好的密封性能,以避免灰尘和液体进入设备。

三、电容触摸按键的优势相比传统的机械按键,电容触摸按键具有以下几个明显的优势:1.灵敏度高:电容触摸按键可以通过检测微小的电容变化来感知用户的触摸操作,具有非常高的灵敏度。

电容式触摸感应按键技术及常见问题解决办法

电容式触摸感应按键技术及常见问题解决办法

电容式触摸感应按键技术及常见问题解决办法浅谈电容式触摸感应按键技术及常见问题解决办法市场上的消费电子产品已经开始逐步采用触摸感应按键,以取代传统的机械式按键。

针对此趋势,Silicon Labs公司推出了内置微控制器(MCU)功能的电容式触摸感应按键(Capa citive Touch Sense)方案。

电容式触摸感应按键开关,内部是一个以电容器为基础的开关。

以传导性物体(例如手指)触摸电容器可改变电容,此改变会被内置于微控制器内的电路所侦测。

图1:电容式触摸感应按键的基本原理一种可侦测因触摸而改变的电容的方法电容式触摸感应按键的基本原理就是一个不断地充电和放电的张弛振荡器。

如果不触摸开关,张弛振荡器有一个固定的充电放电周期,频率是可以测量的。

如果我们用手指或者触摸笔接触开关,就会增加电容器的介电常数,充电放电周期就变长,频率就会相应减少。

所以,我们测量周期的变化,就可以侦测触摸动作。

具体测量的方式有二种:(一)可以测量频率,计算固定时间内张弛振荡器的周期数。

如果在固定时间内测到的周期数较原先校准的为少,则此开关便被视作为被按压。

(二)也可以测量周期,即在固定次数的张弛周期间计算系统时钟周期的总数。

如果开关被按压,则张弛振荡器的频率会减少,则在相同次数周期会测量到更多的系统时钟周期。

Silicon Labs推出的C8051F9xx微控制器(MCU)系列,可通过使用芯片上比较器和定时器实现触摸感应按键功能,连接最多23个感应按键。

而且无须外部器件,通过PCB走线/开关作为电容部分,由内部触摸感应按键电路进行测量以得知电容值的变化。

图2:Silicon Labs推出的C8051F9xx微控制器(MCU)系列以Silicon Labs的MCU实现触摸感应按键利用Silicon Labs其它MCU系列,仅需搭配无源器件,即可实现电容式触摸感应按键方案。

与C8051F93x-F92x方案相比,唯一所需的外部器件是(3+N)电阻器,其中N是开关的数目,以及3个提供反馈的额外端口接点。

单片机 电容触摸按键 报告

单片机 电容触摸按键 报告

任务:MSP-EXP430G2 板上P1.0 上接了一个LED,而在配套的LaunchPad 扩展板上,将MSP430G2553 的P2.0 和P2.5 引出作为电容触摸按键。

要求按下P2.0 后LED 亮,按下P2.5 后LED 灭,程序运行过程中不阻塞CPU,并且实现低功耗运行。

硬件连接:如图所示程序代码:TouchIN.c:#include "MSP430G2553.h"#define KEY_NUM 2 /*触摸按键数目,根据需要修改*/ //=============具体触摸按键IO宏定义,根据需要添加代码===============#define KEY0_INIT P2DIR &= ~BIT0; P2SEL &= ~ BIT0; P2SEL2 |= BIT0 /*按键1开启振荡*/ #define KEY1_INIT P2DIR &= ~BIT5; P2SEL &= ~ BIT5; P2SEL2 |= BIT5 /*按键2开启振荡*/ #define ALL_OSC_OFF P2SEL2 &= ~(BIT0 + BIT5) /*关闭全部触摸振荡*/ /*门限频率的取值取决于定时扫描的时长,3300对应的是1.9ms定时情况,实际定时可取1ms~20ms*/const unsigned int FREQ_THRESHOLD[KEY_NUM]={3300,3300}; /*参考值,需用仿真器查看后调整*///-----静态局部变量----static unsigned int Freq[KEY_NUM]={0}; //当前测频值static unsigned char Key_Buff[KEY_NUM][4]={0}; // 软件FIFOstatic unsigned char Key_Num=0; //按键编号//-----全局变量,复杂程序中可以移植到Global.h统一管理-----unsigned char TouchIN=0; //相当于PxIN寄存器作用,支持8个触摸按键void Key_Measure_Freq(){Freq[Key_Num]=TAR; //当前编号按键的频率被测得ALL_OSC_OFF; //关闭所有振荡IOKey_Num++; //切换下一振荡IOif (Key_Num>=KEY_NUM) Key_Num=0; //各触摸按键循环交替switch (Key_Num){case 0 : KEY0_INIT; break; //振荡IO初始化case 1 : KEY1_INIT; break;default: break;}TA0CTL = TASSEL_3+MC_2+TACLR; //增计数清0,并开始计数}void Key_FIFO() //存储连续4次测量数据{Key_Buff[Key_Num][0]=Key_Buff[Key_Num][1];Key_Buff[Key_Num][1]=Key_Buff[Key_Num][2];Key_Buff[Key_Num][2]=Key_Buff[Key_Num][3];if( Freq[Key_Num]<FREQ_THRESHOLD[Key_Num]) //判断是否识别为按键Key_Buff[Key_Num][3]=1;elseKey_Buff[Key_Num][3]=0;}void Key_Judge() //按键仲裁,只有连续4次测量结果一致,才算数{if( (Key_Buff[Key_Num][0]==0)&&(Key_Buff[Key_Num][1]==0)&&(Key_Buff[Key_Num][2]==0)&&(Key_Buff[Key_Num][3]==0) )// TouchIN=0<<Key_Num; //按键松开(错误代码)TouchIN &=~(1<<Key_Num); //按键松开(正确代码)if( (Key_Buff[Key_Num][0]==1)&&(Key_Buff[Key_Num][1]==1)&&(Key_Buff[Key_Num][2]==1)&&(Key_Buff[Key_Num][3]==1) )// TouchIN =1<<Key_Num; //按键按下(错误代码)TouchIN |=1<<Key_Num; //按键按下}void TouchIN_Dect() //触摸输入检测{Key_Measure_Freq(); //测频Key_FIFO(); //软件FIFO缓存最近4次测量数据Key_Judge(); //仲裁按键是否按下或松开}TouchIN.h:/***** TouchIN.h******/#ifndef TOUCHIN_H_#define TOUCHIN_H_extern void TouchIN_Dect() ; //WDT中断事件extern unsigned char TouchIN; // 相当于PxIN寄存器作用,支持8个触摸按键#endif /* TOUCHIN_H_ */main.c:#include "MSP430G2553.h"#include "TouchIN.h" /*触摸按键检测库函数*/void WDT_Ontime(void);//-----对硬件相关代码进行宏定义处理-----#define LED_ON P1OUT |= BIT0 /*宏定义LED所在IO*/#define LED_OFF P1OUT &= ~BIT0 /*宏定义LED所在IO*/void main(void) {WDTCTL = WDTPW+WDTHOLD; //关狗//-----初始化GPIO-----P1DIR |= BIT0; //LED所连IO口P1.0设为输出P1OUT &= ~BIT0;//-----初始化WDT定时中断为16ms-----WDTCTL = WDT_ADLY_16; // “超级”宏定义IE1 |= WDTIE; //使能WDT中断_EINT(); // 使能总中断__bis_SR_register(LPM3_bits); //等同LPM3}#pragma vector=WDT_VECTOR // Watch dog Timer interrupt service routine__interrupt void WDT_ISR(void){WDT_Ontime();}void WDT_Ontime(void){ //-----首先必须定时扫描触摸按键检测函数-----TouchIN_Dect();if(TouchIN & BIT0) LED_ON;if(TouchIN & BIT1) LED_OFF;}调试情况:第一次调试:TouchIN_Dect函数重复定义第二次调试:正常调试结果:按下P2.0 后LED 亮,按下P2.5 后LED 灭,任务达成。

单片机按键实验实训报告

单片机按键实验实训报告

一、实验目的1. 理解单片机按键的工作原理和电路连接方法;2. 掌握按键消抖原理及其实现方法;3. 学会使用单片机编程控制按键功能,实现简单的输入控制;4. 提高单片机实验操作能力和编程能力。

二、实验仪器及设备1. 单片机开发板(如STC89C52);2. 按键;3. 万用表;4. 电脑;5. Keil C编译器。

三、实验原理1. 按键原理:按键是一种电子开关,按下时导通,松开时断开。

在单片机应用中,按键常用于输入控制信号。

2. 按键消抖原理:由于按键机械弹性,闭合和断开时会有一连串的抖动。

若直接读取按键状态,容易导致误操作。

因此,需要进行消抖处理。

3. 消抖方法:主要有软件消抖和硬件消抖两种方法。

本实验采用软件消抖方法,即在读取按键状态后,延时一段时间再读取,若两次读取结果一致,则认为按键状态稳定。

四、实验步骤1. 硬件连接:将按键一端接地,另一端与单片机的某个I/O口相连。

2. 编写程序:使用Keil C编译器编写程序,实现以下功能:(1)初始化I/O口,将按键连接的I/O口设置为输入模式;(2)读取按键状态,判断按键是否被按下;(3)进行消抖处理,若按键状态稳定,则执行相应的功能。

3. 编译程序:将编写好的程序编译成HEX文件。

4. 烧录程序:将编译好的HEX文件烧录到单片机中。

5. 实验验证:观察实验现象,验证按键功能是否实现。

五、实验结果与分析1. 硬件连接正确,程序编译无误。

2. 实验现象:当按下按键时,单片机执行相应的功能;松开按键后,按键功能停止。

3. 分析:通过软件消抖处理,有效避免了按键抖动导致的误操作。

六、实验总结1. 本实验成功实现了单片机按键控制功能,掌握了按键消抖原理及实现方法。

2. 通过实验,提高了单片机编程和实验操作能力。

3. 在后续的单片机应用中,可以灵活运用按键控制功能,实现各种输入控制需求。

4. 本次实验为单片机应用奠定了基础,为进一步学习单片机技术打下了良好基础。

单片机轻触按键的功能指标

单片机轻触按键的功能指标

单片机轻触按键的功能指标摘要:一、单片机轻触按键的功能指标概述二、单片机轻触按键的功能实现1.电容触摸按键2.按键长按和短按功能3.组合键功能4.多功能按键三、单片机轻触按键的应用场景四、总结正文:一、单片机轻触按键的功能指标概述单片机轻触按键是指在单片机系统中,通过按键实现对系统的控制和操作。

轻触按键的功能指标主要包括响应速度、灵敏度、抗干扰能力等。

响应速度是指按键被按下后,单片机能够检测到的时间;灵敏度是指按键在受到轻微触碰时,单片机能够检测到的能力;抗干扰能力是指按键在环境干扰下,单片机能够正常检测到的能力。

二、单片机轻触按键的功能实现1.电容触摸按键电容触摸按键是利用人体电容进行触摸感应的按键,具有无需实际接触、响应速度快等特点。

在单片机系统中,可以通过电容触摸按键实现对系统的快速控制和操作。

2.按键长按和短按功能在单片机系统中,可以通过计时器实现按键的长按和短按功能。

当检测到按键被按下时,启动计时器,当计时器达到预设时间时,判断为长按;若计时器未达到预设时间,则判断为短按。

3.组合键功能组合键是指同时按下多个按键实现特定功能的操作。

在单片机系统中,可以通过检测同时按下的按键数量和组合,实现对应功能的控制和操作。

4.多功能按键多功能按键是指一个按键可以实现多种功能。

在单片机系统中,可以通过记录按键按下的次数或时间,实现不同功能的切换。

三、单片机轻触按键的应用场景单片机轻触按键广泛应用于智能家居、工业控制、医疗设备等领域。

例如,智能家居中的照明控制、家电控制等;工业控制中的设备启动、停止等;医疗设备中的仪器操作等。

四、总结单片机轻触按键作为一种便捷的操作方式,具有响应速度快、灵敏度高、抗干扰能力强等优点。

29. 电容触摸按键实验


容充放电公式:Vc=V0*(1-e^(-t/RC))
普中STM32开发板带您进入ARM世界
我们使用TIM5的通道2(PA1)来检测触摸按键是否按下,每次检测前 ,我们需要先将电容Cs(或 Cs+Cx)放电,即配置PA1引脚为推挽输出模 式,输出一个低电平,才能使电容放电。然后配置PA1 为浮空输入模式 ,利用外部上拉电阻给电容 Cs(Cs+Cx)充电,同时开启TIM5_CH2的输入 捕获,配置极性为上升沿,当检测到上升沿的时候,就认为电容充电完 成了,完成一次捕获检测。
普中STM32开发板带您进入ARM世界
电容触摸按键实验
普中STM32开发板带您进入ARM世界
本讲主要内容
1.电容触摸按键介绍 2.硬件电路 3.编写电容触摸按键控制程序
普中STM32开发板带您进入ARM世界
1.电容触摸按键介绍
触摸按键与传统的机械按键相比,不仅美观而且耐用、寿命长,它颠 覆了传统意义上的机械按键控制,只要轻轻触摸,就可以实现按键开关 的控制、量化调节甚至方向控制。触摸按键已广泛应用于手机、DVD、洗 衣机等消费类电子产品中。本章我们就介绍一种简单的触摸按键:电容 式触摸按键。
我们PZ6806D开发板上的电容触摸按键其实就是一小块覆铜区域,也 称之为触摸感应区。
通常我们会将四周的铜片与电路板地信号连通,触摸感应区设计成方 便手指触摸大小,并将其连接在输入捕获通道上。
普中STM32开发板带您进入ARM世界
触摸感应区与四周的铜片区域就形成了一个电容,通过检测电容充放 电时间即可判断是否有触摸。实现原理:
普中STM32开发板带您进入ቤተ መጻሕፍቲ ባይዱRM世界
普中STM32开发板带您进入ARM世界
3.编写电容触摸按键控制程序

29. 电容触摸按键实验


普中STM32开发板带您进入ARM世界
普中STM32开发板带您进入ARM世界
3.编写电容触摸按键控制程序
本章所要实现的功能是:通过TIM5的通道2(PA1)捕获电容触摸按键 输入信号的高电平脉宽,根据捕获到高电平时间大小控制D2指示灯开关 ,同时D1指示灯不断闪烁表示系统正常运行。程序框架如下: (1)初始化PA1管脚为TIM5通道2输入捕获功能,设置上升沿捕获等 (2)读取一次捕获高电平的值 (3)电容触摸按键初始化 (4)检测电容触摸按键是否按下 (5)编写主函数
普中STM32开发板带您进入ARM世界
电容触摸按键实验
普中STM32开发板带您进入ARM世界
本讲主要内容
1.电容触摸按键介绍 2.硬件电路 3.编写电容触摸按键控制程序普Βιβλιοθήκη STM32开发板带您进入ARM世界
1.电容触摸按键介绍
触摸按键与传统的机械按键相比,不仅美观而且耐用、寿命长,它颠 覆了传统意义上的机械按键控制,只要轻轻触摸,就可以实现按键开关 的控制、量化调节甚至方向控制。触摸按键已广泛应用于手机、DVD、洗 衣机等消费类电子产品中。本章我们就介绍一种简单的触摸按键:电容 式触摸按键。
我们PZ6806D开发板上的电容触摸按键其实就是一小块覆铜区域,也 称之为触摸感应区。
通常我们会将四周的铜片与电路板地信号连通,触摸感应区设计成方 便手指触摸大小,并将其连接在输入捕获通道上。
普中STM32开发板带您进入ARM世界
触摸感应区与四周的铜片区域就形成了一个电容,通过检测电容充放 电时间即可判断是否有触摸。实现原理:
容充放电公式:Vc=V0*(1-e^(-t/RC))
普中STM32开发板带您进入ARM世界
我们使用TIM5的通道2(PA1)来检测触摸按键是否按下,每次检测前 ,我们需要先将电容Cs(或 Cs+Cx)放电,即配置PA1引脚为推挽输出模 式,输出一个低电平,才能使电容放电。然后配置PA1 为浮空输入模式 ,利用外部上拉电阻给电容 Cs(Cs+Cx)充电,同时开启TIM5_CH2的输入 捕获,配置极性为上升沿,当检测到上升沿的时候,就认为电容充电完 成了,完成一次捕获检测。

触控按键测试报告-V0.4


2
2014-09-15
觸控按鍵測試報告
測試項目 工作電壓範圍 工作電流(無負載) 電源測試(阻容式) 電源測試(變壓器) 測試結果 1.95V~5.55V 1.95V -- 1.63mA 5.55V -- 2.3mA PASS PASS 工作電壓 5V,按鍵正常工作。 工作電壓 5V,按鍵正常工作。 工作電壓 5V,按鍵正常工作。 工作電壓 5V,按鍵正常工作。 工作電壓 4.5V,按鍵正常工作。 結果分析/說明 1.95V 為最低可以工作的電壓,但是低 電壓將造成抗干擾性能降低。 測試方法 使用電源供應器,調節輸出電壓,視 DEMO 板 工作狀況。 電源供應器設定電壓,用電流表測量 DEMO 板 靜態電流。 用 5V 阻容式電源連接 DEMO 板,視 DEMO 板 工作狀況。 用 5V 變壓器電源連接 DEMO 板,視 DEMO 板 工作狀況。 用 5V 開關式,有安規電源連接 DEMO 板,視 DEMO 板工作狀況。 用 5V 開關式,無安規電源連接 DEMO 板,視 DEMO 板工作狀況。 電源測試(電池) 溫度適用範圍 濕度適用範圍 ESD 測試 EFT 測試 PASS -40℃~+85℃,PASS 1%~99%,PASS PASS ±4.4KV L2,L1+L2 無誤動作 +4.4KV L1 無誤動作 <-3.5KV L1 無誤動作 無誤動,無零件損壞 用三節乾電池串聯成 4.5V 電源連接 DEMO 板,視 DEMO 板工作狀況。 利用恆溫恆濕實驗機,設定快速與慢速溫度變 化,視 DEMO 板有無異常動作。 配合前項實驗 , 設定相對濕度的變化 , 視 DEMO 板有無異常動作。 依照 ESD 測試規範測試,±1KV~8KV,AIR 及 CONTECT。
電源測試(開關式,有安規) PASS 電源測試(開關式,無安規) PASS

关于单片机触摸按键

基于充放电原理的电容式触摸按键设计发布: 2011-9-1 | 作者: —— | 来源:lidongsheng| 查看: 291次| 用户关注:与传统的机械式按键相比,电容式触摸感应按键美观、耐用、寿命长。

电容式触摸感应按键实际只是PCB上的一小块“覆铜焊盘”,与四周“地信号”构成一个感应电容,触摸该按键会影响该电容值。

现在检测电容值的方法有很多种,如电流与电压相位差检测、由电容构成的振荡器频率检测、电容桥电荷转换检测。

而这里则是利用感应电容与电阻构成的RC回路,检测充放电时间的变化量,不需要专用检测电路,成本低廉。

1检测原与传统的机械式按键相比,电容式触摸感应按键美观、耐用、寿命长。

电容式触摸感应按键实际只是PCB上的一小块“覆铜焊盘”,与四周“地信号”构成一个感应电容,触摸该按键会影响该电容值。

现在检测电容值的方法有很多种,如电流与电压相位差检测、由电容构成的振荡器频率检测、电容桥电荷转换检测。

而这里则是利用感应电容与电阻构成的RC回路,检测充放电时间的变化量,不需要专用检测电路,成本低廉。

1 检测原理电容式触摸按键电路的原理构成如图1所示,按键即是一个焊盘,与地构成一个感应电容,在周围环境不变的情况下电容值固定为微小值,具有固定的充放电时间,而当有一个导体向电极靠近时,会形成耦合电容,这样就会改变固有的充放电时间,而手指就是这样的导体。

通过测量充放电时间的改变即可检测是否有按键被按下。

充放电时间的计算公式如下:式中,t,R,C分别为充放电时间,电阻值,电容值;V1为充放电终止电压值;V2为充放电起始电压值;Vt为充放电t时刻电容上的电压值。

首先,开关在断开的状态下该按键被下拉电阻拉低,电势为0 V,这时开关闭合开始对按键充电,等充满电稳定后再断开开关,这时按键开始放电,并用定时器记录这段放电时间为t1,反复该过程。

当有手指触碰按键时,放电时间会改变为t2,如图2所示,由此即可判断出手指是否触摸到该按键。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档