<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > MSP430電容觸摸轉輪

MSP430電容觸摸轉輪

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要

本文引用地址:http://dyxdggzs.com/article/201609/303345.htm

本應用文檔介紹了使用微控制器實(shí)現和多路獨立LED的PWM軟件驅動(dòng)技術(shù)。方案通過(guò)4路I/O 端口實(shí)現控制,I/O端口配合三極管驅動(dòng)LED,實(shí)現LED呼吸、軌跡燈等效果。本方案為需要控制和LED跟蹤顯示等絢麗燈效的產(chǎn)品提供了有效的低成本方案。

簡(jiǎn)介

電容觸摸技術(shù)作為一種實(shí)用、時(shí)尚的人機交互方式,已經(jīng)被廣泛的應用到各種電子產(chǎn)品,小到電燈開(kāi)關(guān),大到平板電腦、觸摸桌等。隨之而來(lái)的是考驗產(chǎn)品設計者如何發(fā)揮智慧,在把產(chǎn)品用戶(hù)界面設計得方便簡(jiǎn)潔的同時(shí),又能呈現產(chǎn)品絢麗的外觀(guān),從而帶來(lái)良好的用戶(hù)體驗。

LED顯示由于界面友好,可以實(shí)時(shí)反映觸摸的位置信息,在電容觸摸產(chǎn)品設計中得到廣泛應用。本設計正是利用了大量的LED來(lái)實(shí)現呼吸燈、軌跡燈的特效,可以為例如燈光、音量、溫度等帶有調節功能的產(chǎn)品提供設計參考。

德州儀器的系列單片機以低功耗和外設模塊的豐富性而著(zhù)稱(chēng),而針對電容觸摸應用,的PIN RO電容觸摸檢測方式支持IO口直接連接檢測電極,不需要任何外圍器件,極大的簡(jiǎn)化了電路設計,而本設計文檔中使用的MSP430G2XX5更支持多達 32個(gè)IO口,可驅動(dòng)24個(gè)以上的LED燈,達到理想的顯示效果。

1.電容觸摸轉輪實(shí)現方案

MSP430電容觸摸轉輪方案通過(guò)4個(gè)IO口完成4個(gè)通道的電容檢測,配合特殊的電極圖形,就可實(shí)現轉輪的設計。

1.1 電容觸摸實(shí)現原理

MSP430根據型號的不同支持多種電容觸摸檢測方式,有RC震蕩、比較器、PIN RO, 本設計使用的是PIN Relaxation Oscillator方式,原理如圖1,芯片管腳內部檢測電路由施密特觸發(fā)器、反向器,以及一個(gè)電阻組成,震蕩信號經(jīng)過(guò)施密特觸發(fā)器變成脈沖信號,再通過(guò)反向器反饋回RC電路,通過(guò)Timer_A對施密特觸發(fā)器的輸出進(jìn)行記數,再通過(guò)設置測量窗口Gate獲得記數的結果。當手指觸摸電極,電極上的C產(chǎn)生變化,導致震蕩頻率改變,這樣在定長(cháng)的測量窗口就能獲得不同的記數結果,一旦差值超過(guò)門(mén)限,結合一定的濾波算法判斷就可以觸發(fā)觸摸事件。

圖1 PIN RO原理圖

1.2 轉輪算法

將4個(gè)按鍵電極按照圖2鋸齒狀交叉就形成了一個(gè)轉輪的電極,轉輪的大小根據產(chǎn)品設計的需要可進(jìn)行適當的縮放,圖2的圖形設計適合30mm左右直徑的轉輪。

圖2 轉輪電極設計

當用戶(hù)在轉輪上操作的時(shí)候,在手指對應位置的電極會(huì )獲得最高的信號值,手指臨近的通道會(huì )有相對高的信號值,離手指最遠的通道檢測到的信號值最小,如圖3所示:

圖3 手指觸摸時(shí)不同電極上測量到的信號值

這時(shí)可以利用不同通道上信號值的不同計算出手指在轉輪或滑條上的位置。位置計算步驟如下:

a.用排序方法找出4 個(gè)電極中信號最大的電極

index = Dominant_Element(groupOfElements, measCnt[0]);

b.將找到的這個(gè)電極的信號加上相鄰電極的信號

position = measCnt[index] + measCnt[index+1] + measCnt[index-1];

相加后的結果如果大于門(mén)限,就認為有觸摸事件產(chǎn)生,繼續后續的位置計算。 把前后信號相加的原因是手指在操作的過(guò)程中有可能處于兩個(gè)電極中間,這樣兩個(gè)電極上得到的信號都不會(huì )很高,需要把信號相加才可以與門(mén)限做比較。

c.計算位置坐標時(shí)先根據篩選出的index 值得到一個(gè)大約的位置,再根據index 的相鄰電極信號強度進(jìn)行修正,得到最后的坐標值

position = index*(groupOfElements-》points/groupOfElements-》numElements);

position += (groupOfElements-》points/groupOfElements-》numElements)/2;

position += (measCnt[index+1]*(groupOfElements-》points/groupOfElements-》numElements))/100;

position -= (measCnt[index-1]*(groupOfElements-》points/groupOfElements-》numElements))/100;

d.針對index為0或者3的情況代碼需要另外處理,不過(guò)計算方法和上述是一致的。

這里轉輪的分辨率,即轉輪一圈分為多少個(gè)段是根據points設定的,假設用戶(hù)只需要區分24個(gè)位置,就可以設points為24,當然也可以設為 64,128,甚至更高,這取決于轉輪的大小,電極圖形的設計以及電極的多少,例如需要類(lèi)似1024這種高精度,需要增加電極數從4個(gè)到8個(gè)或者更多。



關(guān)鍵詞: MSP430 電容觸摸 轉輪

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>