一、前言課題背景:
在日常生活和工業控制中,經常會需要進行位置監控和距離測量,可用的方法很多,有激光測距、雷達測距、超聲波測距。與微波雷達測距、激光測距相比,超聲波具有方向指向性強、能量消耗比較緩慢、在介質中的傳播距離比較遠等優點。但是,由于聲音的傳播速度和溫度有關,一般情況下,溫度每變化1℃,聲速會變化大約0. 61 m/s。因此,超聲波測距的精度受溫度影響比較大,要實現高精度的超聲波測距,須考慮溫度變化對聲速的影響,從而進行必要的補償。
國內外發展現狀:
近十年來,國內科研人員在超聲波回波信號處理方法、新型超聲波換能器研發、超聲波發射脈沖選取等方面進行了大量理論分析與研究,并針對超聲測距的常見影響因素提出溫度補償、接收回路串入自動增益調節環節等提高超聲波測距精度的措施。目前國產低功率超聲波探頭,一般不能用于探測15m以外的物體,美國AIRMAR公司生產的Airducer AR30超聲波傳感器的作用距離可達30m,但價格較高。隨著傳感器和單片機控制技術的不斷發展,非接觸式檢測技術已被廣泛應用于多個領域。
課題設計要求:
具體要求為:
1)利用超聲波傳感器實現非接觸式測距,并用溫度傳感器進行超聲波補償。要求學生在查閱各傳感器資料及其應用方法的基礎上,設計出硬件結構圖。
2)掌握根據硬件結構圖設計并繪制硬件電路圖,并搭建、安裝和制作硬件。
3)掌握利用各種儀器設備,如萬用表、示波器等,對硬件進行調試的基本方法
4)記錄實驗數據,采用數據處理方法和相關軟件對實驗數據進行處理并加以分析,與真實數據結果對比,得出有意義的結論。
二、整體方案設計系統方案結構框圖:
方案一:

系統工作原理和功能:
本系統工作時,由單片機提供 40 k Hz 的脈沖信號,經放大后通過超聲波發射器輸出。超聲波在空氣中傳播,在到達被測物體時被反射回來,由超聲波接收器接收。當超聲波接收器接收到反射波時,先經放大器放大,用鎖相環電路檢波處理后產生一個負跳變,在 INT0 產生一個中斷請求信號,單片機響應外部中斷請求,執行外部中斷服務程序。單片機在啟動發射電路時同時啟動單片機內部的定時器 T0,利用定時器記錄超聲波發射的時間和收到反射波的時間。在外部中斷程序中讀取時間差,計算距離。其中溫度補償環節為:溫度補償環節,設超聲波速度為v,往返時間為 t,溫度為 T,v = 331.5 + 0. 61T,距離為速度除以二可得。
方案二:
系統工作原理和功能:
接口向觸發引腳發送≥10 μs 的脈沖觸發信號,該模塊內部將發出 8 個 40 kHz 周期電平并檢測回波,一旦檢測到有回波信號,則 3 腳輸出回響信號,所測的距離與回響信號的脈沖寬度成正比,由此可通過發射信號到收到回響信號的時間間隔計算得到距離。
超聲波時序圖如下:

方案比較選擇:有系統總體框圖可以看出方案二的結構更為簡單,而且HC-SR04模塊將超聲波發射、接收電路集成在一起,使用方便,價格也便宜,所以選擇方案二。
三、傳感器工作原理
1)溫度傳感器DS18B20
DS18B20的引腳圖如右圖所示:其中UDD接電源,GND接地,I/O為數據輸入/輸出口。
DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數因分辨率不同而不同,且溫度轉換時的延時時間由2s減為750ms。 DS18B20測溫原理如圖所示。圖中低溫度系數晶振的振蕩頻率受溫度影響很小,用于產生固定頻率的脈沖信號送給計數器1。高溫度系數晶振隨溫度變化其振蕩率明顯改變,所產生的信號作為計數器2的脈沖輸入。計數器1和溫度寄存器被預置在-55℃所對應的一個基數值。計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當計數器1的預置值減到0時,溫度寄存器的值將加1,計數器1的預置將重新被裝入,計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。圖中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數器1的預置值。


