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