超聲波傳感器測距


超聲波模塊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 }  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM