在智能小車的靈動避障中,在自動水龍頭感應(yīng)到你的手掌時,甚至在工廠的自動化生產(chǎn)線上,一種小巧而強(qiáng)大的設(shè)備正悄然工作——它就是HC-SR04超聲波距離傳感器。這款價格親民、使用簡便的測距模塊,已成為創(chuàng)客、電子愛好者和工程師實現(xiàn)非接觸式距離測量的首選。
超聲波的奧秘:HC-SR04如何”看見”距離
HC-SR04的核心工作原理極其巧妙,它利用了聲波在空氣中傳播的特性。當(dāng)你按下智能手機(jī)的拍照鍵時,這個過程悄然發(fā)生:
t),被傳感器內(nèi)部電路精確捕捉到。t轉(zhuǎn)化為一個易于使用的信號。它通過Echo引腳輸出一個高電平脈沖,而這個脈沖的寬度(持續(xù)時間)正比于測量到的往返時間t。基于此,距離計算變得清晰:
距離 = (聲速 × 時間t) / 2
關(guān)鍵點在于聲速會隨環(huán)境溫度而變化。常溫(約20°C)下聲速為343米/秒。將時間t(單位秒)代入公式即可獲得目標(biāo)距離,公式中的除以2是因為t是超聲波往返目標(biāo)的總時間。掌握核心:HC-SR04關(guān)鍵參數(shù)與特性
動手實踐:HC-SR04與Arduino的經(jīng)典連接
將HC-SR04接入Arduino是學(xué)習(xí)測距的第一步:
代碼解析:讓Arduino讀取距離數(shù)據(jù)
const int trigPin = 2; // 定義Trig引腳連接Arduino D2
const int echoPin = 3; // 定義Echo引腳連接Arduino D3
void setup() {
Serial.begin(9600); // 啟動串口通信,用于在電腦串口監(jiān)視器查看數(shù)據(jù)
pinMode(trigPin, OUTPUT); // 設(shè)置Trig為輸出
pinMode(echoPin, INPUT); // 設(shè)置Echo為輸入
}
void loop() {
// 發(fā)送10us高電平脈沖觸發(fā)測距
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // 核心觸發(fā)信號
digitalWrite(trigPin, LOW);
// 讀取Echo高電平脈沖的持續(xù)時間(單位:微秒)
long duration = pulseIn(echoPin, HIGH);
// 計算距離:時間(微秒)轉(zhuǎn)秒需除以1000000,聲速343m/s,往返距離除以2
// 換算為厘米:34300 cm/s * (duration / 1000000 s) / 2 = duration * 0.0343 / 2
float distance_cm = duration * 0.0343 / 2;
// 在串口監(jiān)視器顯示距離
Serial.print("距離: ");
Serial.print(distance_cm);
Serial.println(" cm");
delay(100); // 控制讀取頻率
}
項目創(chuàng)意:釋放HC-SR04的無限潛能
專家調(diào)試技巧:優(yōu)化你的測量精度
Copyright ? 南京凱基特電氣有限公司 版權(quán)所有
蘇ICP備12080292號
全國服務(wù)電話:025-66098387傳真:025-87168200
公司地址:江蘇省南京市江寧區(qū)科寧路777號申智滙谷9棟101