記事一覧へ戻る
Arduino/初級/7分で読める/

Arduino UnoでHC-SR04超音波距離センサーを使う配線とスケッチ

HC-SR04はArduinoの5V入出力と相性がよく、距離測定の入門に使いやすいモジュールです。TRIGで超音波を出し、ECHOのパルス幅から距離を計算します。

WIRING ORDER

配線順序のスクリーンショット

レッスン用プレビュー
Tsunagu IoT Learn / Arduino
DEVICE
Arduino
breadboard
MODULE
HC-SR04
配線する順番
  1. 1

    HC-SR04 VCCArduino 5V

    Arduino Unoでは5V電源を使います。

  2. 2

    HC-SR04 GNDArduino GND

    GNDを共通にします。

  3. 3

    HC-SR04 TRIGArduino D9

    測定開始のトリガー出力です。

  4. 4

    HC-SR04 ECHOArduino D10

    Arduino Unoのデジタル入力でパルス幅を読み取ります。

用意するもの

  • Arduino Uno
  • HC-SR04超音波距離センサー
  • ブレッドボード
  • ジャンパーワイヤー

配線

接続元接続先確認点
HC-SR04 VCCArduino 5VArduino Unoでは5V電源を使います。
HC-SR04 GNDArduino GNDGNDを共通にします。
HC-SR04 TRIGArduino D9測定開始のトリガー出力です。
HC-SR04 ECHOArduino D10Arduino Unoのデジタル入力でパルス幅を読み取ります。

手順

  1. 1USBを外した状態でHC-SR04をブレッドボードに置きます。
  2. 2VCCを5V、GNDをGNDへ接続します。
  3. 3TRIGをD9、ECHOをD10へ接続します。
  4. 4スケッチを書き込み、シリアルモニターを9600bpsで開きます。
  5. 5センサー前の物体を動かし、距離表示が変化するか確認します。

D9/D10でHC-SR04の距離を読むArduinoスケッチ

cpp
const int TRIG_PIN = 9;
const int ECHO_PIN = 10;

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  const long duration = pulseIn(ECHO_PIN, HIGH, 30000);
  const float distance = duration * 0.0343 / 2;

  if (duration == 0) {
    Serial.println("測定範囲外");
  } else {
    Serial.print("距離: ");
    Serial.print(distance);
    Serial.println(" cm");
  }

  delay(500);
}

動かないときの確認

  • シリアルモニターの速度が9600bpsになっているか
  • TRIGとECHOをコード通りのピンへ接続しているか
  • VCCが5V、GNDがGNDにつながっているか
  • 測定対象がセンサーの正面にあるか

よくあるミス

  • TRIGとECHOを逆に接続する
  • シリアルモニターのボーレートを間違える
  • 近すぎる距離や斜めの対象で値が安定しないことを配線ミスと判断する

次に試すこと

距離測定ができたら、近づいたらLEDを光らせる、ブザーを鳴らすなど、条件分岐を含む回路へ広げるのがおすすめです。

デモで配線を確認する