【Linux开发】电容屏原理

1、表面电容式触摸屏

参考视频:https://www.bilibili.com/video/av25429352,感谢李永乐老师通俗易懂的科普。

表面式电容屏有个氧化铟锡ITO)层(透明的导体层),该层有4个电极(在长方形的四个角),每个电极可以产生交流电压,ITO层的上一层是一个(透明的)绝缘层,(手指)触摸位置会和触摸屏的ITO层之间形成一个电容器,由于有交流电压加在电容屏的ITO层上,因此会有电路流过手指(交流电可以通过电容器,这个电流非常微弱,察觉不到对人体也无伤害),触摸屏控制芯片通过对4个电极的流失电荷的测量,可以计算按压位置到电极的距离,因此可以推算出手指按压的位置。

以下为猜想)另外,电容屏流入手指的电荷会被存储在人体上(人体可以存储一定量的电荷,这就是冬天经常被静电电到的原因),人体上过多的电荷可能会流入到空气中以及大地中去,这样一来,手指一直按压在电容屏上的话,会一直有电荷流入手指,这样就能实现手指保持触控状态。

 

2、投射式电容触摸屏

现在的手机、Pad、液晶显示器等都是使用投射式电容触摸屏。投射式电容触摸屏的原理和表面电容式触摸屏的大致原理其实是一样的,都是利用人体和触摸屏的导体层之间形成电容效应来进行触摸检测,但是实现方式不一样,投射式电容触摸屏的实现更加复杂,但是也可以实现更好的触摸体验,可以实现多点触摸检测。

投射式电容触摸屏原理参考文章:https://wenku.baidu.com/view/0bb031ebd15abe23482f4d61.html

 

3、测试电容触摸屏

用手指进行触控测试......没那么傻瓜,并不是所有时候都是用手指触摸屏幕,例如有网友使用机械结构控制一个模拟的手指触摸屏幕玩Flabby Bird游戏以及抢微信红包,那么这个模拟出来的手指是怎么实现的呢?

想要在电容触摸屏上实现触摸效果,首先要有一个导体在触摸屏上,并且这个导体有一定的面积,因为电容器的容值和两个导体之间的距离、导体间的有效面积以及两个导体之间的绝缘体的电导率这三个参数有关,这三个参数中只有导体间的有效面积容易控制。我们使用手指按压的时候,手指上的肉是软的,会形成一个较大的接触面,这样就可以形成一个容值较大的电容,这样容易被检测到。但是我们如果使用一个铁针戳触摸屏的话,是没反应的。

其次,触摸的物体需要有一定的“电荷容纳能力”以及“电荷泄放能力”,这两个是我自己“瞎”创造的词。“电荷容纳能力”是指物体可以存储一定量的电荷,相同材质的物体,通常是体积越大能存储的电荷就越多,因为相同电荷量的情况下,体积越小的物体,电荷密度越高,电荷之间的库仑力会更大,更容易饱和,导致无法继续存储电荷。例如人体是可以存储一定的电荷的,而且这个存储量远大于电容屏的放出的电荷量,其实原理上是人体和大地之间形成了一个电容器,人体带 n 库伦的负电荷的话,大地就会感应出 n 库伦的正电荷,但是由于大地太大,所以人体的这一点电荷不影响大地的电极性,依然是中性。再比如云朵也是可以存储电荷的,而且可以存储库伦量级的电荷,当存储的电荷太多而饱和时,或者有一个拥有异性电极性的云朵靠近时,就会发生闪电打雷的现象,前者是和大地之间的放电,后再是云层之间的放电。“电荷泄放能力”是指人体(或者物体)在存储了电荷(呈非中性)之后,会通过脚底和大地的接触、皮肤和空气的接触等方式将身上多余的电荷散发出去的能力,以防止发生电荷“饱和”现象,说白了,其实就是人体与大地之间的电阻,如果这个电阻无穷大,那么光有电荷进来没有电荷出去,人体的存储的电荷容易饱和,可以想象,如果光有电荷进入人体而长时间不释放,那容易“闪电”了。

需要补充一点,手机的电容触摸屏向外放出电荷的时候,为了保持手机的电中性,也会从外接获取同样多的极性相同的电荷,而且手机使用的化学电池也不支持只放出电子不接收电子,因此如果手机本身很难获取到电荷也会影响触摸屏向外发送电荷(手机释放电荷后会慢慢饱和无法继续释放),导致触摸变得不灵敏。手持手机操作的时候,电荷流动过程很可能就是从手指流入人体,再从握着手机的手上回到手机上去,没有手持手机的时候,电荷流入人体,可能存储在人体上,也可能会从人体流入到大地或者空气,然后手机又从空气或者大地吸收到电荷,与人体形成一个间接的电路循环。所以,将手机放在一个十分干燥的地方,且手机和外界的接触绝缘性很好,在不手持手机的情况下,触摸屏会变得不灵敏,但是将手机放在一块贴片上或者手持着手机的时候,触摸屏又会变正常。

基于上面的假设,我用烟盒里面的铝箔纸多次折叠之后做了一个小垫子,这个铝箔纸是软的,在屏幕上容易获得较大的接触面积(我试过铜箔纸,不好使,铜的硬度可能比较大):

手机上安装一个触摸屏测试软件:MultiTouchTest,打开测试软件,然后将这个垫子放在手机上,用一根绝缘笔稍稍用力按压垫子,手机上没有反应,但是手指按压这个垫子上,就有触摸点了。说明了这个垫子的接触面积是够了,但是没有足够的“电荷容纳能力”以及“电荷泄放能力”,使用手指按压在上面之后,这个垫子才能够有足够的能力被触摸屏识别到。

那么怎么做到不使用手指按压使得垫子也能够被触摸屏识别到呢?问题集中在要让垫子拥有足够的“电荷容纳能力”以及“电荷泄放能力”,我尝试着在垫子上接了一根长导线,这样垫子能够存储相对较多的电荷同时和空气有较大的接触面积,继续用绝缘笔轻压垫子(注意不要使用手抓着导线,因为交流电可以通过导线的绝缘层),果然可以,触摸屏可以识别到这个垫子了:

 

但是遇到一个小问题,垫子被识别到的同时,如果手指按压在屏幕上,会导致垫子的识别点会很容易丢失,用绝缘笔用力按压垫子之后,识别点不会那么容易丢失。关于这点,我有个解释,就是垫子加上导线所产生的电容太小,在触摸上产生的信号较为微弱,在没有手指按压的时候,该微弱的信号会被认作是触摸,但是当手指按压在触摸屏上的时候,产生的信号强度远大于垫子产生的信号,这时候触摸芯片会以手机按压产生的信号作为触摸点的扫描基准,因此将垫子产生的微弱信号过滤掉了(将其视作是干扰信号),所以出现了手指按压时垫子的触摸点丢失现象。为了验证我的想法,我将接在垫子上的导线的另一端接到一个很大的金属桌子上,桌子和大地的接触也不错,这时候继续测试,发现手指不会再干扰垫子的信号了,说明垫子产生的信号足够大了,不会被过滤掉。

使用长导线并接地的方式好像不是很方便,我又做了一个实验,使用一根短导线(短导线不足以让垫子被识别),并将导线接到一杯盐水中,盐水中有氯离子和纳离子,导电性很好,而且液面和空气的接触也不错,至于盐水存储电荷的能力不得而知。实验结果很好,信号强度也不错,不会被手指干扰。

 

 

下面希望能够使用导电胶之类的材料进行测试,并做一些有意思的玩具。

猜你喜欢

转载自blog.csdn.net/tq384998430/article/details/102825339