超聲波模塊HC-SR04
超聲波測距工作原理
可以聽到的聲波:振動頻率為20Hz~20000Hz
超聲波:頻率高於20000赫茲的聲波
超聲波特性:指向性強,能量消耗緩慢,在介質中傳播的距離較遠,經常用於距離的測量
超聲波測距原理:超聲波發射器向某一方向發射超聲波,在發射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發射點距障礙物的距離s=340t/2 。
模塊主要技術參數
使用電壓:DC---5V,靜態電流:小於2mA
電平輸出:高5V,低0V
感應角度:不大於15度,探測距離:2cm--450cm
高精度 可達0.2cm
模塊引腳說明
VCC:供5V電源,GND:地線
TRIG:觸發控制信號輸入端,ECHO:回響信號輸出端
測距時,用控制板給TRIG端輸入脈沖信號,用ECHO端計算發射到回波的時間
系統接線

TRIG:接控制板2號引腳,ECHO:接控制板3號引腳,
VCC和GND分別接控制板5V和GND。
程序設計
1 #define Trig 2 //引腳Tring 連接 IO D2 2 #define Echo 3 //引腳Echo 連接 IO D3 3 float cm; //距離變量 4 float temp; 5 6 void setup() 7 { 8 Serial.begin(9600); 9 pinMode(Trig, OUTPUT); 10 pinMode(Echo, INPUT); 11 } 12 13 void loop() 14 { 15 //給Trig發送一個低高低的短時間脈沖,觸發測距 16 digitalWrite(Trig, LOW); //給Trig發送一個低電平 17 delayMicroseconds(2); //等待2微妙 18 digitalWrite(Trig,HIGH); //給Trig發送一個高電平 19 delayMicroseconds(10); //等待10微妙 20 digitalWrite(Trig, LOW); //給Trig發送一個低電平 21 temp=float(pulseIn(Echo,HIGH)); //存儲回波等待時間,pulseIn()返回脈沖的高電平時間長度,單位是微秒 22 //pulseIn函數會等待引腳變為HIGH,開始計算時間,再等待變為LOW停止計時 23 //聲速是340m/1s,換算成34000cm/1000000μs=34/1000 24 //距離(厘米)=(回波時間*(34/1000))/2=回波時間*17/1000 25 cm=(temp*17)/1000; //把回波時間換算成cm 26 Serial.print("Echo="); 27 Serial.print(temp); //串口輸出等待時間 28 Serial.print("|| Distance="); 29 Serial.print(cm); //串口輸出距離 30 Serial.println("cm"); 31 delay(100); 32 }
