本帖最后由 beijinglingdian 于 2019-7-17 17:36 編輯
超聲波測距技術是一種實用,高效的技術,在社會發展中,應用得越來越廣泛,展望未來,超聲波測距技術會是一個有著廣闊發展前景的領域。由于它能量消耗的緩慢以及可以遠距離傳播的特性,使得超聲波檢測往往比較便捷和容易控制,所以超聲波測距經常在與距離測量相關聯的行業和領域應用。
超聲波測距除了不受光線,顏色因素限制的優勢外,最主要的就是他的價格低廉,產生容易。所以超聲波測距的應用特別廣泛,大型的儀器主要應用在倒車雷達,建筑工地和工業現場中的很多場合,其中,在當今的海戰中,也有超聲波的身影,比如潛艇中,就用到了超聲波測距以及其他手段來探測敵方的位置。
本方案利用超聲波可以被接收的原理,選取超聲發射接收模塊HC-SR04設計制作超聲波發射接收系統,利用單片機所具有的控制、計算的能力做成控制模塊,依據超聲波發射和接收的時間間隔計算出距離,并利用語音芯片模塊所具有的語音播報功能,實時完成對距離的播報。由于賽元單片機應用廣泛,穩定性強,性價比高。所以選擇SC92F8003單片機,再結合上超聲波測距技術來設計一個帶有語音播報的倒車雷達模型,SC92F8003引腳圖如下:
引腳圖TSSOP20.jpg (46.93 KB, 下載次數: 31)
下載附件
2019-7-17 17:26 上傳
單片機傳送給超聲波模塊的TRIG端口觸發信號,感應器就會自動發射超聲波,此時感應器的端口由低電平裝換成高電平,單片機中斷開啟,而超聲波返回以后,接收超聲波的ECHO變為低電平,通過高電平持續的時間,就可以知道超聲波發射到接收的時間,通過單片機的計算,將距離傳送給語音模塊進行播報。系統結構圖如下:
8003系統結構圖.png (28.51 KB, 下載次數: 36)
下載附件
2019-7-17 17:27 上傳
軟件一共有兩大部分,中斷程序和主程序。主程序負責初始化以及超聲波的發射和接收。中斷程序含有中斷服務子程序,負責超聲波發射時間的讀取和結果的輸出。
在單片機的初始化以后,定時器開始計時,同時P1被清0。超聲波發生子程序在上述的工作完成的同時,將會產生一個超聲波脈沖。
工作的過程可以表示如圖所示。
流程圖.png (5.15 KB, 下載次數: 34)
下載附件
2019-7-17 17:32 上傳
主程序流程圖
接收數據處理子程序如下:
c_send = 1; //10us的高電平觸發
delay();
c_send = 0;
TH0 = 0; //給定時器0清零
TL0 = 0;
TR0 = 0; //關定時器0定時
flag_hc_value = 0;
while(!c_recive); //當c_recive為零時等待
TR0=1;
while(c_recive) //當c_recive為1計數并等待
{
flag_time0 = TH0 * 256 + TL0;
if((flag_hc_value > 1) || (flag_time0 >65000)) //當超聲波超過測量范圍時,顯示3個888
{
TR0 = 0;
flag_csb_juli = 2;
distance = 888;
flag_hc_value = 0;
break ;
}
else
{
flag_csb_juli = 1;
}
}
if(flag_csb_juli == 1)
{
TR0=0; //關定時器0定時
distance = TH0; //讀出定時器0的時間
distance = distance * 256 + TL0;
distance +=( flag_hc_value * 65536);//算出超聲波測距的時間 得到單位是ms
distance *= 0.017; // 0.017 = 340M / 2 = 170M =0.017M 算出來是米
if(distance > 350) //距離 = 速度 * 時間
{
distance = 888; //如果大于3.8m就超出超聲波的量程
}
}
本方案的核心其實就是單片機系統和超聲波發射系統,超聲波測距和雷達的原理是一樣的,超聲波發射器向需要測距的物體發射超聲波,遇到障礙區就回返回來,而這個過程中的時間可以通過單片機記錄并計算,根據超聲波在空氣中的傳播時間就可以算出距離的多少,最后傳輸給語音芯片進行播報。
|