鉅大LARGE | 點擊量:729次 | 2019年11月19日
用一個微控制器輸入端讀取多個開關與一只電位計的設置
本例中的電路給出了一種方法,用一個輸入端,將混合的模擬與數字輸入傳送給一個微控制器。電路輸出被連接到一個微控制器的ADC輸入端。電路包括一個可變電阻和幾個SpST(單刀單擲)開關(圖1)。用戶可以用按鍵來選擇模式、狀態或選項,而模擬輸入提供了一種傳送可調節參數的方法。這個實現要求分析一個并行電阻電路和一個分壓器。如果仔細選擇了電阻值,則電路就能提供一個可識別的模擬輸入,以及一系列分立的按鍵輸入狀態。
圖1,本電路可用一只微控制器管腳,讀出多個開關和一只電位器的值。
電阻值的選擇是一個多步的過程,用一個電子表可幫助完成這個計算。例如,假設你想要用5kΩ的電位器RADJ,為微控制器產生一個0至100%的值。通常會將0至255的采樣值映像為0至100的值,用于表示某個百分數。不過,通過選擇偏置電阻RBIAS的值,可以將模擬輸入直接定位于ADC的0至255范圍內,如78至178。
要計算相應的高側和低側偏置電阻值,可用下式,將電路作為一個簡單分壓器作計算:
代入并算出RBIAS,當最大電壓值為255時,最大低電壓值為78,最大高電壓值為178,而RADJ的值為5kΩ時,則得下式:
計算得到RBIAS的值為3875Ω。電位器選用標準值3.3kΩ,則輸入范圍從73至182。這個范圍的動態范圍大于你的需求,但電位器值與按鍵值之間有了一個保護區。當按下開關時,RADJ的位置影響著電路看到的總電阻,因此微控制器必須為每個開關解析一系列值。為S1或S2確定開關電阻RSW時,可在電位器兩個端點位置上使用一個并聯電阻網絡。
當按下S1,而RADJ在最大位置時,分壓器下端的有效電阻為RADJ與RBIAS串聯后再與RSW并聯。在最小位置時,有效電阻為RSW與RBIAS并聯:
按下S1時,求出RBIAS與RRFFMAX構成的分壓器值,就確定了值:
注意,當RADJ在最大值并按下S1時,產生的值必須小于RADJ自身提供的最小值,這樣才能唯一地確定按下了哪個開關。因此最大有效電阻REFFMAX必須產生一個小于最大低電壓的值,如下式所示:
將開關電阻代入并解算式,得到:
用電子表格算出開關電阻,得1558Ω,可以選擇標稱為1.5kΩ的電阻。這樣,當按下開關S1時,根據電位器的位置可得到28至71的區間。同樣,為S2選擇相同的值可得到184至227的區間。這些區間可以用于確定所需按下開關的一系列值,而與電位器的位置無關。雖然沒有必要選擇相同的電阻,但這樣可以減少計算量,簡化設計。此外,選擇較小的串聯開關電阻可擴展它們與電位器之間的保護區,如果獲得的值之間過于靠近,這可能是可取的方法。微控制器使用一個小例程來確定開關的位置以及電位器的設置。
這種方法也有局限,那就是在任何時間時,不能按下一個以上的按鍵。而且,只有當你未按任何其它按鍵時,微控制器才能讀出電位器的位置。本例給出了如何用兩個按鍵,但按鍵的數量可以修改。輸入范圍可以多達10個按鍵和一只電位器,所有這些均可共享相同的輸入端(圖2)。盡管計算范圍并不重疊且是唯一的,但你的ADC能否在所有情況下都可靠地區分出這些區段,則是有問題的。選擇較小的電阻值可以使這些頻段相隔較遠,創建一個較大的保護區。
圖2,電路最多可以有10個按鍵和一只電位器。
用這一技巧加上四只按鍵與一只電位器,為最佳組合。用電子表作試驗,有助于快速地確定每個開關的正確串聯電阻值,以及其輸出范圍。
上一篇:具有可變ESR響應的電池模擬器
下一篇:3C認證中電磁兼容整改有效性