公司的項目用電阻屏,觸摸的時候發現獲取的位置會漂,後來本身發現是因爲壓力的問題....若是親們用電阻屏發現觸摸的位置有問題,能夠看一下這篇文章,,先測量觸摸的壓力,達到必定程度以後再獲取座標值,這樣就不會漂了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