利用電位計替代旋轉開關設計方案-技術方案_第1頁
利用電位計替代旋轉開關設計方案-技術方案_第2頁
利用電位計替代旋轉開關設計方案-技術方案_第3頁
利用電位計替代旋轉開關設計方案-技術方案_第4頁
利用電位計替代旋轉開關設計方案-技術方案_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

精品文檔-下載后可編輯利用電位計替代旋轉開關設計方案-技術方案有時,基于微控制器的產品需要使用旋轉開關。由于很多微控制器都內置了ADC,在找不到旋轉開關或旋轉開關價格過高時,可以使用低成本電位計來替代旋轉開關(圖1)。

盡管僅需執(zhí)行少量指令即可將電位計設定值數(shù)字化,使其表現(xiàn)得像開關一樣,但一個急需解決的問題是,在電氣噪聲或機械噪聲的影響下,在某一個值和下一個值之間的切換閾值處,數(shù)值會不穩(wěn)定。該問題的解決方法是為每次轉換引入上、下兩個遲滯閾值,這樣一來,電位計就需要在另一個開關狀態(tài)有效前越過閾值。針對每次更新的開關狀態(tài),都會有新的一對閾值替換之前的閾值。如此,遲滯效應可以實現(xiàn)各狀態(tài)間的完全切換。

圖1:替代多擲開關

這一方法具有下述諸多優(yōu)勢:單端口引腳對旋轉開關的多端口引腳、成本低、更易獲得且可實現(xiàn)去抖動切換。該方法的不足之處在于會失去制動感。設定點的另一特性是其可設置在任一位置,例如用以補償電位計在響應過程中出現(xiàn)的非線性變化。

遲滯通常稍高于會導致不期望切換的任何噪聲。建議在電位計觸點與地之間設置一個電容器,以濾除觸點噪聲(圖1)。

圖2列出了算法。一旦用ADC對電位計設定值進行了數(shù)字化操作,該數(shù)值就將與下閾值比較,若低于下閾值,開關狀態(tài)會逐漸降低并限制至零。若電位計設定值高于上閾值,開關狀態(tài)會逐漸增大并限制至值。若開關狀態(tài)發(fā)生變化,則上、下閾值會進行更新,并終止子程序。

圖2:流程圖

為確保該遲滯算法起作用,必須定期讀取電位計設定值,并與上開關狀態(tài)進行比較。這樣做旨在將從不同狀態(tài)跨過閾值或處于相同值的電位計設定值與相同狀態(tài)區(qū)分開。

此處還需要計算出采樣率的值,可由電位計旋轉率值除以開關狀態(tài)數(shù)得到。例如,假設單匝電位計旋鈕在0.25s內完整旋轉一圈,同時假定有七種狀態(tài),那么掃描率為28Hz.若電位計數(shù)值采樣周期低于值,即使切換方向正確,計算得出的開關狀態(tài)也可能不正確。倘若未以較快的速率持續(xù)改變電位計設定值,則隨后的采樣會對切換狀態(tài)進行校正。

以七種開關狀態(tài)為例創(chuàng)建一個閾值列表。假設有一個8位ADC。首先,ADC的256步范圍被分割為七種開關狀態(tài)。各開關狀態(tài)的寬度為ADC范圍除以狀態(tài)數(shù),即:256/7=36.6.對其四舍五入,將各狀態(tài)的寬度定為36,但是兩個外端狀態(tài)需增加至38,以使總寬度為256。

下一步是確定各開關狀態(tài)的邊界。對于狀態(tài)0,邊界為0~37(包含兩端)。狀態(tài)1從38開始到73結束,其余開關狀態(tài)依此類推。根據(jù)增加或降低至邊界的遲滯數(shù)值確定閾值。此處使用4這一遲滯值。遲滯量既不得大于寬度,也不得低于預期的噪聲。因此,上邊界加4即可得出上閾值,下邊界減4即可得出下閾值,如表1所示。從該例可發(fā)現(xiàn),從狀態(tài)2切換為狀態(tài)1需要使電位計數(shù)值下降至比切換點數(shù)值74小4,因此下閾值為70。相反,從狀態(tài)1切換為狀態(tài)2需要使電位計數(shù)值上升至比切換點數(shù)值73高4,因此上限閾值為77。用于程序代碼的表格僅需標明上、下閾值,在此例中僅需14個字節(jié)。

表1閾值

代碼示例(見下)支持SiliconLabs的C8051F310(8051架構),但也可以很容易地改編用于其他微控制器。

;POT2SWINITIALIZATION

MOVUPRVAL,#00H;setuppervaluetooppositeendtoforcethecodetorun

MOVLWRVAL,#0FFH;setlowervaluetooppositeendtoforcethecodetorun

MOVSWPOS,#03H;initializeswitchpositiontomiddle

MOVPOSMAX,#06H;setmaximumswitchpositionvalue

;SUBROUTINES

POT2SW:;CALCULATESWITCHPOSITIONVALUEFROMPOTENTIOMETERVALUEINACC

;checkifpotsettingisbelowlowerthreshold

CLRC

MOVB,A;savepotsettingtoregisterB

SUBBA,LWRVAL;potval-lwrval

JNCP2S1;nocarrymeanspotval=lwrval

DECSWPOS;carrymeanspotvallwrval,sodecrementswitchpositionvalue

;checkifswitchpositioniszero

MOVA,POSMAX;loadmaximumswitchpositionvalue

CLRC

SUBBA,SWPOS;maxswitchvalue-switchposition

JNCP2S2

MOVSWPOS,#00H;resetswitchpositionvaluetozerosinceunderflow

SJMPP2S2

P2S1:;checkifpotsettingisaboveuppertheshold

CLRC

MOVA,UPRVAL

SUBBA,B;uprval-potval

JNCP2S2;nocarrymeanspotval=uprval

INCSWPOS;carrymeanspotvaluprval,soincrementswitchpositionvalue

;checkifswitchpositionismax

MOVA,POSMAX;loadmaximumxwitchpositionvalue

CLRC

SUBBA,SWPOS

JNCP2S2

MOVSWPOS,POSMAX;resetcurvenumbertomaxcurvevaluesinceoverflow

P2S2:;readlowerandupperthresholdsusingswitchpositionvalue

MOVA,SWPOS;multiplyswitchpositionvalueby2

MOVB,#02H

MULAB

MOVB,A;savemultipliedvalueastableoffset

MOVDPTR,#HYSTBL;loadbaseaddressoftablepointer

MOVCA,@A+DPTR;lookuptablevaluefrombaseaddress+offset

MOVLWRVAL,A;readlowerthresholdvalue

MOVA,B

INCDPTR;incrementbaseaddress

MOVCA,@A+DPTR

MOVUPRVAL,A;readupperthresholdvalue

RET

HYSTBL:;TABLEOFLOWERUPPERTHRESHOLDSFORSEVENPOSITIONSWITCH

DB00D,41D;Switchstate0

DB34D,77D;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論