超聲波相關 抗干擾

2021-09-25 14:04:20 字數 3352 閱讀 2043

用stm32微控制器成功驅動乙個超聲波模組後,接下來便有了疑問如何用stm32微控制器驅動多個超聲波模組呢?(驅動乙個超聲波模組可以參考:stm32驅動超聲波模組測距)

超聲波模組型號為hc-sr04,模組驅動方式選擇利用外部中斷的方式驅動(具體細節可參見上面鏈結)。

經過乙個下午的思考實驗發現了兩種驅動多個超聲波模組的方法:

分時測量

同時測量

1.分時測量:

通過類似於實現流水燈的方法,多個超聲波模組依次測量並將測量結果依次輸出。

優點:各個超聲波模組測量過程中不會出現相互干擾的情況。

缺點:整體測量周期長,資料取樣頻率比較低。

這裡有幾個問題點需要注意:

乙個超聲波模組需要在測量完成後再開始下乙個模組的測量

超聲波模組在測量的過程中有時會跳動明顯超出量程的值

在帶電拔掉超聲波模組可能出現程式異常

為解決上面幾個問題,需要根據超聲波模組的量程(2cm-400cm)進行限輻,這裡我根據需要將超聲波模組的最遠距離設定為255cm。這樣最遠距離的測量時間為15ms(255cm x 2 / 100 / 340m/s * 1000 = 15ms),這樣便可以將定時器計時超過15ms時直接按15ms計算。這樣便基本可以解決上面的問題1和問題2,乙個模組測量完成的時間不會超過15ms(實際預留時間時建議在此基礎上多幾毫秒),這樣每過乙個15ms便可以完成乙個模組的測距。問題3可以通過每次測量開始前將超聲波資料的初始值初始化為量程的最小值2cm,並將超聲波模組的echo引腳設為低電平來解決(在上電狀態下拔掉超聲波模組,echo引腳會呈現高電平狀態導致一直進外部中斷)。這樣如果串列埠上位機距離值一直列印為2cm便很明顯知道該超聲波模組沒有接。

2.同時測量:

建立乙個系統時鐘,每乙個超聲波模組在測量過程中只記錄時間戳,不直接占用定時器,這樣便可以實現多個超聲波模組同時測量。

優點:整體測量周期短,資料取樣頻率高。

缺點:各個超聲波模組在測量過程中可能出現相互干擾情況。

使用建議:將各個模組盡量大角度朝不同的方向。

同步多個超聲波感測器

超聲波感測器是用於物體檢測或物位測量的非接觸式裝置。它們的工作原理是聲音通過介質傳播,其中換能器以特定頻率發出聲波。基於反射聲脈衝到達換能器所花費的時間,感測器的內部邏輯確定物體是否在標稱感測範圍內並產生輸出訊號。

感測器發出的聲波遵循錐形圖案。如果相同換能器頻率的多個感測器彼此相鄰地操作,則乙個感測器的發射脈衝可以被另乙個感測器檢測為反射脈衝。根據應用程式的不同,此方案可能並不理想。同時發射相同頻率的超聲波的兩個換能器可以產生錯誤輸出。

為了防止這種干擾或串擾,簡單的佈線連線可以同步發射/接收時序模式。例如,uc2000-l2-i-v15超聲波感測器上的v15(5針公頭)聯結器具有一條專用線,專用於同步多個感測器。要手動同步多個uc2000-l2-i-v15感測器,只需將每個感測器的同步輸入線互連即可。

由於在連線同步線時自動設定定時,因此乙個換能器發出的超聲波不會被另乙個誤接收為接收波。即使多個感測器可以通過同步線互連,每個連線在一起的感測器仍然具有不同的輸出。使用同步線的唯一目的是交替每個感測器脈衝的定時。

注:當安裝超聲波感測器,它可能無法堅持的最小間隔距離。pepperl + fuchs提供具有同步輸入的模型。這可以防止感測器串擾,並可以減少最小間隔距離。

使用同步線的缺點是增加了物件移動的響應時間。由於多個超聲波感測器交替脈衝,每個感測器以串聯模式脈衝。隨著更多感測器連線在一起,輸出生成將需要更長時間,因為組中的每個感測器必須在下乙個感測器跟隨之前自行發射和接收。

對於某些應用,不能選擇佈線連線和順序選通模式。例如,在自動引導車輛(a**)的碰撞避免中,感測器僅需要檢測機械人前方是否存在物體。所有相同頻率的超聲波感測器可以間隔很遠,使得它們不會交叉通話,但是乙個感測器的發射脈衝可以被另乙個感測器檢測為反射脈衝,以可靠地檢測a**前面的當前物體。

