目錄
一、前言
二、超聲波模塊介紹
1、超聲波模塊
2、HC-SR04模塊
三、硬件連接
四、軟件代碼
五、效果展示
六、代碼鏈接
一、前言
超聲波模塊是通過聲音的傳播進行測距,聲音傳播的速度與所用時間通過運算得出距離,精度相對較高,可用于近距離的測量與感應。
二、超聲波模塊介紹
1、超聲波模塊
超聲波測距模塊是用來測量距離的一種產品,通過發(fā)送和收超聲波,利用時間差和聲音傳播速度,計算出模塊到前方障礙物的距離。 超聲波測距模塊有好多種類型,比較常用的有URM37超聲波傳感器默認是232接口,可以調為TTL接口,URM05大功率超聲波傳感器測試距離能到10米,算是測試距離比較遠的一款了,另外還有比較常用的國外的幾款SRF系列的超聲波模塊,超聲波模塊精度能到1cm 。
2、HC-SR04模塊
本模塊性能穩(wěn)定,測度距離精確,模塊高精度,盲區(qū)小。 產品應用領域: 機器人避障 物體測距 液位檢測 公共安防 停車場檢測 。 測試距離大概在5M。
基本工作原理:
(1)采用IO口TRIG觸發(fā)測距,給至少10us的高電平信號;
(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;
(3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2;
三、硬件連接
超聲波硬件連接
VCC:接5V
GND:接地
Trig:控制端(我接的P1^0)
Echo:接收端(我接的p1^1)
OLED連接方式與上一節(jié)相同。
四、軟件代碼
main主函數(shù)
void main()
{
float S; //距離變量
TIM0init(); //初始化定時器0
OLED_Init(); //初始化
OLED_ColorTurn(0); //0正常顯示,1反色顯示
OLED_DisplayTurn(0);//0正常顯示,1屏幕反轉顯示
while(1)
{
TRIG=1; //觸發(fā)信號是高電平脈沖,寬度大于10us
DelayUs2x(10);
TRIG=0;
while(!ECHO); //等待高電平
TR0=1;
while(ECHO); //等待低電平
TR0=0;
S=TH0*256+TL0;//取出定時器值高8位和低8位合并
S=S/58; //為什么除以58等于厘米, Y米=(X秒*344)/2
// X秒=( 2*Y米)/344 -> X秒=0.0058*Y米 -> 厘米=微秒/58
TH0=0;
TL0=0; //清除定時器0寄存器中的值
//delay_ms(50);
S=S*10;
OLED_DrawBMP(0,1,48,48,BMP1); //生成圖像
OLED_ShowChinese(48,0,0,16); //文字 距離
OLED_ShowChinese(64,0,1,16);
OLED_ShowString(80,0,":",16); //顯示字符串
OLED_ShowString(110,2,"mm",16);
OLED_ShowNum(80,2,S,3,16); //顯示數(shù)字
DelayMs(250);
}
}
OLED控制函數(shù)可以觀看上一節(jié)內容。
五、效果展示
實物演示 https://live.csdn.net/v/211270
六、代碼鏈接
關注公眾號“小小創(chuàng)客者”回復“超聲波測距OLED顯示”獲得代碼。若有錯誤歡迎指正。
審核編輯:湯梓紅
-
OLED
+關注
關注
119文章
6200瀏覽量
224215 -
超聲波
+關注
關注
63文章
3017瀏覽量
138396
發(fā)布評論請先 登錄
相關推薦
評論