HC-SR04で距離計測 ~ M5StickCなら簡単に距離計ができる!

2022年6月12日

HC-SR04

車用の距離計を考えています。できるだけ精密な距離を測れるセンサーが良いですが、まずは安いHC-SR04を使ってみることにしました。

そして使用するマイコンですが、今回はM5StickC、その後でRaspberry Piを使います。それでは、作成してみます。

1.接続方法

HC-SR04M5StickCを、以下のように接続します。

HC-SR04 – M5StickC

Vcc – 5V
Gnd – Gnd
Trig – GPIO0
Echo – GPIO36

4つの線をジャンパーワイヤーで接続します。簡単ですね。

2.プログラム

HC-SR04は4.5mまで計測できるそうなので、3桁のcm表示とします。

#include <M5StickC.h>
#define S_SEND 0
#define S_RECEIVE 36

int counts;
int distance;

void setup() {
  // put your setup code here, to run once:
  M5.begin();

  pinMode(S_SEND, OUTPUT);
  pinMode(S_RECEIVE, INPUT);

  M5.Lcd.setRotation(3);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(S_SEND, HIGH);
  delayMicroseconds(10);
  digitalWrite(S_SEND, LOW);

  counts = pulseIn(S_RECEIVE, HIGH);
  distance = (int)(counts * 0.017);

  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextColor(GREEN);

  M5.Lcd.setCursor(0, 10, 7);
  M5.Lcd.printf("%03d", distance);

  M5.Lcd.setCursor(110, 35, 4);
  M5.Lcd.print("cm");

  delay(500);
}

3.動作結果

問題なく、プログラムが動作しました。個人的には、かなりアバウトな数値が出るのだろうと思っていましたが、予想以上に正確な値が出ています。これであれば、高精度のセンサーを用意する必要もないのでは、と現状では考えています。

そして、M5StickCの万能さが光りました。 M5StickCはモニターとバッテリーを搭載するので、センサー以外に必要なアイテムがありません。今回も、簡単な距離計として、すぐに使えそうです。

さて、この次はRaspberry Pi ATOM Lite用のプログラムを作成します。こちらは、より実用的なものを考えています。乞うご期待。