可以使用介面在某些超聲波感測器上程式設計這些引數; 例如,某些軟體允許調整交替脈衝的定時。如果乙個陣列中的所有感測器安裝得太緊並且同時發生脈衝,則可能發生串擾。響應時間最短,但可以生成錯誤輸出。以順序模式對所有感測器進行程式設計大大增加了響應時間,因此通過介面進行程式設計可以允許陣列上的感測器組根據需要發射/接收。

例如,在陣列上訂購1-2-3-4-5-6的六個感測器可以分別以1-3-5和2-4-6的組脈衝,以顯著縮短響應時間,與脈衝序列相比1-2-3-4-5-6。

噹聲錐寬度較窄或感測器依靠彼此的輸出來調節定時時,一些超聲波感測器應用效果更好。引數調整取決於應用,具體時間是優化響應時間的關鍵。

儘管通過佈線連線或介面引數程式設計使兩個或更多個超聲波感測器同步,但配置中的每個感測器的輸出仍將彼此不同。兩種同步方法都有其優點和缺點,但同時使用多個超聲波感測器的關鍵是防止相同換能器頻率的感測器之間的干擾。

其中有乙個小插曲,就是當吧寫好的程式燒進去之後,執行時總是出現每次返回乙個同樣的比正常值小的多的資料,比如說0.034cm,這明顯是乙個錯誤的資料,但是剛開始的時候,不知道為什麼

總是這樣,多次復位從新上電總是這乙個資料。讓我很是苦惱。但是幸運的是,在這樣的情況中間,他又會有時出現一兩個正常的的資料,讓你有點摸不著頭腦。

上網查了一下才慢慢明白,這種現象叫做「餘震」,網上關於餘震的解釋大致有三種:

1、探頭的餘震。即使是分體式的,發射頭工作完後還會繼續震一會,這是物理效應,也就是餘震。這個餘震訊號也會向外傳播。如果你的設計是發射完畢後立刻切換為接收狀態(無盲區),那麼這個餘震波會通過殼體和周圍的空氣,直接到達接收頭、干擾了檢測(注:通常的測距設計裡,發射頭和接收頭的距離很近,在這麼短的距離裡超聲波的檢測角度是很大的,可達180度)。

2、殼體的餘震。就像敲鐘一樣,能量仍來自發射頭。發射結束後,殼體的餘震會直接傳導到接收頭,當然這個時間很短,但已形成了干擾。另外,在不同的環境溫度下,殼體的硬度和外形會有所變化,其餘震有時長、有時短、有時干擾大、有時干擾小,這是設計工業級產品時必須要考慮的問題。

3、電路串擾。超聲波發射時的瞬間電流很大,例如某種工業級連續測距產品瞬間電流會有15a,通常的產品也能達到1a,瞬間這麼大的電流會對電源有一定影響,並干擾接收電路。通過改善電源設計可以緩解這種情況,但在低成本設計中很難**。所以每次發射完畢,接收電路還需要一段時間穩定工作狀態。在此期間,其輸出的訊號很難使用。

消除上述現象的方法之一就是在檢測的時候多次迴圈檢測,取平均值,也就是加權平均濾波,乙個簡單的濾波處理。就是下面這一段:

u32 t = 0;

int i = 0;

float lengthtemp = 0;

float sum = 0;

while(i!=5)

lengthtemp = sum/5.0;

超聲波焊接

超聲波焊接 是熔接熟塑性塑料製品的高科技技術,各種熟塑性膠件均可使用超聲波熔接處理,而不需加溶劑 粘接劑或其他輔助品。其優點是增加多倍生產率 降低成本,提高產品質量。超聲波塑膠焊接原理是由發生器產生20khz 或15khz 的高壓 高頻訊號 通過換能系統,把訊號轉換為高頻機械振動,加於塑料製品工件上...

超聲波感測

超聲波感測技術應用在生產實踐的不同方面,而醫學應用是其 超聲波感測器 超聲波感測器 最主要的應用之一,下面以醫學為例子說明超聲波感測技術的應用。超聲波在醫學上的應用主要是診斷疾病,它已經成為了臨床醫學中不可缺少的診斷方法。超聲波診斷的優點是 對受檢者 苦 無損害 方法簡便 顯像清晰 診斷的準確率高等...

超聲波感測器 單介紹超聲波

超聲波是聲波的一部分,是人耳聽不見 頻率高於20khz的聲波,它和聲波有共同之處,即都是由物質振動而產生的,並且只能在介質中傳播 同時,它也廣泛地存在於自然界,許多動物都能發射和接收超聲波,其中以蝙蝠最為突出,它能利用微弱的超聲回波在黑暗中飛行並捕捉食物。但超聲還有它的特殊性質 如具有較高的頻率與較...