专栏首页嵌入式开发圈触摸屏工作原理

触摸屏工作原理

一、电阻屏触控原理

类似可变电阻,当可变电阻的两端接一个正电压V+,另一端接地,当调整电阻值后,测量调整点与接地端的电压值,然后根据欧姆定律,计算出调整点与接地点的电压值。

二、电容屏常见形式

表面电容式(SCT,Surface,Capacitive Touch)

当手指触摸在金属层上时,由于人体电场,用户触屏表面时形成一个耦合电容,对于高频电流来说,电容是直接道题,于是手指从接触点吸走一个很小的电流。这个电流分从触摸屏的四个电极中流出,并且流经这四个电极的电流与手指到四角的距离成正比,控制器通过对这四个电流比例的精确计算,得出触摸点的位置。

投射电容式 (PCT,Projected Capacitive Touch)

2.1 自电容式触摸基本原理(可以实现单点+手势)

2.2 互电容式触摸基本原理(可实现多点)

本文主要说的是投射电容式相关的内容。

支持多点触摸,在玻璃表面用一层或者多层的ITO,制作X轴和Y轴电极矩阵,当手触摸时,手指和ITO表面形成一个耦合电容,引起电流的微弱变动,通过扫描X轴和Y轴电极矩阵,检测触摸点电容量的变化,计算出手指所在位置。

2.1 自电容式触摸基本原理

自电容,简单的说就是手指与大地形成一个电容,当触碰屏体本身的时候,形成一个并联电路。当手没有触碰屏体的时候,电路如下图(1)所示:

可以等效为如下电路图,Cs = 上图的Cp,电路等效图如图(2)所示:
当手触摸屏体的时候,由于手指与大地之间就相当于接了一个Cf的并联电容,如下图(3)所示。
等效为如图(4)所示:
由上图(4)可知,并联的的级数越多,则满足如下公式:C总 = Cp + Cf 由于电路并联,则满足电压关系:

U总 = Ucp = Ucf

则满足电流关系:

I总 = Icp + Icf

实际上,在玻璃表面用ITO(一种透明的导电材料)制作成横向与纵向电极阵列,这些横向和纵向的电极分别与地构成电容,这个电容就是通常所说的自电容,也就是电极对地的电容,在图(4)中就是Cp。当手指触摸到电容屏时,手指的电容将会叠加到屏体电容上,也就是图(4)中的Cf,使屏体电容量增加。

在触摸检测时,自电容屏依次分别检测横向与纵向电极阵列,根据触摸前后电容的变化,分别确定横向坐标和纵向坐标,然后组合成平面的触摸坐标。自电容的扫描方式,相当于把触摸屏上的触摸点分别投影到X轴和Y轴方向,然后分别在X轴和Y轴方向计算出坐标,最后组合成触摸点的坐标,我们可以形象的把这一个过程等效为图7-11。 假设如图5所示,如果是单点触摸,则在X轴和Y轴方向的投影都是唯一的,图中的红线就是投影,所以组合出的坐标也是唯一的;假设如图6,如果在触摸屏上有两点触摸并且这两点不在同一X方向或者同一Y方向,则在X和Y方向分别有两个投影,则组合出4个坐标。显然,只有两个坐标是真实的,分别是(4,5)和(9,8),而另外两个就是俗称的”鬼点”。因此,自电容屏无法实现真正的多点触摸。

三、消除鬼点常用的方法

分时法: 假设多点触摸是分时发生的,自电容测量方法首先确定第一个触摸点,第二个触摸点操作将会产生对应的鬼点,由于真正的第二个点与第一个点呈对角线状态,如图(6)所示,因此可以消除鬼点,这种方法需要触控的时候 间隔几毫秒的时间即可。

分区法: 将整个触摸屏物理分割成多个区域,由于每个区域确定一个操作,这样就可以避免鬼点的操作。

总结自电容的优点是简单、计算量小,满足X+Y的计算。缺点是单点、速度慢;

四、互电容式触摸基本原理

如图(7)所示,互电容屏也是在玻璃表面用ITO制作横向电极与纵向电极,它与自电容屏的区别在于,两组电极交叉的地方将会形成电容,也即这两组电极分别构成了电容的两极。当手指触摸到电容屏时,影响了触摸点附近两个电极之间的耦合,从而改变了这两个电极之间的电容量。检测互电容大小时,横向的电极依次发出激励信号,纵向的所有电极同时接收信号,这样可以得到所有横向和纵向电极交汇点的电容值大小,即整个触摸屏的二维平面的电容大小。根据触摸屏二维电容变化量数据(触摸后电容值减小),可以计算出每一个触摸点的坐标。因此,屏上即使有多个触摸点,也能计算出每个触摸点的真实坐标。

互电容的优点是真实多点、速度快,缺点是复杂、功耗大、成本高。

本文分享自微信公众号 - 嵌入式开发圈(gh_d6ff851b4069),作者:杨源鑫

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 会C/C++就可以开发Linux/Android应用程序?替代传统串口屏的Yoxios了解一下!

    串口屏相信各位开发者都不陌生了,它解决了大多数开发者在嵌入式UI应用方向的痛点,常见的痛点主要有以下几个方面:

    morixinguan
  • C语言操作excel表格-链表实现

    https://blog.csdn.net/morixinguan/article/details/83309576

    morixinguan
  • Linux 下Input系统应用编程实战

    什么是input子系统?不管是什么操作系统,都有一个程序是用于管理各种输入设备的,打个比方,生活中使用的电脑键盘、鼠标就是输入设备,小到日常生活中无可避免的智能...

    morixinguan
  • 【 文智背后的奥秘 】系列篇 : 分布式爬虫之 WebKit

    WebKit 是由 Apple 公司开发的开源浏览器内核,WebKit 主要分为三个模块:WebCore、JavaScriptCore、平台应用相关Port。相...

    文智
  • /etc/security/limits.conf的相关说明

    通过ulimit -n命令可以查看Linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux...

    拓荒者
  • 研究人员改进全息图的“胶片”结构,利用纳米硅柱使三维图像构造起来更容易 | 黑科技

    镁客网
  • Kubernetes 年度关键进展回顾

    2017年已经接近尾声,Kubernetes保持者每季度一个大版本的节奏快速发展,1.6至1.9版本共计完成了近150项特新更新,在集群规模、调度能力、可扩展性...

    企鹅号小编
  • VUE+WebPack前端游戏设计:实现外星人攻击建筑物时的冒烟效果

    望月从良
  • 算法之路----排序算法(上)

    排序算法在各种语言中都有已经封装好的API可使用了。但是排序算法内部怎么实现的?有哪些常用的排序算法我们还是需要了解一下的。

    Haley_Wong
  • ZooKeeper 客户端开发

    完成了 ZooKeeper 服务器集群的部署,本文以官方 API 和 zkClient 两种方式,演示了 ZooKeeper 数据的修改和状态监视。并以代码模拟...

    IT技术小咖

扫码关注云+社区

领取腾讯云代金券