Arduino超音波距離センサー:HC-SR04で測定システム構築
概要
HC-SR04超音波センサーを用いたシンプルな距離測定システムです。安価で精度が高く、Arduino Unoと少数の部品で手軽に作れます。測定距離に応じてLEDで視覚表示し、シリアルモニターで数値確認できます。
必要な部品
- Arduino Uno
- HC-SR04 超音波距離センサー
- 赤色LED(5mm)、緑色LED(5mm)
- ジャンパーワイヤー(10本程度)
動作原理
Trigピンに10μs以上のパルスを送信 → センサーが超音波バースト発射 → EchoピンがHIGHになる時間を計測 → 音速(340m/s)で距離換算。
距離(cm) = (Echo HIGH時間 × 0.034) / 2
回路接続
- HC-SR04 VCC → 5V, GND → GND
- Trig → D9, Echo → D10
- 赤LED → D2(アノード、カソードはGNDへ220Ω抵抗経由)
- 緑LED → D3(同様)
動作仕様
- 距離 > 100cm:緑LED点灯
- 距離 ≤ 100cm:赤LED点灯
- シリアルモニター(9600bps)に距離(cm)を連続出力
ソースコード
GitHubリポジトリ: https://github.com/saaketporay/Ultrasonic-Distance-Finder
スケッチ概要
const int trigPin = 9;
const int echoPin = 10;
const int redLED = 2;
const int greenLED = 3;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance > 100) {
digitalWrite(greenLED, HIGH);
digitalWrite(redLED, LOW);
} else {
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
}
delay(500);
}
応用アイデア
- 駐車支援システム
- 液面レベル監視
- 侵入検知アラーム
- ロボットの障害物回避
製造プロセス
- HC-SR04超音波センサーをRaspberry Piに接続する実践ガイド
- 自作LUMAZOID:Arduino音楽ビジュアライザーDIYガイド
- Arduinoで超音波レベーション(浮遊)装置を自作:ステップバイステップガイド
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
- Arduino手洗いタイマー:COVID-19対策のシンプルDIYツール
- Arduino RGB LEDカラーミキサー:初心者向けDIYプロジェクト
- Arduino Unoで8×8 LEDマトリックスを制御:ステップバイステップガイド
- DIY ArduinoラジオニクスEMR治療デバイスの構築
- コンパクトなArduinoレーダーシステム – HC-SR04超音波センサー & 1.8インチST7735ディスプレイ搭載