HC-SR04模塊的引腳圖如圖所示:




VCC Trig Echo GND
Vcc、 Trig(控制端)、 Echo(接收端)、 Gnd,工作原理如下:
(1)采用IO 觸發測距,給至少10us 的高電平信號;
(2)模塊自動發送8 個40khz 的方波,自動檢測是否有信號返回;
(3)有信號返回,通過IO 輸出一高電平,高電平持續的時間就是
(4)超聲波從發射到返回的時間.測試距離=(高電平時間*聲速)/2;
四、硬件電路設計整體硬件設計原理圖如下圖所示:
1)溫度測量模塊

溫度測量選擇DS18B20,單片機口接 DS18B20 數據總線,控制 DS18B20 進行溫度轉換和傳輸數據,數據總線接10kΩ的上拉電阻,作用是使總線控制器在溫度轉換期間無需一直保持高電平。DS18B20 protel 硬件圖如右圖所示。
本次設計采用HC-SR04模塊,采用單片機IO 觸發測距,給至少10us 的高電平信號;模塊自動發送8 個40khz 的方波,自動檢測是否有信號返回;有信號返回,通過IO 輸出一高電平,高電平持續的時間就是超聲波從發射到返回的時間.測試距離=(高電平時間*聲速)/2;HC-SR04硬件protel圖如下圖所示:
本次顯示用到數碼管為共陰極數碼管,顯示內容為溫度值和檢測的距離值,單片機控制其段選碼和位選碼就能控制數碼管的點亮情況,同時本次試驗所用的數碼管的顯示方式為動態顯示。數碼管的protel硬件圖如下圖所示:
五、軟件設計及仿真調試
主函數流程圖
加入溫度傳感和超聲波模塊后的流程
由于在proteus軟件中找不到超聲波傳感器,所以就用了一個方波作為單片機接收到的回響信號,仿真結果如下圖所示:
圖中左邊顯示的是溫度29度,右邊顯示的是測得的距離290cm。
改變回響信號頻率或改變溫度值,測得的距離也將不同,如下圖所示:
增大回響信號頻率,顯示結果如下:
增大溫度值,顯示結果如下:
同時還可以用示波器觀察發射信號和回響信號波形,如下圖所示:
圖中黃色的代表發射信號脈沖(20us左右),紅色代表回響信號波形。
最后做出的硬件調試結果如圖所示:左邊顯示的是補償前的距離,右邊顯示的是補償后的距離
由上圖可以看出溫度對超聲波測距有影響,而且隨著距離的增大,所補償的距離也越多,這是因為距離越大,超聲波傳播時間也越長,這樣溫度對聲速的變化也會凸顯出來。
六、設計總結及改進思路
1)系統技術特點:
本次課程設計采用HC-SR04超聲波測距模塊測出距離,考慮到溫度對聲速的影響,需要將溫度值檢測出來,然后修正聲速值,單片機發送一個大于10us的發射脈沖,然后檢測HC-SR04模塊的回響信號的高電平時間,測試距離=(高電平時間*聲速)/2,然后將距離值同數碼管顯示出來。
2)技術層面的改進:
本次課程設計顯示模塊采用的是數碼管,實驗時發現顯示時會出現閃爍問題,還存在顯示空間不足的缺陷,8位數碼管只能顯示溫度值和補償后的距離值,或者顯示補償前后的距離值,因此可以采用lcd液晶顯示,既解決了顯示閃爍的問題,又有足夠的空間顯示。
為期將近三天的傳感及檢測課程設計,在克服一個又一個困難的過程中,鞏固了我們所學的理論知識,還培養我的實際動手能力,還培養我們在實際的工程設計中查閱專業資料、工具書或參考書,掌握工程設計手段和軟件工具,并能用設計報告表達設計思想和結果的能力。
這次課程設計不僅培養了我的設計思想和仿真及編寫程序的能力,更檢驗了我對本門課學習的情況,培養我們嚴肅認真的學習態度。過程中我通過集體討論設計方法、設計步驟等問題,使我感受到團隊合作的重要性。真正做到理論聯系實際,提高動手能力和分析問題、解決問題的能力,并能用設計報告表達設計思想和結果的能力正是我們這次課程設計的目的。