### プロジェクト6:超音波センサー #### **(1)概要:** ![](media/0180b169a1c3b228394b43df704fac32.png) HC-SR04超音波センサーは、コウモリと同様にソナーを使用して物体までの距離を測定します。使いやすいパッケージで、高精度かつ安定した読み取り値で優れた非接触距離検出を提供します。超音波送信モジュールと受信モジュールが完備されています。 HC-SR04または超音波センサーは、障害物検出や距離測定アプリケーションの作成、およびその他のさまざまなアプリケーションのために、幅広いエレクトロニクスプロジェクトで使用されています。ここでは、Arduinoと超音波センサーを使用した距離測定のシンプルな方法と、Arduinoで超音波センサーを使用する方法をご紹介します。 ![](./media/image-20250709133626194.png) #### **(2)パラメーター:** - 電源電圧:+5V DC - 静止電流:\<2mA - 動作電流:15mA - 有効角度:\<15° - 測定距離:2cm~400cm - 分解能:0.3cm - 測定角度:30度 - トリガー入力パルス幅:10uS #### **(3)超音波センサーの原理:** 上の画像に示すように、2つの目のようなものです。一方が送信端、もう一方が受信端です。 超音波モジュールは、信号をトリガーした後に超音波を発します。超音波が物体に当たって反射されると、モジュールはエコー信号を出力します。そのため、トリガー信号とエコー信号の時間差から物体までの距離を測定することができます。 ここで、tは発射された信号が障害物に当たって返ってくるまでの時間です。空気中の音の伝播速度は約343m/sで、距離=速度×時間です。ただし、超音波は障害物まで往復するため、時間は距離の2倍を表します。したがって、2で割る必要があります。**超音波で測定した距離=(速度×時間)/2**。 1. 超音波モジュールの使用方法とタイミングチャート: 2. SR04のTrigピンの遅延時間を少なくとも10μSに設定することで、距離検出をトリガーできます。 3. トリガー後、モジュールは自動的に40KHzの超音波パルスを8回送信し、信号の返信があるかどうかを検出します。このステップはモジュールによって自動的に完了します。 4. 信号が返信された場合、Echoピンは高レベルを出力し、その高レベルの持続時間が超音波の送信から返信までの時間となります。 ![](media/image-20230525110337646.png) 超音波センサーの回路図: ![](media/a25028af84d6c7c94382c2a907101241.jpeg) #### **(4)接続図:** ![](media/d8fad040d3ab5abe247d6a8d1e08a13d.png) 配線注意: 超音波センサーモジュールのVCCピンはKeyestudio 8833モータードライブ拡張ボードの5v(V)に接続し、TrigピンはデジタルD12に接続し、EchoピンはデジタルD13に接続し、GndピンはGnd(G)に接続します。 #### **(5)テストコード:** 以下に示すように、ブロックをドラッグしてコードを編集することもできます。 ![](media/8de1b04be1ba147dd242c66bddeacacc.png) ![](media/128e0b4ee7d3448410d72312175bc6da.png) ![](media/413019f6b04d6d904a438ac6c8589d64.png) ![](media/a6df8829b69f7faed26a73d01da8d50d.png) ![](media/25bf5c6f26cce9db18dfe951e7f166fe.png) ![](media/eca0805413af12957d319c706d3e7cdb.png) ![](media/b6e575b05bdc050e32c9b2e54e61a750.png) **完全なテストコード** (**注意:** コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードにもシリアル通信を使用しており、Bluetoothシリアル通信と競合してアップロードに失敗する可能性があります。) ![](media/569aff5ff2cbd2f3605f217ebb5ed50b.png) #### **(6)テスト結果:** テストコードを開発ボードにアップロードし、シリアルモニターを開いてボーレートを9600に設定します。検出された距離がcmとインチで表示されます。手で超音波センサーを遮ると、表示される距離の値が小さくなります。 ![](media/4f77acbf5b226e20e3cdd70c0f90602e.png) #### **(7)応用練習:** 超音波で測定した距離を表示することができました。測定した距離でLEDを制御してみましょう!試してみましょう。D9ピンにLEDライトモジュールを接続します。 ![](media/291ac1db0f38418772d11bb1786b7314.png) 以下に示すように、ブロックをドラッグしてコードを編集することもできます。 ![](media/8de1b04be1ba147dd242c66bddeacacc.png) ![](media/49d5523ae565e1d4dfc3504d1e1748d4.png) ![](media/413019f6b04d6d904a438ac6c8589d64.png) ![](media/8d5fc923f5ded5305f36b1379c1ba38e.png) ![](media/25bf5c6f26cce9db18dfe951e7f166fe.png) ![](media/a6205e42e005084c33c247fe564bdcad.png) ![](media/b6e575b05bdc050e32c9b2e54e61a750.png) **完全なテストコード** (**注意:** コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードにもシリアル通信を使用しており、Bluetoothシリアル通信と競合してアップロードに失敗する可能性があります。) ![](media/065eac0ad9cfa8f07aeb5e648698bdb5.png) テストコードを開発ボードにアップロードし、超音波センサーに手を近づけて、LEDが点灯するか確認してください。 ![](./media/img-20240117092413.png)