色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 光電顯示 > 設(shè)計(jì)應(yīng)用 > MSP430 電容觸摸轉(zhuǎn)輪和LED PWM 輸出設(shè)計(jì)

          MSP430 電容觸摸轉(zhuǎn)輪和LED PWM 輸出設(shè)計(jì)

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

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

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

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

          3.2 代碼設(shè)計(jì)

          3.2.1 LED驅(qū)動(dòng)

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

          • PWM 輸出占空比設(shè)置為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中斷間隔設(shè)為10ms,在TIMERB 中進(jìn)行LED 亮度等級的改變

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

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

          圖 7 TIMERB 流程圖

          圖 8 TIMERA0 流程圖

          3.2.2 轉(zhuǎn)輪

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

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

          在滑動(dòng)很快的操作時(shí)會(huì)帶來一個(gè)問題,電容按鍵掃描的周期跟不上滑動(dòng)的速度,導(dǎo)致坐標(biāo)的變化不是連續(xù)的,結(jié)果就是LED 的軌跡不連貫,在連續(xù)的N 個(gè)LED 中有部分沒有被點(diǎn)亮。為了解決這個(gè)問題需要在轉(zhuǎn)輪坐標(biāo)計(jì)算后加入一個(gè)插值算法,在用戶操作過快的時(shí)候?qū)Ρ宦┑舻淖鴺?biāo)進(jìn)行補(bǔ)值,使得LED 的軌跡連續(xù)。

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

          if((WheelPosition-LastPosition)

          {

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

          {

          SetLightLevel(LastPosition+j);

          }

          }

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

          4. 總結(jié)

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


          上一頁 1 2 下一頁

          關(guān)鍵詞: LED

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