<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 電容觸摸轉輪和LED PWM 輸出設計

MSP430 電容觸摸轉輪和LED PWM 輸出設計

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

本文引用地址:http://dyxdggzs.com/article/201808/386752.htm

驅動(dòng)部分電路如圖 5, 由于每一個(gè) 的電流在10mA 左右,24 個(gè) 如果同時(shí)亮就有240mA,無(wú)法通過(guò)MCU IO 口直接驅動(dòng),在每個(gè)LED 上加一個(gè)三極管以及限流電阻,實(shí)現24路LED 的控制。

圖 6 LED 驅動(dòng)電路

3.2 代碼設計

3.2.1 LED驅動(dòng)

在編寫(xiě)代碼控制LED 點(diǎn)亮時(shí)序前,先定義好PWM 輸出相關(guān)的規格:

• PWM 輸出占空比設置為50%。

• 頻率為5K Hz, 亮度的等級分為24 級,0 級的時(shí)候關(guān)閉LED, 23 的時(shí)候最亮。

• 使用2個(gè)TIMER 進(jìn)行PWM 輸出的控制

• TIMERA0 中斷頻率為24 X 5K Hz = 120K Hz.

• TIMERB中斷間隔設為10ms,在TIMERB 中進(jìn)行LED 亮度等級的改變

通過(guò)兩個(gè)TIMER 的中斷配合,就可以完成24 路獨立PWM 輸出的控制。當有觸摸事件產(chǎn)生時(shí),根據觸摸位置對對應的LED 進(jìn)行亮度等級賦值,然后在TIMERB 的中斷中讓亮度等級慢慢減少至零,這樣就可以實(shí)現手指離開(kāi)電極后,對應LED 慢慢變暗的效果。

在兩個(gè)TIMER 中斷里的程序流程圖如下圖 7 和圖 8

圖 7 TIMERB 流程圖

圖 8 TIMERA0 流程圖

3.2.2 轉輪

德州儀器的電容觸摸軟件庫支持電容按鍵的信號檢測以及轉輪坐標的計算,通過(guò)軟件庫相關(guān)參數的配置以及函數的調用就可以得到當前觸摸事件的位置值,可以參考德州儀器的觸摸按鍵軟件庫(www.ti.com/capacitivetouch)獲得詳細介紹。

當用戶(hù)在轉輪上做滑動(dòng)操作,LED 的軌跡顯示應該是N 個(gè)燈同時(shí)被點(diǎn)亮,手指所在位置的燈最亮,之前滑過(guò)的軌跡上的燈一個(gè)比一個(gè)暗,N 的數值由操作者滑動(dòng)的速度決定,如果滑的速度夠快,24 個(gè)LED 燈會(huì )同時(shí)被點(diǎn)亮,只是亮度不同。

在滑動(dòng)很快的操作時(shí)會(huì )帶來(lái)一個(gè)問(wèn)題,電容按鍵掃描的周期跟不上滑動(dòng)的速度,導致坐標的變化不是連續的,結果就是LED 的軌跡不連貫,在連續的N 個(gè)LED 中有部分沒(méi)有被點(diǎn)亮。為了解決這個(gè)問(wèn)題需要在轉輪坐標計算后加入一個(gè)插值算法,在用戶(hù)操作過(guò)快的時(shí)候對被漏掉的坐標進(jìn)行補值,使得LED 的軌跡連續。

插值的方法可以通過(guò)當前位置和上一次位置的比較,決定是否要進(jìn)行插值,這里需要設置一個(gè)插值門(mén)限InterpolationThreshold,當位置跳動(dòng)距離超過(guò)門(mén)限就不進(jìn)行插值,反正誤操作產(chǎn)生。

if((WheelPosition-LastPosition)

{

for (j=1;j=(WheelPosition-LastPosition+1);j++)

{

SetLightLevel(LastPosition+j);

}

}

除此之外,還需要對兩個(gè)特殊情況做處理,及正向和反向滑動(dòng)操作經(jīng)過(guò)轉輪坐標0 點(diǎn)。

4. 總結

本文介紹了使用MSP430G 系列單芯片實(shí)現電容觸摸轉輪和24 路獨立PWM 輸出LED 控制方案,在一些需要低成本的產(chǎn)品設計,又要對多種LED 特效控制的場(chǎng)合,有很大的使用價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: LED

評論


相關(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>