一種流行的Arduino超聲波傳感器是HC-SR04。它廣泛用于非接觸式距離測量,通常用于機器人和自動化項目。本指南將向您展示如何將HC-SR04連接到Arduino并編寫一個簡單的程序來測量距離。
要求
Arduino的Uno(或兼容板)
HC-SR04超聲波傳感器
接線圖
分步指南
將HC-SR04的引腳連接到Arduino上的5V輸出。VCC
將HC-SR04的引腳連接到Arduino上的一個GND引腳。GND
將引腳連接到Arduino上的數字引腳9。Trig
將引腳連接到Arduino上的數字引腳10。Echo
Arduino超聲波示例代碼
將以下代碼復制并粘貼到ArduinoIDE中。該代碼將觸發超聲波傳感器發送脈沖,然后監聽其回波,從而計算并打印距離。
// Define the Trig and Echo pin connections
const int trigPin = 9;
const int echoPin = 10;
// Define variables to store duration and distance
long duration;
int distance;
void setup() {
// Start the serial communication
Serial.begin(9600);
// Define the Trig and Echo pins as Output and Input
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Clear the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin HIGH for 10 microseconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration * 0.034 / 2; // Speed of sound wave divided by 2 (go and back)
// Displays the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Delay 500 milliseconds before next measurement
delay(500);
}
疑難解答提示
確保ArduinoIDE的串行監視器設置為相同的波特率(在本例中為9600)以查看輸出。
確保trig和echo引腳已正確定義和連接。
如果傳感器似乎不工作,請檢查所有連接并驗證您的Arduino板是否正常工作。
該傳感器的工作原理
HC-SR04超聲波傳感器利用聲納原理測量距離。以下是其工作機制的簡要說明:
觸發超聲波脈沖:傳感器有一個發射器和一個接收器。當您觸發脈沖(使用Trig引腳)時,發射器會發送一小段超聲波。
聲波傳播:一旦超聲波脈沖被發送,它就會在空氣中傳播,直到它擊中物體并被反射回傳感器。
接收回聲:傳感器的接收器部分(連接到Echo引腳)等待反射的聲波返回。測量從發射脈沖到接收回波所需的時間。
計算距離:您可以根據聲波返回所需的時間找到與物體的距離。由于空氣中的聲速約為每秒343米,因此您可以使用公式計算距離。(除以2,因為聲波傳播到物體然后再次返回,因此您只需要總傳播時間的一半)。distance=(speedofsound*time)/2
此操作發生得非常快,并且可以快速連續重復,使傳感器能夠實時測量到前方最近物體的距離。
審核編輯:陳陳
-
超聲波傳感器
+關注
關注
18文章
586瀏覽量
35974 -
Arduino
+關注
關注
188文章
6477瀏覽量
187559 -
HC-SR04
+關注
關注
9文章
82瀏覽量
42641
發布評論請先 登錄
相關推薦
評論