HC-SR04超聲波測距模塊
HC-SR04超聲波測距模塊可提供2cm至400cm的非接觸式距離感測功能,測距精度可達3mm;模塊自身包括超聲波發射器、接收器與控制電路。


實物正反兩面圖
HC-SR04電氣參數:

HC-SR04工作原理及說明:
1、 給Trig觸發控制信號IO端口至少10us的高電平信號;
2、 模塊自動發送8個40khz的方波,並自動檢測是否有信號返回;
3、 有信號返回時,Echo回響信號輸出端口輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間;
4、 兩次測距時間間隔最少在60ms以上,以防止發射信號對回響信號的影響;

超聲波時序圖
單片機控制HC-SR04超聲波測距說明:
原理圖中,單片機的P1.7口接HC-SR04的Trig端口,P1.6口接HC-SR04的Echo端口,超聲波在傳播時碰到障礙物即返回,HC-SR04模塊收到回波信號后Echo口輸出一個高電平,單片機檢測到高電平后即啟動計數器開始計數,直到單片機檢測到Echo口變成低電平后結束計數,計數器的計數值乘以單片機計數周期就是超聲波從發射到接收的往返時間,即距離S=v*t/2;
以下是實現代碼:
1 #include <OLED12864.H> 2 #include <stdio.h> 3 unsigned long record; 4 unsigned int number_1; 5 char Display[10]; 6 /*P17 HC-SR04觸發信號輸入,P16 HC-SR04回響信號輸出*/ 7 void delay_10us(unsigned int i)//約延時10us 8 { 9 while(i--); 10 } 11 //主函數 12 void main(void) 13 { 14 LCD_Init();//顯示屏初始化 15 while(1) 16 { 17 TMOD=0x10; 18 TH1=0x00; 19 TL1=0x00; 20 /*觸發超聲波測距*/ 21 P17=0; 22 P17=1; 23 delay_10us(2); 24 P17 = 0; 25 while (!P16) 26 { 27 TR1 = 0; 28 } 29 while (P16) 30 { 31 TR1 = 1; 32 } 33 number_1=TH1*256+TL1; 34 record =(unsigned long)(number_1*0.17+20); 35 } 36 }
來源:E小電
