STM32采集电阻触摸贴膜
今天为了解决一个测量电阻屏压力的问题,自己直接用STM32做了一个测量电阻屏的程序(直接把触摸屏的四根线接到单片机引脚上),通过AD切换采集,采集X轴电压,Y轴电压,和压力..最后附上自己的程序


先说一下电阻屏的原理

两层膜

上下的线(电阻)是呈 十 字交叉

现在按下以后测量X轴
X+ 接VCC X-接GND Y-不接,测Y+的电压
相当于

按下的位置越靠近X+

测得的电压越高
同理越原理X+测得的电压越低
对了

测量得电压不受YR-和YR+的影响,因为测量时YR-那端是浮空,YR+检测电压那端的检测电压电路没有寄生电压影响
现在测量Y轴
就是Y+接VCC ,Y-接GND,,X-悬空,测量X+的电压


测得的Y轴电压越高
电阻屏还有一点是可以测量压力,,,自己也是为了测量这个压力而自己写的,,,一开始以为是触摸芯片内部的寄生电阻太大才引起的测量压力很不准确,自己用32做了以后才发现问题..变量问题....
自己参考的这篇文章
https://wenku.baidu.com/view/2bcc7eb569dc5022aaea003e.html

我这里就说一种,其实明白了一种另一种自然明白....

如果再知道流过Rtouch的电流 I
那么电阻Rtouch = (V1 - V2)/I 假设电流是从V1流向V2哈...
先看怎么得到V1和V2
先得到V1

而这个R在测量X轴的时候是可以得到的

所以流过Touch的电流值就是
V1/R = V1 /(得到的X轴的电压值/4095*(X+和X-之间的电压值))
然后切换一下(就是说手在按着的时候电路在做切换测量)
再得到V2

