【Linux開發】電容屏原理

1、表面電容式觸摸屏

參考視頻:https://www.bilibili.com/video/av25429352,感謝李永樂老師通俗易懂的科普。

表面式電容屏有個氧化銦錫ITO)層(透明的導體層),該層有4個電極(在長方形的四個角),每個電極可以產生交流電壓,ITO層的上一層是一個(透明的)絕緣層,(手指)觸摸位置會和觸摸屏的ITO層之間形成一個電容器,由於有交流電壓加在電容屏的ITO層上,因此會有電路流過手指(交流電可以通過電容器,這個電流非常微弱,察覺不到對人體也無傷害),觸摸屏控制芯片通過對4個電極的流失電荷的測量,可以計算按壓位置到電極的距離,因此可以推算出手指按壓的位置。

以下爲猜想)另外,電容屏流入手指的電荷會被存儲在人體上(人體可以存儲一定量的電荷,這就是冬天經常被靜電電到的原因),人體上過多的電荷可能會流入到空氣中以及大地中去,這樣一來,手指一直按壓在電容屏上的話,會一直有電荷流入手指,這樣就能實現手指保持觸控狀態。

 

2、投射式電容觸摸屏

現在的手機、Pad、液晶顯示器等都是使用投射式電容觸摸屏。投射式電容觸摸屏的原理和表面電容式觸摸屏的大致原理其實是一樣的,都是利用人體和觸摸屏的導體層之間形成電容效應來進行觸摸檢測,但是實現方式不一樣,投射式電容觸摸屏的實現更加複雜,但是也可以實現更好的觸摸體驗,可以實現多點觸摸檢測。

投射式電容觸摸屏原理參考文章:https://wenku.baidu.com/view/0bb031ebd15abe23482f4d61.html

 

3、測試電容觸摸屏

用手指進行觸控測試......沒那麼傻瓜,並不是所有時候都是用手指觸摸屏幕,例如有網友使用機械結構控制一個模擬的手指觸摸屏幕玩Flabby Bird遊戲以及搶微信紅包,那麼這個模擬出來的手指是怎麼實現的呢?

想要在電容觸摸屏上實現觸摸效果,首先要有一個導體在觸摸屏上,並且這個導體有一定的面積,因爲電容器的容值和兩個導體之間的距離、導體間的有效面積以及兩個導體之間的絕緣體的電導率這三個參數有關,這三個參數中只有導體間的有效面積容易控制。我們使用手指按壓的時候,手指上的肉是軟的,會形成一個較大的接觸面,這樣就可以形成一個容值較大的電容,這樣容易被檢測到。但是我們如果使用一個鐵針戳觸摸屏的話,是沒反應的。

其次,觸摸的物體需要有一定的“電荷容納能力”以及“電荷泄放能力”,這兩個是我自己“瞎”創造的詞。“電荷容納能力”是指物體可以存儲一定量的電荷,相同材質的物體,通常是體積越大能存儲的電荷就越多,因爲相同電荷量的情況下,體積越小的物體,電荷密度越高,電荷之間的庫侖力會更大,更容易飽和,導致無法繼續存儲電荷。例如人體是可以存儲一定的電荷的,而且這個存儲量遠大於電容屏的放出的電荷量,其實原理上是人體和大地之間形成了一個電容器,人體帶 n 庫倫的負電荷的話,大地就會感應出 n 庫倫的正電荷,但是由於大地太大,所以人體的這一點電荷不影響大地的電極性,依然是中性。再比如雲朵也是可以存儲電荷的,而且可以存儲庫倫量級的電荷,當存儲的電荷太多而飽和時,或者有一個擁有異性電極性的雲朵靠近時,就會發生閃電打雷的現象,前者是和大地之間的放電,後再是雲層之間的放電。“電荷泄放能力”是指人體(或者物體)在存儲了電荷(呈非中性)之後,會通過腳底和大地的接觸、皮膚和空氣的接觸等方式將身上多餘的電荷散發出去的能力,以防止發生電荷“飽和”現象,說白了,其實就是人體與大地之間的電阻,如果這個電阻無窮大,那麼光有電荷進來沒有電荷出去,人體的存儲的電荷容易飽和,可以想象,如果光有電荷進入人體而長時間不釋放,那容易“閃電”了。

