HC sr04:超音波測距センサーはどのように機能し、Arduino とどのように連携するのですか?
超音波は、通常の人間の可聴範囲を超える周波数 (20kHz 以上) の高音の音波です。 超音波センサーの 1 つのタイプは、13 フィート離れた物体を感知する HC-SR04 です。この記事では、センサーがどのように機能するかを示し、Arduino とのインターフェイス プロジェクトを実施します。
超音波と比較した周波数範囲
HC SR04 超音波距離センサーの概要
hc-sr04 超音波 (US) センサーは、2 つの超音波トランスデューサーで構成されています。送信機と受信機。
送信機 (T) と受信機 (R)
受信機は送信されたパルスを待って受信しますが、送信機は電気信号を 40KHz の超音波パルスに変換します。
仕様は以下で構成されます:
寸法 – 45 x 20 x 15mm
トリガー入力信号 – 10 マイクロ秒の TTL パルス
測定角度 – 15°
測距精度 – 3mm
最小範囲 – 2cm
最大範囲 – 4cm
動作周波数 – 40KHz
動作電圧 – DC 5V 電源
Hc-sr04 超音波距離センサー ピン
超音波センサー HC-SR04 のピン配列
超音波センサーhc-sr04のピン配置を下表にまとめました。
ピン番号 | ピンの名前 | ピンの説明 |
1 | Vcc | センサーの電源ピンです(電源電圧5V)。 |
2 | トリガー/トリガー | 入力ピンとして機能します。超音波を送信して測定を開始するには、常に 10µs の間 High に保ちます。 |
3 | エコー | 出力ピンとして機能します。エコー ピンは、超音波パルスが hc-sr04 に戻るのにかかる時間に相当する一定期間、ハイのままになります。 |
4 | グラウンド | システムのグランドに接続します。 |
表> HC-SR04 超音波測距センサーの動作原理は何ですか?
Hc-sr04 は、空気を介して移動する約 40K Hz の超音波を生成することによって機能します。超音波パルスが進行経路で障害物または物体に遭遇すると、センサーに跳ね返ります。
超音波センサーの仕組み
超音波の生成
まず、trigPin が 10 マイクロ秒間 High 状態にあることを確認し、音速で移動する 8 サイクルの超音波バーストを送信します。続いて、echoPin は送信されたバーストの後に High になります。その後、echoPin は、オブジェクトから反射する超音波を待つか、または聞き取ります。
オブジェクトが存在しない場合、echoPin は 38ms 後に Low 状態になります。
ただし、超音波パルスを反射する物体がある場合、echoPin は 38ms よりも早く Low 状態になります。
Echoピンが高い状態にある間の持続時間に関する情報を使用して、音波が伝わる距離を計算できます。また、hc-sr04 からオブジェクトまでの距離も決定します。
距離 =(速度 X 時間)/2
時間 =echoPin が高かった時間 (2 ミリ秒と仮定)
スピード =音速 (340m/s または 340cm/s)
結果を 2 で割ると、跳ね返る前にオブジェクトに到達するのに必要な音波の持続時間を測定するのに役立ちます。
そう;
距離 =(速度 × 時間)/2 =(34cm/ms × 1.5ms) / 2 =25.5cm
センサーから物体までの距離は25.5cmです。
Hc sr04 寸法
HC-SR04 センサーの寸法を以下に示します。
HC-SR04 の寸法
ただし、メーカーが異なるため、寸法は常に少し異なることに注意してください。
Hc-sr04 Arduino に接続
I2C、Raspberry Pi、および Arduino を使用するなど、センサーに接続する方法はいくつかあります。今日のプロジェクトでは、Arduino ボードについて説明します。
必要な材料
- Grove 超音波距離センサー
- グローブ ベース シールド
- ブレッドボードとジャンパー線
ガイドライン
ハードウェアの接続
- センサーをポート D7 の Grove ベースのシールドに接続することから始めます。
- 次に、Grove ベースのシールドを Arduino ボードに接続します。
- 次に、USB ケーブルを使用して Arduino をコンピュータに接続します。
ピン接続は下の表にあります。
Arduino UNO | HC-SR04 超音波センサー |
GND | GND |
-3 (またはその他のデジタル I/O) ピン) | エコー |
2 (またはその他のデジタル I/O) ピン) | トリガーピン |
5V | Vcc |
表>
HC-SR04 超音波センサーと Arduino 配線図
ソフトウェアの構成
- GitHub Web サイトを検索して、超音波センサー ライブラリをダウンロードします。
- 次に、コードをコピーして Arduino IDE に貼り付けます。後でアップロードします。
コードは以下のようになります。
コードの説明
エコーピンとトリガーピン、つまり pin3 (echoPin) と pin2 (trigPin) を定義することから始めます。さらに、距離を表す整数変数と、センサーからの移動時間を知るための long 変数 (「duration」) が必要です。
さらに、echoPin を入力として定義し、トリップインは出力になります。次に、シリアル モニタ画面に結果を表示するシリアル通信を開始します。
ループ中に約 2 マイクロ秒間 LOW 状態に設定できるように、明確な trigPin があることを確認してください。その後、ピンの設定を 10 マイクロ秒の高い状態に上げて、超音波を生成します。
次に、pulseIn() があります 2 つのパラメーターを持つファンクション キー、つまり
- 読み取る脈拍の状態 (Low または High)、または
- エコーピンの名前
関数を使用して移動時間を読み取り、その値を「duration」変数に入れます。
送信機から 8 サイクルの超音波バーストを転送した後、HC-SR04 センサーが自動的に高に設定するため、echoPin を高に設定します。その結果、タイミングが開始されますが、反射音波を受信した後、エコー端子が Low になるため、タイミングが停止します。
最終的に、pulseIn() 関数はパルス長をマイクロ秒単位で返します。
先に説明した式を使用して、ここからの距離を取得します。したがって、デュレーションに 0.034 を掛けてから、値を 2 で割ります。
最後に、シリアル モニターに表示される最終的な距離値を印刷します。
HC-SR04 の適用制限
他の低コストの超音波センサーと比較して、HC-SR04 センサーは使いやすさと高精度の点で理想的であると認めています。ただし、センサーは、以下の例のように、いくつかの課題を引き起こす可能性があります。
- 第 1 に、ぬいぐるみなどの表面が柔らかく不規則な物体は、音を吸収しますが反射しないため、センサーで検出するのが難しい場合があります。
- 第 2 に、HC-SR04 センサーをデバイスの低い位置に取り付けると、デバイスの音ではなく床の音が反射することがよくあります。また、オブジェクトが小さすぎると、HC-SR04 に十分な音が反射されない場合があります。
- 次に、固体の反射面が浅い角度にある場合、音は HC-SR04 を反射しません。
- 最後に、障害物/物体とセンサーの間の距離が 13 フィートを超える場合、音の反射はありません。
結論
HC-SR04 は、インターフェイスが簡単で、手頃な価格で、低電力であるため、バッテリ駆動のデバイスに最適な人気のあるセンサーです。 2cm から 400cm の距離の測定、周囲のオブジェクトのマッピングなど、幅広い用途があります。
超音波センサーについて詳しく知りたい場合は、お問い合わせください。ご連絡をお待ちしております。