模塊數據:
1. 工作電壓:5V
2. 靜態電流:<2mA
3. 探測距離:2~450cm
4. 引腳:VCC、Trig、Echo、GND
VCC接電源正極
GND接電源負極
Trig是傳感器觸發信號輸入引腳
Echo是傳感器測距數據輸出引腳
工作原理:
單片機向模塊的Trig引腳發出至少10μs的高電平信號以觸發傳感器測距。模塊自動發送8個40kHz的方波,模塊自動檢測是否有信號返回。
當有信號返回時,通過IO輸出一高電平,該高電平持續的時間就是超聲波從發射到返回的時間。時間單位 一般為微秒(μs),聲速約為344m/s,
則可推導
測試距離(m)= [高電平時間(μs)×10^(-6)×聲速(344m/s)]/2
= 高電平時間(μs)×172/10^6
此時的測試距離的單位為米,轉換為厘米則
測試距離(cm)= 高電平時間(μs)×172/10^6×100
= 高電平時間(μs)/58
實驗例程:
1 const int Echo = 3; 2 const int Trig = 4; 3 float distance; 4 void setup(){ 5 Serial.begin(9600); 6 pinMode(Trig,OUTPUT); 7 pinMode(Echo,INPUT); 8 } 9 void loop(){ 10 digitalWrite(Trig,LOW); 11 delayMicroseconds(2); 12 digitalWrite(Trig,HIGH); 13 delayMicroseconds(10); 14 digitalWrite(Trig,LOW); 15 16 distance = pulseIn(Echo,HIGH) / 58.0; 17 distance = ((int)distance*100.0) / 100.0; 18 Serial.println(distance); 19 delay(100); 20 }