电阻屏和电容屏

news2024/11/18 21:35:06

目录

一、电阻屏

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1867512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 学习之 axios

目录 执行安装命令:npm install axios 使用的时候导入 axios以data,params,headers传参方式的区别 axios封装 是一个基于 promise 的 网络请求库,作用于浏览器和 node.js 中。使用Axios可以在前端项目中发送各种方式的HTTP请求…

【redis】redis安装

1、安装前准备 1.1环境准备 VMware安装 参考博文:【VMware】VMware虚拟机安装_配置_使用教程_选择虚拟机配置选项,设置dvd镜像为 点击启动虚拟机-CSDN博客 安装centOS的linux操作系统 xshell xftp 参考博文:【Linux】Xshell和Xftp简介_安装_VMwar…

经验分享,免费商标查询网站

有时候想快速查询商标状况,官方网站比较慢,这里分享一个免费快速的网站。 网址:https://www.sscha.com/ 截图:

《Redis设计与实现》阅读总结-3

第 12 章 事件 Redis服务器是一个事件驱动程序,服务器需要处理两类事件:文件事件和时间事件 一、文件事件 1. 文件处理器:Redis基于Reactor模式开发了自己的网络事件处理器被称为文件处理器 文件事件处理器使用I/O多路复用程序来同时监听多…

vue 中监听生命周期事件

vue 中监听生命周期事件 常见的添加自定义事件的写法希望在子组件挂载时通知父组件在模板上监听组件生命周期vue3 生命周期事件吗?jsx 中如何监听生命周期事件呢?通过 vNode 操作 html vue3 父子组件的生命周期的执行顺序是怎样的?小结 vue2 …

Swift中的二分查找:全面指南

Swift中的二分查找:全面指南 简介 二分查找是计算机科学中的经典算法,被广泛用于在已排序的数组中高效地搜索目标值。与线性查找逐个检查每个元素不同,二分查找不断将搜索区间减半,因此在处理大数据集时要快得多。 在这篇博客中…

FairyGUI框架下unity发布微信小游戏问题记录

一、unity发布微信小游戏中文字体不显示 在unity中发布WebGl项目时,如果使用的是默认字体就会出现中文字体丢失现象。 这个是在unity中 这个是在微信开发者工具里面显示的 解决办法: 打开我的电脑 C:\Windows\Fonts 随便找一个文件结尾为.ttf的字体…

如何实现系统重装和还原?电脑重装系统的详细介绍(内附系统还原教程)

我们使用电脑办公时,如果出现卡顿、运行缓慢、蓝屏崩溃或病毒感染时,可以通过重装系统的方法来解决。但是电脑系统还原和系统重装都比较麻烦,很多电脑小白跟小编一样,无从下手。 系统重装:重装系统则是将电脑系统完全清…

化茧成蝶 | 继HuggingFace首家落地大模型具身智能场景

关于具身智能的起源 近年来,大语言模型(LLMs)的兴起给机器人领域带来了革命性的改变,大模型赋予了传统机器人理解和推理的能力,让具身智能这一概念再度出现在大众的视角中。OpenCSG 作为国内 AI 开源社区的先锋&#…

如何快速解决验证码图像问题 | 最佳图像(OCR)验证码解决工具

你是否曾经遇到过陷入一个看似无尽的 CAPTCHA 挑战中,努力识别扭曲的字符或数字?这些令人抓狂的 CAPTCHA 是为了确保你是人类而不是机器人,但它们也给真正的用户带来了头痛。那么,有没有快速解决这些 CAPTCHA 图像的方法&#xff…

Python jsonschema库:数据验证的强大工具

更多Python学习内容:ipengtao.com 在处理JSON数据时,验证其结构和内容的正确性至关重要。jsonschema是一个用于描述和验证JSON文档结构的标准,Python的jsonschema库是实现这一标准的强大工具。本文将详细介绍jsonschema库的功能、安装与配置、…

安卓webview加载vue打包后的项目

<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"ty.sql.dqwgsw"><uses-permission android:name"android.permission.INTERNET" /&g…

需求之 实现获取调试信息在h5页面,在手机端可以查看调试(二)

事实证明 chatgpt很好用&#xff0c;有不懂的问题可以问它 https://zhuanlan.zhihu.com/p/690118775 国内外9个免费的ChatGPT网站 我筛选出来的比较好用免费的网站 fchat.dykyzdh.cn/ 这个也可以 阿里云的 通义灵码 在vscode中安装使用 而且阿里云有一个产品&#xff0c;可以…

国产音频放大器工作原理以及应用领域

音频放大器是在产生声音的输出元件上重建输入的音频信号的设备&#xff0c;其重建的信号音量和功率级都要理想&#xff1a;如实、有效且失真低。音频范围为约20Hz&#xff5e;20000Hz&#xff0c;因此放大器在此范围内必须有良好的频率响应&#xff08;驱动频带受限的扬声器时要…

STM32F1+HAL库+FreeTOTS学习1——FreeRTOS入门

STM32F1HAL库FreeTOTS学习1——FreeRTOS入门 裸机开发与操作系统嵌入式操作系统简介FreeRTOS简介FreeRTOS的几个重要概念任务调度器任务状态状态列表 裸机开发与操作系统 在以往的嵌入式学习中&#xff0c;我们最常用的就是裸机开发&#xff0c;所谓裸机开发就是指在没有操作系…

AI开发Windows环境搭建

文章目录 1. GPU 支持检查2. 安装 Anaconda3. 创建 PyTorch 虚拟环境3.2 创建虚拟 PyTorchEnv 环境3.3 检查、激活、推出虚拟环境3.4 虚拟环境中python包管理3.5 虚拟环境中安装 PyTorch 框架 4. TensorFlow 安装 1. GPU 支持检查 打开 Task Manager (任务管理器&#xff09;&…

使用VMware创建Ubuntu 24.04【一】

相关链接下载地址 VMware https://www.vmware.com/content/vmware/vmware-published-sites/cn/products/workstation-pro/workstation-pro-evaluation.html.html.html Ubuntu 24.04 LTS https://cn.ubuntu.com/download/desktop 虚拟机创建 1、打开VNware软件&#xff0c;点…

Qt小项目 | 实现迅雷设置界面

文章目录 一、手写代码实现迅雷设置界面 一、手写代码实现迅雷设置界面 使用Qt控件&#xff08;如&#xff1a;QListWidget与QScrollArea等&#xff09;与布局实现腾讯会议登陆界面。设置界面除基本设置界面外&#xff0c;其他界面都是以图片的形式嵌入到项目中并没有手写代码。…

Mac 如何安装 wget

1.安装 Homebrew2.安装 wget3.检测 wget 是否安装成功 1.安装 Homebrew 在安装 wget 之前需要安装一个适用于 mac 的包管理器 Homebrew&#xff0c;打开 mac 终端执行如下命令进行安装&#xff1a; /usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/h…

DDD学习笔记二

模型的要素——用例、视图和构造块 模型的构建步骤 1&#xff09;从用例场景开始&#xff0c;给模型输入概念、属性、术语。 2&#xff09;构建静态领域模型&#xff08;类图&#xff09;&#xff0c;发现领域概念和对象属性。 3&#xff09;构建动态领域模型&#xff08;时序图…