需要補充一點,手機的電容觸摸屏向外放出電荷的時候,爲了保持手機的電中性,也會從外接獲取同樣多的極性相同的電荷,而且手機使用的化學電池也不支持只放出電子不接收電子,因此如果手機本身很難獲取到電荷也會影響觸摸屏向外發送電荷(手機釋放電荷後會慢慢飽和無法繼續釋放),導致觸摸變得不靈敏。手持手機操作的時候,電荷流動過程很可能就是從手指流入人體,再從握着手機的手上回到手機上去,沒有手持手機的時候,電荷流入人體,可能存儲在人體上,也可能會從人體流入到大地或者空氣,然後手機又從空氣或者大地吸收到電荷,與人體形成一個間接的電路循環。所以,將手機放在一個十分乾燥的地方,且手機和外界的接觸絕緣性很好,在不手持手機的情況下,觸摸屏會變得不靈敏,但是將手機放在一塊貼片上或者手持着手機的時候,觸摸屏又會變正常。

基於上面的假設,我用煙盒裏面的鋁箔紙多次摺疊之後做了一個小墊子,這個鋁箔紙是軟的,在屏幕上容易獲得較大的接觸面積(我試過銅箔紙,不好使,銅的硬度可能比較大):

手機上安裝一個觸摸屏測試軟件:MultiTouchTest,打開測試軟件,然後將這個墊子放在手機上,用一根絕緣筆稍稍用力按壓墊子,手機上沒有反應,但是手指按壓這個墊子上,就有觸摸點了。說明了這個墊子的接觸面積是夠了,但是沒有足夠的“電荷容納能力”以及“電荷泄放能力”,使用手指按壓在上面之後,這個墊子才能夠有足夠的能力被觸摸屏識別到。

那麼怎麼做到不使用手指按壓使得墊子也能夠被觸摸屏識別到呢?問題集中在要讓墊子擁有足夠的“電荷容納能力”以及“電荷泄放能力”,我嘗試着在墊子上接了一根長導線,這樣墊子能夠存儲相對較多的電荷同時和空氣有較大的接觸面積,繼續用絕緣筆輕壓墊子(注意不要使用手抓着導線,因爲交流電可以通過導線的絕緣層),果然可以,觸摸屏可以識別到這個墊子了:

 

但是遇到一個小問題,墊子被識別到的同時,如果手指按壓在屏幕上,會導致墊子的識別點會很容易丟失,用絕緣筆用力按壓墊子之後,識別點不會那麼容易丟失。關於這點,我有個解釋,就是墊子加上導線所產生的電容太小,在觸摸上產生的信號較爲微弱,在沒有手指按壓的時候,該微弱的信號會被認作是觸摸,但是當手指按壓在觸摸屏上的時候,產生的信號強度遠大於墊子產生的信號,這時候觸摸芯片會以手機按壓產生的信號作爲觸摸點的掃描基準,因此將墊子產生的微弱信號過濾掉了(將其視作是干擾信號),所以出現了手指按壓時墊子的觸摸點丟失現象。爲了驗證我的想法,我將接在墊子上的導線的另一端接到一個很大的金屬桌子上,桌子和大地的接觸也不錯,這時候繼續測試,發現手指不會再幹擾墊子的信號了,說明墊子產生的信號足夠大了,不會被過濾掉。

使用長導線並接地的方式好像不是很方便,我又做了一個實驗,使用一根短導線(短導線不足以讓墊子被識別),並將導線接到一杯鹽水中,鹽水中有氯離子和納離子,導電性很好,而且液麪和空氣的接觸也不錯,至於鹽水存儲電荷的能力不得而知。實驗結果很好,信號強度也不錯,不會被手指干擾。

 

 

下面希望能夠使用導電膠之類的材料進行測試,並做一些有意思的玩具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章