Basic Tutorial for Arduino, 感測器 Sensor, 進階篇

【Arduino進階教學】超聲波模組(HC-SR04)搭配 Arduino Uno R3 教學:原理、接線與程式碼

Arduino Uno R3 與 HC-SR04 超聲波模組實體接線範例

超聲波模組 HC-SR04 是 Arduino 初學者最常接觸的感測器之一。不論是想製作自動避障小車、智慧感應垃圾桶,還是倒車雷達,都離不開這顆高性價比的測距神器。

本文將帶你了解 HC-SR04 的工作原理,並提供最清晰的接線圖與程式碼,讓你 5 分鐘內快速上手!

什麼是 HC-SR04 超聲波感測器?

HC-SR04 是一款利用超聲波反射原理來測量距離的模組。它的有效測距範圍約為 2cm 至 400cm,測量精度可達 3mm。

工作原理

  1. 發射聲波:模組的 Trig(觸發)腳位收到高電位訊號後,會自動發出 8 個 40kHz 的超聲波脈衝。

  2. 接收聲波:聲波碰到物體反射回來,被 Echo(接收)腳位接收。

  3. 計算距離:Echo 腳位保持高電位(HIGH)的時間,就是超聲波往返的時間。

距離計算公式: (註:0.0343 cm/μs 為常溫下的音速)

準備材料

  • Arduino Uno R3 開發板 × 1

  • HC-SR04 超聲波模組 × 1

  • 麵包板 × 1

  • 杜邦線(公對公) × 4 條

  • USB 數據線 × 1

????️ 準備好你的硬體工具了嗎? 推薦選購:米羅科技 – Arduino 程式學習爆款套件組(包含豐富驅動專案模組)

????爆款推薦:程式學習套件組 

購買網址:shop.mirotek.com.tw

 

 

硬體接線指南

HC-SR04 共有 4 個引腳,請依照下方引腳對照表進行連接:

HC-SR04 引腳 Arduino Uno R3 引腳 說明
VCC 5V 電源供應
Trig Pin 9 觸發訊號發射
Echo Pin 10 反射聲波接收
GND GND 接地

Arduino 範例程式碼

請將以下程式碼複製到 Arduino IDE 中,並燒錄至你的 Arduino Uno R3:

// 定義引腳
const int trigPin = 9;
const int echoPin = 10;

// 定義變數
long duration;
int distance;

void setup() {
  pinMode(trigPin, OUTPUT); // 設定 Trig 為輸出模式
  pinMode(echoPin, INPUT);  // 設定 Echo 為輸入模式
  Serial.begin(9600);       // 初始化序列埠通訊,波特率 9600
}

void loop() {
  // 清空 Trig 腳位
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  // 發送 10 微秒的高電位脈衝以觸發測距
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // 讀取 Echo 腳位返回高電位的持續時間(微秒)
  duration = pulseIn(echoPin, HIGH);

  // 計算距離(公分)
  distance = duration * 0.0343 / 2;

  // 在序列埠監視器(Serial Monitor)輸出結果
  Serial.print("測量距離: ");
  Serial.print(distance);
  Serial.println(" cm");

  // 延遲 500 毫秒後進行下一次測量
  delay(500);
}

測試與除錯

  1. 將 Arduino 連接至電腦。

  2. 在 Arduino IDE 中選擇正確的開發板(Arduino Uno)與 Com Port。

  3. 點擊 上傳(Upload)。

  4. 打開右上角的 序列埠監視器(Serial Monitor),並將波特率設定為 9600。

  5. 用手或障礙物在感測器前移動,即可即時看到距離變化!

常見問題與排除

  • 顯示 0 cm 或數值異常:檢查接線是否鬆脫,特別是 Trig 與 Echo 是否接反。

  • 無法精準測距:超聲波無法對軟質物體(如毛絨玩具)或傾斜表面進行精確測距,建議測試時使用平整的硬物。

???? 延伸閱讀與推薦課程

???? 米羅科技小提示:如果想將超聲波測距結果同步顯示在螢幕上,強烈推薦搭配 LCD 1602 I2C 模組 一起實作!