Qtouch技术

Qtouch技术是Atmel发明的,比较常见的就是电磁炉上的触摸按键。如下图所示。


只要手指靠近上面那些感应区域,就可以触发某种功能了,相当于实体的按键一样。

如果你用万用表是测上面那些区域,是绝缘的。

1、那么它是如何实现感应的呢?答:利用电场。

给上图中方框的闭合导体(这个导体就是感应器)施加电压,那么在导体四周会形成电场,手指靠近这个电场,就会影响到电场的分布,从而使得这个导体的分布电容发生变化。

上图中,感应器在顶层,而底层是没有地平面的,这样的设计灵敏度是非常高的,如果不想它灵敏度那么高,可以在底层铺层地。但是不能铺实习的地平面,因为那样感应器和地平面之间会产生较大的寄生电容,从而影响了感应器的灵敏度。所以只能用50%~75%的网格铺铜。


由上图可以很明显地看到手指如何干涉感应器的电场。

如果你还不能理解这个现象的话,可以用手捉住收音机的天线,看看收音机是不是受到干扰。

此外,用这样的感应方式的话,两个感应器之间的距离不能太近,否则容易受到干扰。

感应区域设置为手指头大小就可以了,一般是个圆圈。

2、如何用单片机测到电场的变化,也就是如何测到感应器的分布电容?

有两种方法,第一种是充放电。


利用一个IO口,送高低电平,就可以让感应器的分布电容充放电了。

那么先让它充电,再打开定时器计数,再放电,然后一直放电使得分布电容两端的电压,达到外部中断的触发电平(大概是1V左右吧),就让定时器停止计数,利用这个计数值就能大概地推算出分布电容的容值。但是我们其实不需要知道它具体的容值,我们只需要知道定时器的计数值跟容值有个对应关系就可以了。

打个比方,如果没有手指靠近感应器时,计数出来是50;有手指靠近时,计数出来是200,那么就能知道有手指靠近了。我们只需要知道计数出来的差值,关于它是50还是60,200还是220,这都不影响我们的判断。

第二种就是张弛振荡器。这需要单片机内部有比较器,如:MSP430等。

张弛振荡器最经典的就是文氏桥。为什么叫张弛振荡?

张就是张开弓,表示紧张,而弛就是松开弓,表示松懈。那么把电容比喻成弓的话,那么张就充电,而弛就是放电。这就跟第一种方法的原理差不多,关键是这里利用了比较器来构成振荡器。


由上图,可以很清晰地看到,单片机的比较器产生方波,使得电容充放电,如果容值变化,那么比较器输出的方波周期会发生变化。

这就需要两个定时器了,一个用来计数比较器输出的脉冲个数,而另一个则设定为一个阈值时间(类似于频率计的闸门时间)。

比如:定时器1设置阈值时间为10us,而定时器2在容值不变,而且在10us内计数出来是80,而在容值变化时,计数出来是200,那么就可以判断为有手指靠近。

这种方法跟充放电一样,我们只需要知道计数出来的差值,关于它是80还是60,200还是400,这都不影响我们的判断。

显然用张弛振荡的方式要复杂一些。

需要注意的地方:

感应器要设计得合理,尽量让它的容值变化量大一些。

如果用柔性板来设计感应器,那么在组装时,要贴紧面板,不能有气泡。

感应器的分布电容不是固定不变的(在手指没靠近的情况下),它会受到环境的影响,如:温度之类的。所以每隔一段时间,就要校正一下这个容值,大概1分钟校正一次就够了。

你可以用Altium Designer 13里面的Qtouch库(如果没装插件是用不了这个功能的),来设计感应器的形状,具体操作Altium的官网有视频。


旧版本的Altium Designer是没有这个库的。

很多单片机都有现成的触摸按键库,如:AVR,MSP430,STM8等。你可以轻松实现这个很酷的功能,当然Atmel还提供更贴心的开发工具,详情请参见官网。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值