公司的项目用电阻屏,触摸的时候发现获取的位置会漂,后来本身发现是因为压力的问题....若是亲们用电阻屏发现触摸的位置有问题,能够看一下这篇文章,,先测量触摸的压力,达到必定程度以后再获取坐标值,这样就不会漂了html
今天为了解决一个测量电阻屏压力的问题,本身直接用STM32作了一个测量电阻屏的程序(直接把触摸屏的四根线接到单片机引脚上),经过AD切换采集,采集X轴电压,Y轴电压,和压力..最后附上本身的程序spa
先说一下电阻屏的原理htm
两层膜blog
上下的线(电阻)是呈 十 字交叉队列
如今按下之后测量X轴 get
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