电阻屏和电容屏

目录

一、电阻屏

1.欧姆定律

2.电阻屏原理

(1)测量 X 坐标

(2)测量 Y 坐标

3.电阻屏数据

二、电阻屏

1.原理

2.电容屏数据

(1)Type A

(2)Type B

3.电容屏的实验数据


一、电阻屏

触摸屏分为电阻屏、电容屏。电阻屏结构简单,在以前很流行;电容屏支持多点触摸,现在的手机基本都是使用电容屏。

注意:

LCD、触摸屏不是一回事,LCD 是输出设备,触摸屏是输入设备。制作触摸屏时特意把它的尺寸做得跟 LCD 一模一样,并且把触摸屏覆盖在 LCD 上。

1.欧姆定律

图中的电阻假设是均匀的,就是长度和阻值成正比关系。电阻长度为 L,阻值为 R,在两端施加 3.3V 电压。在某点测得电阻为 V,求上图中长度 X。 根据欧姆定律:3.3/R = V/Rx,

根据欧姆定律:3.3/R = V/Rx, 因为长度和阻值成正比关系,上述公式转换为:3.3/L = V/X,所以X=LV/3.3。

2.电阻屏原理

电阻屏就是基于欧姆定律制作的,它有上下两层薄膜,这两层薄膜就是两个电阻,如下图所示:

平时上下两层薄膜无触触,当点击触摸屏时,上下两层薄膜接触:这时就可以测量触点电压。

过程如下:

(1)测量 X 坐标

在 xp、xm 两端施加 3.3V 电压,yp 和 ym 不施加电压(yp 就相当于探针), 测量 yp 电压值。该电压值就跟 X 坐标成正比关系,假设: X = 3.3*Vyp/Xmax

(2)测量 Y 坐标

在 yp、ym 两端施加 3.3V 电压,xp 和 xm 不施加电压(xp 就相当于探针), 测量 xp 电压值。该电压值就跟 Y 坐标成正比关系,假设: Y = 3.3*Vxp/Ymax

在实际使用时,电阻屏的 Xmax、Ymax 无从得知,所以使用之前要先较准: 依次点击触摸屏的四个角和中心点,推算出 X、Y 坐标的公式:X = func(Vyp),Y = func(Vxp)

3.电阻屏数据

Linux 驱动程序中,会上报触点的 X、Y 数据,注意:这不是 LCD 的坐标值, 需要 APP 再次处理才能转换为 LCD 坐标值。

对应的 input_event 结构体中,“type、code、value”如下:

按下时:

松开时:

二、电阻屏

1.原理

电容屏中有一个控制芯片,它会周期性产生驱动信号,接收电极接收到信号, 并可测量电荷大小。当电容屏被按下时,相当于引入了新的电容,从而影响了接 收电极接收到的电荷大小。主控芯片根据电荷大小即可计算出触点位置。

怎么通过电荷计算出触点位置?这由控制芯片实现,这类芯片一般是 I2C 接口。

我们只需要编写程序,通过 I2C 读取芯片寄存器即可得到这些数据。

2.电容屏数据

电容屏可以支持多点触摸(Multi touch),驱动程序上报的数据中怎么分辨触点?

这有两种方法:Type A、Type B,这也对应两种类型的触摸屏:

(1)Type A

该类型的触摸屏不能分辨是哪一个触点,它只是把所有触点的坐标一股脑地上报,由软件来分辨这些数据分别属于哪一个触点。

Type A 已经过时,Linux 内核中都没有 Type A 的源码了。

(2)Type B

该类型的触摸屏能分辨是哪一个触点,上报数据时会先上报触点 ID,再上报它的数据。

具体例子如下,这是最简单的示例,使用场景分析来看看它上报的数据。

当有 2 个触点时(type, code, value):

当 ID 为 45 的触点正在移动时:

松开 ID 为 45 的触点时(在前面 slot 已经被设置为 0,这里这需要再重新设置 slot,slot 就像一个全局变量一样:如果它没变化的话,就无需再次设置):

最后,松开 ID 为 46 的触点:

3.电容屏的实验数据

假设你的开发板上电容屏对应的设备节点是/dev/input/event,执行以下命令:

hexdump /dev/input/event1

然后用一个手指点击触摸屏,得到类似下图数据:

  • 40
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱嵌入式的小佳同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值