韦东山嵌入式入门笔记之——应用开发基础篇(七)电阻屏和电容屏

目录


前言

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

注意:LCD、触摸屏不是一回事,LCD 是输出设备,触摸屏是输入设备;触摸屏是外屏,负责触控输入;LCD是内屏,负责显示输出。制作触摸屏时特意把它的尺寸做得跟 LCD 一模一样,并且把触摸屏覆盖在 LCD 上。

一、电阻屏

1、电阻屏原理

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

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

① 测量 X 坐标:

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

② 测量 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)

2、电阻屏数据

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

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

二、电容屏

1、原理

电容屏中有一个控制芯片,它会周期性产生驱动信号,接收电极接收到信号,并可测量电荷大小。当电容屏被按下时,相当于引入了新的电容,从而影响了接收电极接收到的电荷大小。主控芯片根据电荷大小即可计算出触点位置,这类芯片一般是 I2C 接口。 我们只需要编写程序,通过 I2C 读取芯片寄存器即可得到这些数据。

2、电容屏数据

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

这有两种方法:Type A、Type B,这也对应两种类型的触摸屏。其中Type A只能上传触电数据给软件,由软件分析出触电位置,这类触摸屏已经淘汰过时了,所以我们主要讲Type B。

Type B

该类型的触摸屏能分辨是哪一个触点,上报数据时会先上报触点 ID,再上报它的数据。
当有 2 个触点时(type, code, value):


当ID为45的触点移动时:

松开 ID 为 45 的触点时:(这里无需重新设置SLOT,SLOT 就像一个全局变量一样:如果它没变化的话,就无需再次设置


最后,松开 ID 为 46 的触点:(这列因为更改了触点,所以要申明SLOT为1)

3、实际的实验数据

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

bash 复制代码
hexdump /dev/input/event0

用一个手指点击触摸屏,得到类似如下的数据:

在上面的数据中,为了兼容老程序,它也上报了 ABS_X、ABS_Y 数据,电阻触摸屏就是使用这类型的数据。所以基于电阻屏的程序,也可以用在电容屏上。而两个MAJOR数据则是表示TOUCH面积的一个参数,暂时不需要了解。其他的基本和上面描述的一致。

使用两个手指点击触摸屏时,得到类似如下的数据:


为了兼容老程序,它也上报了 ABS_X、ABS_Y 数据,但是只上报第 1 个触点的数据。其他的也和也之前分析的一致。

相关推荐
一路往蓝-Anbo8 小时前
第三篇:ADC 与模拟前端
stm32·嵌入式硬件·嵌入式·硬件设计
Net_Walke9 小时前
【Linux系统】静态链接库与动态链接库
linux·嵌入式硬件
努力小周11 小时前
STM32智能安防系统
c语言·stm32·单片机·嵌入式硬件·物联网·计算机网络·pcb工艺
华科大胡子13 小时前
在STM32上跑通TinyML
stm32·单片机·嵌入式硬件
zhaoshuzhaoshu16 小时前
嵌入式开发之IIC接口详解-STM32
嵌入式硬件·软件工程
iCxhust17 小时前
MTK8088单板机制作(一)时钟电路
汇编·单片机·嵌入式硬件·微机原理·8088单板机
2601_9583529017 小时前
双麦 DSP 音频拾音模块 A-68:多场景远场语音交互的声学解决方案
嵌入式硬件·音视频·降噪·回音消除·音频处理模块
崇山峻岭之间17 小时前
单片机直流有刷电机速度环PID控制实验
单片机·嵌入式硬件
xiangw@GZ18 小时前
智能锁浮空系统指纹头金属环ESD防护技术分析
单片机·嵌入式硬件
ACP广源盛1392462567318 小时前
IX7008 PCIe 交换芯片@ACP#RTX Spark 经济型 8 口扩展芯片(对比 ASM1806)
大数据·人工智能·分布式·嵌入式硬件·gpt·spark·电脑