電量檢測思想之軟體施密特觸發器

2021-08-08 10:34:54 字數 1244 閱讀 4393

問題**?

很多搞電子的朋友在做專案的時候基本上都會遇到用mcu的adc採集電壓來監視電量使用情況。作為一種粗略的電量檢測方法在很多電子裝置上用得很廣泛,尤其是需要顯示類似電池圖示的方法來顯示電量。我們都知道通過檢測電壓的方法來監視電量只能大概知道使用的乙個範圍,而且電壓一般隨時會有小幅波動。這裡舉個例子,假設我們要顯示四格電池的圖示。電壓區間範圍設定為小於a裝置關機,a-b電池顯示空,b-c電池顯示一格,c-d電池顯示兩格,d-e電池顯示三格,大於e電池顯示4格(即滿格)。現在會遇到這種麻煩,假設某一時刻採集到的電壓剛好使圖示顯示三格(即電壓值為d),我們知道電壓隨時是有小幅波動的,在這種情況下電壓值可能會在d的附近來回跳動,導致的結果是電池圖示一會兒顯示兩格,一會兒顯示三格。那麼如何解決這個問題呢?這時候就要用到施密特觸發器的思想i

什麼叫施密特觸發器?

閘電路有乙個閾值電壓,當輸入電壓從低電平上公升到閾值電壓或從高電平下降到閾值電壓時電路的狀態將發生變化。施密特觸發器是一種特殊的閘電路,

與普通的閘電路不同,施密特觸發器有兩個閾值電壓,分別稱為正向閾值電壓和負向閾值電壓。在輸入訊號從低電平上公升到高電平的過程中使電路狀態發

生變化的輸入電壓稱為正向閾值電壓,在輸入訊號從高電平下降到低電平的過程中使電路狀態發生變化的輸入電壓稱為負向閾值電壓。正向閾值電壓與負向閾值電壓之差稱為回差電壓。

它是一種閾值開關電路,具有突變輸入——輸出特性的閘電路。這種電路被設計成阻止輸入電壓出現微小變化(低於某一閾值)而引起的輸出電壓的改變。

何謂軟體施密特觸發器?

軟體施密特觸發器就是利用上面所說的施密特觸發器原理。這裡我直接寫一段**來說明問題。

unsigned char level = 0; //表示電壓檔位

unsigned int read_adc = 0;

read_adc = function_get_adc(); //經過多次取樣去最大最小取平均值

if(level == 0)}

if(level == 1)else if(read_adc < b - 2)}

if(level == 2)else if(read_adc < c - 2)}

if(level == 3)else if(read_adc < d - 2)}

if(level == 4)}

這裡的「b+2」和「b-2」(以b為例)就是上面所說的回差。

希望對用到這方面內容的朋友有所幫助,如有不對之處煩請指正,謝謝大家!

施密特觸發器

最近由於貼片機專案裡面的相機觸發電路輸出的脈衝波形雜訊很大,脈衝的上公升沿和下降沿變化緩慢,因此使用了施密特觸發器對運動控制卡發出來的觸發脈衝整形,所以也順便把施密特觸發器的原理 使用方法和應用場合也寫下,以便以後使用。施密特觸發器也有兩個穩定狀態,但與一般觸發器不同的是,施密特觸發器採用電位觸發方...

軟體實現的施密特觸發器

在一些智慧型充電器中,微控制器要一直監測電池的電壓,一旦超過某一數值,就由恆流充電切換到恆壓充電。撇開充電器製作相關的各種知識和概念不說我們集中注意力來考察 當電壓接近那個設定的臨界值時發生的一些事情。當電壓接近臨界值的時候,系統還處於恆流充電狀態,於是電壓開始朝突破臨界值的方向上公升 在某一時刻,...

軟體實現的施密特觸發器

在一些智慧型充電器中,微控制器要一直監測電池的電壓,一旦超過某一數值,就由恆流充電切換到恆壓充電。撇開充電器製作相關的各種知識和概念不說我們集中注意力來考察 當電壓接近那個設定的臨界值時發生的一些事情。當電壓接近臨界值的時候,系統還處於恆流充電狀態,於是電壓開始朝突破臨界值的方向上公升 在某一時刻,...