Arduino(あちゃんでいいの)に超音波距離測定モジュールHC-SR04を接続する実験をしました。
このモジュールは比較的安価(aitendoでは390円)で購入できます。
距離の測定範囲は、2cm~450cmで、分解能は、0.3cmです。
5Vで動作し、動作電流は15mAです。40KHzの超音波を発生し、超音波が物体にぶつかって反射して帰ってくるまでの時間をEcho Pulseとして発生します。
モジュールに超音波を発生させるためには、10μs以上のトリガーパルスを加えます。
「あちゃんでいいの」とHC-SR04との接続は次のとおりです。
D2は出力設定でHC-SR04のTriggerに、D3は入力設定でHCSR04のEchoに接続します。
(どの入出力端子に接続するかは、任意です。スケッチで対応できます)
接続した様子です。
ArdionoでHC-SR04を使用した例はWeb上にいくつか見られ、OXつくろうどっとこむやはじめての電子工作長1入門などにスケッチが公開されています。
Echoからのパルスの幅を測定するには、pulseIn()という関数を使っています。
スケッチは次のようにしました。(上記Webサイトからのコピペです。)
測定した距離は、シリアルモニタに表示します。Triggerに出力するパルス幅は、最小10μで良いのですが、実験をしてみるともう少し長い方が動作があんていするようなので、20μsとしまた。
Echoからのパルス幅が超音波のセンサーと物体間の往復時間(μs単位)になります。センサーと物体間を進むのにかかる時間は、Duration/2/1000000(s)となります。
音速は、常温で340m/s=340*100cm/sですので、センサーと物体の間の距離(Distance)は
Distance = 340*100*(Duration/2/1000000)=Duration*0.017 (cm) です。
スケッチを「あちゃんでいいの」に書き込みました。シリアルモニタの表示の様子です。
左端の数字がDuration 右側の数字が距離cmです。̟±1cm程度のゆらぎがあります。
センサーの前に手をかざしても、おおむね妥当な距離を示してくれます。
動くロボットの目としてこのセンサーを活用する例が多いようですが、私の目標としては、テルミンのような楽器をArduino(あちゃんでいいの)で作ってみたいと思っています。