HC-SR04超音波距離センサー用のArduinoコードとビデオ
このチュートリアルでは、HC-SR04超音波距離センサーをArduinoで使う方法を学びます。HC-SR04は、超音波を用いて距離を測定する安価で効果的なデバイスです。信号を送信してエコーが返ってくるまでの時間を測定することで、対象物までの距離を正確に算出できます。

このプロジェクトでは、Arduinoにセンサーを接続し、距離を読み取って表示する簡単なプログラムを作成します。プログラムはNewPingライブラリを利用してセンサーとの通信を簡素化します。視覚的な参照や手順のさらなる説明が必要な場合は、動画(00:00)を必ず確認してください。
ハードウェア解説
HC-SR04超音波センサは送信機と受信機の2つの主要な構成要素から成り立っています。送信機は人間の可聴域を超える周波数の超音波パルスを発し、受信機はそれらのパルスが物体で反射して戻ってくるエコーを検出します。パルスを送信してからエコーを受信するまでの時間を計算することで、物体までの距離を求めることができます。
センサーには2つの必須ピンがあります:トリガーピンとエコーピンです。トリガーピンは短い高レベルの信号を送って測定を開始するために使われ、エコーピンは反射信号を受信してエコーが戻るまでの時間を測定します。
データシートの詳細
| 製造業者 | HC-SR04 |
|---|---|
| 品番 | HC-SR04 |
| ロジック/IO電圧 | 5 V |
| 電源電圧 | 5 V |
| 出力電流(チャンネルあたり) | 15 mA |
| ピーク電流(チャネルあたり) | 20 mA |
| PWM周波数に関するガイダンス | 該当なし |
| 入力論理閾値 | 0.3 V(低)、0.7 V(高) |
| 電圧降下 / RDS(オン) / 彩度 | 該当なし |
| 熱限界 | 0°C〜70°C |
| パッケージ | モジュール |
| 注記 / バリエーション | 最大到達距離 400 cm |
- 適切な電源(5 V)を確保してください。
- 正確な測定のためにセンサーを清潔に保ってください。
- トリガーピンを使用して測定を開始してください。
- 信頼できる結果を得るために、最大距離を超えないでください。
- 超音波が反射して戻るための経路を確保してください。
- 電源ピン付近にデカップリングコンデンサを配置してください。
- 読み取りに干渉する可能性のある周囲の雑音に注意してください。
- センサーに慣れるために、さまざまな距離でテストしてみてください。
配線手順


HC-SR04超音波センサーをArduinoに配線するには、次の手順に従ってください:
- 接続してください
VCCHC-SR04のピンをArduinoの5Vピンに接続する。 - 接続してください
GNDHC-SR04のピンをArduinoのGNDピンに接続する。 - 接続してください
TRIGHC-SR04のピン(通常は青色)をArduinoのデジタルピン12に接続します。 - 接続する
ECHOHC-SR04のピン(通常は緑色)をArduinoのデジタルピン11に接続する。
断続的な読み取りを避けるため、接続が確実に行われていることを確認してください。異なるセットアップや別の配線を使用している場合は、追加のガイダンスについてビデオ(00:00)を参照してください。
コード例と解説
以下のコードは NewPing ライブラリを初期化し、HC-SR04 センサー用のピンを設定します。主な要素は、トリガーおよびエコーのピンの定義と最大距離の設定です。
#define TRIGGER_PIN 12 // Trigger pin
#define ECHO_PIN 11 // Echo pin
#define MAX_DISTANCE 200 // Max distance in cm
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Set up NewPingこの抜粋では、TRIGGER_PINそしてECHO_PINそれぞれデジタルピン12と11に設定されています。そのMAX_DISTANCEこれは、あなたが測定したい最大の距離である200 cmと定義されています。
次に、結果を表示するためにシリアルモニタが初期化される setup 関数があります:
void setup() {
Serial.begin(115200); // Initialize serial monitor
}このコードはボーレート115200でシリアル通信を開始し、シリアルモニタで距離測定値を確認できるようにします。
最後に、loop関数は距離を測定し、それが12 cm以下かどうかをチェックします:
void loop() {
delay(50); // Wait between pings
int distance = sonar.ping_cm(); // Measure distance
if(distance <=12){ // Check distance
Serial.println("Very close"); // Print if very close
}
}〜の中でloop(), 測定の頻度を制御するために50ミリ秒の遅延を導入します。距離を測定し、それが12 cm以下であればシリアルモニタに「非常に近い」と表示します。
完全なコードについては、記事の下にある読み込みセクションをご参照ください。
デモンストレーション/当日の流れ
プログラムを実行すると、Arduinoは最も近い物体までの距離を継続的に測定します。距離はセンチメートルで表示され、物体が12 cm以内に検出された場合は「非常に近い」と通知されます。物体が近すぎると、動画(10:00)で指摘されているように、誤った測定値が出たりまったく測定できなかったりすることがあります。
センサーが正しく配置され、超音波の進行を妨げる障害物がないことを確認してください。すべてが正しく設定されていれば、シリアルモニターに一貫した測定値が表示されるはずです。
動画のタイムスタンプ
- 00:00- HC-SR04の紹介
- 01:30センサーの配線
- 03:00- コードの概要
- 05:00- プログラムの実行
- 07:30- 距離の測定
必要かもしれないもの
-
イーベイeBayでHC-SR04超音波センサーを購入してください。ebay.us
-
バングッドBanggoodからHC-SR04超音波センサーを購入するbanggood.com
リソースと参考文献
-
外部Arduino公式ウェブサイトのHC-SR04超音波ライブラリplayground.arduino.cc
ファイル📁
ファイルは利用できません。