公司的項目用電阻屏,觸摸的時候發現獲取的位置會漂,后來自己發現是由於壓力的問題....如果親們用電阻屏發現觸摸的位置有問題,可以看一下這篇文章,,先測量觸摸的壓力,達到一定程度之后再獲取坐標值,這樣就不會漂了
今天為了解決一個測量電阻屏壓力的問題,自己直接用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