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
HC-SR04 VCC → Arduino 5V
Arduino Unoでは5V電源を使います。
- 2
HC-SR04 GND → Arduino GND
GNDを共通にします。
- 3
HC-SR04 TRIG → Arduino D9
測定開始のトリガー出力です。
- 4
HC-SR04 ECHO → Arduino D10
Arduino Unoのデジタル入力でパルス幅を読み取ります。
用意するもの
- Arduino Uno
- HC-SR04超音波距離センサー
- ブレッドボード
- ジャンパーワイヤー
配線
| 接続元 | 接続先 | 確認点 |
|---|---|---|
| HC-SR04 VCC | Arduino 5V | Arduino Unoでは5V電源を使います。 |
| HC-SR04 GND | Arduino GND | GNDを共通にします。 |
| HC-SR04 TRIG | Arduino D9 | 測定開始のトリガー出力です。 |
| HC-SR04 ECHO | Arduino D10 | Arduino Unoのデジタル入力でパルス幅を読み取ります。 |
手順
- 1USBを外した状態でHC-SR04をブレッドボードに置きます。
- 2VCCを5V、GNDをGNDへ接続します。
- 3TRIGをD9、ECHOをD10へ接続します。
- 4スケッチを書き込み、シリアルモニターを9600bpsで開きます。
- 5センサー前の物体を動かし、距離表示が変化するか確認します。
D9/D10でHC-SR04の距離を読むArduinoスケッチ
cppconst 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を光らせる、ブザーを鳴らすなど、条件分岐を含む回路へ広げるのがおすすめです。
デモで配線を確認する