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