那么Touch的电阻值就是
(V2-V1) / (V1/R) =(V2-V1) / (V1 /(得到的X轴的电压值/(4095*(X+和X-之间的电压值))))
得到的X轴的电压值设为 X
X+和X-之间的电阻设为 R总
Touch电阻值 = (V2-V1)/(V1/(X/(4095*R总)) = (V2-V1)*4095*R总/V1
=V2*4095*R总/V1 - 44095*R总
= 4095*R总*(V2/V1 - 1)
应该是4096....
竟然有点高中的感觉了............
感觉写的有点乱...................一开始就应该把那些参数用变量规定好....不应该用汉字表达
我的程序
触摸屏引脚 单片机引脚
X+ PA1
X- PB0
Y+ PA2
Y- PA3
程序就是按照原理来测量的,没用DMA多路AD采集,,因为弄了好长时间发现靠近的两个AD总是受到影响..弄得自己很郁闷
期待我同学小于的DMA多路采集AD的程序,,,,,....

程序是在环形队列那个代码上添加的....
链接:http://pan.baidu.com/s/1gfN2hfd 密码:yifn
STM32采集电阻触摸贴膜的更多相关文章
- 【STM32H7教程】第54章 STM32H7的LTDC应用之LCD电阻触摸和电容触摸
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第54章 STM32H7的LTDC应用之LCD电阻 ...
- andoid电阻触摸移植
这里我使用的是210的开发板 系统Android4.0.4 内核linux3.0.8 要用电阻屏一般都是使用tslib进行校准的 这里给个我在android上用的tslib 下载地址 http://d ...
- STM32采集AD的输入阻抗问题
在做一款消费电子产品时,需要采集电池电压(3.3V-4.2V),同时在休眠的时候希望尽量减小待机电流.电池电压采集电路采用两个1%的300K电阻进行分压,由该电路引起的待机电路为4.2/(300+30 ...
- S5PV210的电阻触摸屏&ADC控制器
一.ADC与触摸屏控制器结构框图 1.S5PV210一共支持10路模拟输入,分别为AIN0-AIN9.其中AIN0和AIN1是只做模拟输入的,AIN2-AIN9分别可以支持2个电阻式触摸屏,所以这个就 ...
- 1--STM32 ADC1与ADC2 16通道DMA采集笔记(原创)
最近在搞ADC,网上还是很多资源的,以下为参考链接:1.对STM32 ADC单次转换模式 连续转换模式 扫描模式的理解:https://www.cnblogs.com/zhanghankui/p/51 ...
- UWB DWM1000 开源项目框架 之 温度采集
在之前博文开源一套uwb 框架,后面几篇博文会基于这个开源框架进行简单开发. 让uwb使用者更清楚了解基于这个basecode 开发工作. 这里所做内容是,采集dwm1000 温度,并发送到另一个节点 ...
- PCB电路设计 altiumdesigner(项目软件总结)
1.Altium designer 10在PCB里面复制粘贴,比CAD里面多一个动作,就是点击ctrl+C后,要左键点一下复制基点,比如某根线端点或者焊盘,再粘贴,就是基于刚才点的那个为基点粘贴了.2 ...
- 【STM32H7教程】第51章 STM32H7的LTDC应用之LCD汉字显示和2D图形显示
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第51章 STM32H7的LTDC应用之LCD汉字 ...
- 基于pcDuino-V2的无线视频智能小车
这段时间抽空做了个智能视频小车.包含了pid电机控制.socket网络编程.多线程编程.epoll机制.gtk图形界面编程. 这是界面: 小车的底层是用的stm32f405系列的单片机+电机驱动做的一 ...
随机推荐
- iOS开发寻找最近公共view
新技能 #pragma mark --寻找最近公共view + (NSArray *)superViews:(UIView *)view{ if (view==nil) { return @[]; } ...
- 不可不知的 Android strings.xml 那些事
相信 strings.xml 已经是大家在 Android 开发中最熟悉的文件之一了,但其实它也有很多需要注意的地方和一些小技巧,知道了这些可以让你的 Android 应用更加规范易用,大家来看看吧. ...
- 静态数据的初始化(Chapter5.7.2)
先初始化主类中的静态数据,如果要用其他类来定义对象,则初始化对应的其他类. 实例化对象时,先初始化定义为static的数据,接着调用父类的构造函数(如果有父类),再初始化定义为非static的数据,最 ...
- CI Weekly #17 | flow.ci 支持 Java 构建以及 Docker/DevOps 实践分享
这周一,我们迫不及待写下了最新的 changelog -- 项目语言新增「Java」.创建 Java 项目工作流和其它语言项目配置很相似,flow.ci 提供了默认的 Java 项目构建流程模版,快去 ...
- ios 渐进淡出
在github上寻找的经典demo //以view为继承类 LazyFadeInView-master https://github.com/itouch2/LazyFadeInView //以Lab ...
- 卷积神经网络CNN公式推导走读
0有全连接网络,为什么还需要RNN 图像处理领域的特殊性, 全连接网络缺点: RNN解决办法: 1参数太多 ...
- 关于/var/run/docker.sock
译者按: 这篇博客介绍了什么是/var/run/docker.sock,以及如何使用/var/run/docker.sock与Docker守护进程通信,并且提供了两个简单的示例.理解这些,我们就可以运 ...
- JS里引用CSS属性时候的命名
如果JS代码中设置<p>元素的另一个CSS属性font-family.这个属性的获取方式与color属性略有不同,因为 font和family之间的连字符与JS中减法操作符相同,J ...
- 浅谈MVC页面之间参数传递
关于MVC页面之间的传值,有多种方式,下面,我们就Html.RenderAction 方式 和 Html.RenderPartial 方式 来给大家分享一下有什么不同. 一.Html.RenderAc ...
- MongoDB系列:把mongodb作为windows的服务来启动
1.首先切换到mongodb安装目录下的bin目录,在控制台直接运行以下命令 "C:\Program Files\MongoDB\Server\3.0\bin\mongod.exe" ...