Arduinoに超音波距離センサ(HC-SR04)を接続して距離を測りました

なにを学習するの?

  • Arduino UNO R3と超音波距離センサをブレッドボード上で繋いで、ARDUINO IDEで作ったスケッチを使って距離を測定する方法と、ARDUINO IDEのモニタ画面で表示させる方法を学習します。

必要な部品は?

超音波センサモジュール (HC-SR04)1個
Arduino UNO R31個

Elegoo社製の「 Arduino用のUNO R3 最終版スタータキット」を購入しています。超音波センサモジュール (HC-SR04)がこのキットに含まれていたので使いました。

関連する商品・製品は?

超音波センサモジュール (HC-SR04)の動作は?

  • 超音波センサモジュール (HC-SR04)から超音波を送波して、反射波を受けます。送波から受波までの時間にに相当した波形を出力します。
  • 距離を測るには順番があります。最初にArduino UNO R3からTRIG端子にパルスが入力され、超音波が送波されます。物体に当たって反射した超音波をセンサが受波するまでの時間に相当するパルスがECHO端子から出力されます。Arduino UNO R3でこのパルスの時間を計測して距離に換算します。

計測した距離の表示は?

  • 超音波センサモジュール (HC-SR04)で測定した距離をARDUINO IDEのモニタ画面で表示します。
Arduino IDE のモニターに超音波距離センサで測った距離が表示されます。

スケッチのコードは?

  • 超音波センサモジュール用のライブラリをインクルードしなければなりません。超音波センサモジュール (HC-SR04)用のライブラリ”SR04.h”が「 Arduino用のUNO R3 最終版スタータキット」に付属していましたので、このライブラリをARDUINO IDEにインクルードしてスケッチをコンパイルします。
//www.arduinomakesiteasy.com
//2022.4.13

include "SR04.h" //HC-SR04用のライブラリをインクルード

define TRIG_PIN 12 //12ピンをTRIGとする
define ECHO_PIN 11 //11ピンをECHOとする
define delayTime 1000 //遅延時間を1000ms(1秒)とする
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN); //距離を測る関数SR04を定義する
long a;

void setup() {
Serial.begin(9600);
delay(delayTime);
}

void loop() {
a=sr04.Distance(); //sr04で距離を測定する
Serial.print(a);    //測定値をシリアルポートに出力する
Serial.println("cm");
delay(delayTime);
}

スケッチはHC-SR04のEchoパルスをどう測っているの?

  • スケッチでインクルードした[SR04.h]を調べると、Distance()という関数が定義されていて、この中に[pulseIn]という関数が使われています。
_duration = pulseIn(_echoPin, HIGH, PULSE_TIMEOUT);
  • pulseIn関数でEcho端子のパルスのHighの区間の時間を測っています。こんな便利な関数があるのでArduinoは使いやすいのかなと思います。

回路図 (配線図)は?

  • Fritzingで描いた回路図(配線図)と実際の配線です。

ご質問、誤植の指摘などありましたら。「問い合わせ 」のページからお願いします。