英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4218|回复: 0
打印 上一主题 下一主题

根据microchip AN1298介绍的原理搞的单键电容触摸【转】

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-20 18:50:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
根据AN1298介绍的原理搞的单键电容触摸。原理介绍如下文:

To perform the sensing, do the following:
1. Drive secondary channel to VDD as digital
output.
2. Point ADC to the secondary VDD pin (charges
CHOLD to VDD).
3. Ground sensor line.
4. Turn sensor line as input (TRISx = 1).
5. Point ADC to sensor channel (voltage divider
from sensor to CHOLD).
6. Begin ADC conversion.
7. Reading is in ADRESH:ADRESL.

实际测试采用的平台是pic16f883,使用其an0(ra0)作为传感器,连接一个3*2cm的单面覆铜板作为感应键。另外用其an1(ra1)作为充电的电源,采用5V供电的Vdd。
AN1作为模拟输入,用个电阻电容连接正电源;AN0作为感应电容的输入端。程序中ad_key是全局变量。
程序功能已经实现,可以视感应金属片的大小设置响应动作的门限电平,在灵敏度和稳定性方面取得综合平衡。

//************AD keying**************
unsigned int ADkey(void)
{

ANSEL=2;                         //AN0转为数字口
TRISA0=0;                        //给an0外电路放电
RA0=0;                             //防止该口残留影响
ANSEL=3;                         //AN0转为模拟口
TRISA1=1;                        //对an1进行ad
ADCON0=0X85;                 //让电容Chold在an1口充电
GODONE=1;                      //启动AD
while (GODONE);                //等待转换结束
TRISA0=1;                        //转换该口为模拟输入
ADCON0=0X81;                 //让电容Chold转向an0  
GODONE=1;                      //启动AD
while (GODONE);                //等待转换结束
ad_key=ADRESH*256+ADRESL;
return ad_key;
}
  
在实际电路应用中,发现地线悬浮时感应信号过强,开关一直处于“压低”态的问题。经过试验,在触摸板和AN0引脚之间插入一个单T高通滤波器解决。883平台12MHz晶体,取的电容为10pf,电阻可调,约3k时达到稳态,灵敏度尚可
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-24 01:38 , Processed in 0.049330 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表