1. 触摸屏工作原理:电阻屏与电容屏的物理原理、坐标采集方式、ADC转换过程

做触摸校准算法,你得先摸透触摸屏是怎么工作的。说白了,校准算法就是在修正物理层带来的误差。如果连屏怎么报坐标都不清楚,那校准就是瞎调。

我最早接触触摸屏是在一个工控项目上,用的还是四线电阻屏。那时候年轻,觉得不就是点一下嘛,结果被非线性误差折腾了好几个通宵。嗯,从那以后我就养成了一个习惯——先看物理原理,再写代码。

1.1 电阻触摸屏:靠压力吃饭的老将

电阻屏的原理其实很简单。你想想看,它就像个三明治:两层透明导电层中间夹着微小的隔离点。上面那层是软的,下面那层是硬的。你用手指或者笔尖一按,上层就弯下去,跟下层碰在一起了。

核心要点:电阻屏检测的是物理接触,不是手指的电容。所以戴手套、用笔尖、甚至用信用卡都能操作。这在工业环境里特别实用。

坐标是怎么采的?

电阻屏的坐标采集分两步走:

  1. X轴测量:在左右两端的导电层上加电压(比如5V)。上层作为探针,检测接触点的电压值。电压越高,说明触点越靠右。
  2. Y轴测量:切换方向,在上下两端加电压。下层作为探针,检测接触点的电压值。电压越高,说明触点越靠下。

我习惯把这个过程叫做「分时复用」。同一套物理结构,通过切换驱动和检测的角色,先后读出X和Y坐标。

ADC转换过程

检测到的电压是模拟量,得转成数字量才能给CPU用。这里就需要ADC(模数转换器)了。

参数 典型值 说明
ADC分辨率 10位 ~ 12位 10位对应0~1023,12位对应0~4095
参考电压 5V 或 3.3V 决定了电压测量的满量程范围
采样率 100 ~ 500 kHz 太快了会引入噪声,太慢了跟不上触摸速度

举个例子,假设ADC是12位的,参考电压3.3V。如果检测到电压是1.65V,那ADC输出就是2048。这个原始值就是坐标的「生数据」,还没经过校准。

我曾经踩过的坑:电阻屏的ADC采样值会有抖动。尤其是当触摸压力不够或者屏表面有污渍时,连续采样的值能跳几十个LSB。后来我加了个简单的滑动滤波(取5次平均值),问题就解决了。别一上来就上卡尔曼,先试试最土的办法。

1.2 电容触摸屏:靠感应吃饭的新秀

电容屏现在满大街都是,手机、平板、车载屏全是它。它的原理跟电阻屏完全不同——它不靠压力,靠的是电容变化。

你想想看,人体本身就是一个导体。当你手指靠近屏幕时,手指和屏幕之间的导电层会形成一个寄生电容。这个电容虽然很小(几皮法级别),但足够被检测电路捕捉到。

两种主流结构

  • 表面电容式:四个角加电压,检测电流变化。结构简单,但只能识别单点触摸。
  • 投射电容式:用ITO(氧化铟锡)蚀刻出横竖交错的电极矩阵。每个交叉点就是一个检测单元。这才是现在的主流。

我个人更喜欢投射电容式,因为它支持多点触摸。你在手机上双指缩放,靠的就是这个技术。

坐标采集方式

电容屏的坐标采集比电阻屏复杂一些。它用的是扫描法:

  1. 驱动芯片逐行给X电极(发射极)施加激励信号。
  2. Y电极(接收极)逐列检测电容变化。
  3. 检测到电容变化最大的那个交叉点,就是触摸位置。
  4. 如果有多个触摸点,芯片会分别记录每个点的坐标。

这里有个关键点:电容屏的原始坐标是「插值」出来的。因为手指接触的是一个区域,不是精确的一个点。芯片会检测到多个相邻交叉点的电容变化,然后通过算法算出重心位置。

避坑指南:电容屏在潮湿环境下容易误报。我曾经在一个户外项目中遇到过——下雨天,屏幕上的水珠被识别成了触摸点。后来我们在软件里加了面积过滤:如果检测到的触摸区域太大(超过正常手指的3倍),就判定为水珠,直接丢弃。

1.3 电阻屏 vs 电容屏:怎么选?

很多刚入行的朋友问我:到底用哪种屏?我的回答是:看场景。

对比项 电阻屏 电容屏
触发方式 压力(必须接触) 感应(可接近)
多点触摸 不支持(最多两点) 支持(10点以上)
耐用性 一般(膜层易磨损) 好(玻璃面板)
成本 低 高
适用环境 工业、医疗、户外 消费电子、车载

我个人的经验是:如果设备需要戴手套操作,或者环境有油污、水滴,优先选电阻屏。如果追求用户体验、支持手势操作,那就选电容屏。

1.4 本章知识体系总览

下面这张图把电阻屏和电容屏的核心差异、坐标采集流程、ADC转换关系串起来了。我建议你把它存下来,后面讲校准算法时会反复用到这些概念。

触摸屏工作原理知识体系图 触摸屏工作原理知识体系 电阻触摸屏 电容触摸屏 物理原理:压力接触 两层导电层 + 隔离点 坐标采集:分时复用 X轴测量 → Y轴测量 ADC转换:电压→数字 10~12位分辨率,参考电压3.3V/5V 特点:戴手套可用 笔尖、信用卡均可操作 典型场景:工业/医疗 油污、水滴环境仍可靠 物理原理:电容感应 人体寄生电容(几皮法) 坐标采集:矩阵扫描 X/Y电极交叉点检测 ADC转换:电容→数字 检测电容变化量,插值计算 特点:支持多点触摸 双指缩放、手势操作 典型场景:消费电子 手机、平板、车载屏 核心差异:电阻屏靠压力,电容屏靠感应。校准算法需要分别处理。

好了,这一章就讲到这里。你只要把电阻屏的「分时复用+ADC采样」和电容屏的「矩阵扫描+插值计算」这两个核心逻辑吃透,后面讲校准算法时就不会觉得突兀了。