1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M5Stackで距離計測(HC-SR04)

Posted at

M5StackでHC-SR04を使う

Grove 超音波距離センサー編

センサー

SEEEDから発売されているGROVE - 超音波距離センサモジュールを使います.

M5Stack

Grove端子が使えるCore2を使います.
BASICもGroveの端子がありますが,HC-SR04では使えませんでした.

プログラム

ライブラリ

SEEEDのライブラリGrove_Ultrasonic_Rangeをダウンロードして,IDEに追加しておきます.
aruduino-librarymanager.png

ソース

距離計測だけではなく,センサーから得られる超音波を発信してから反射して戻ってくるまでの時間を計測したかったので,MeasureDuration()を追加(ライブラリの関数を修正して,距離を返さずに時間を返しているだけ)しています.距離のみ計測して表示するなら不要です.

#include <M5Core2.h>
#include "Ultrasonic.h"
#define PIN G33

Ultrasonic ultrasonic(PIN);
void setup()
{
  M5.begin(true, true, true, false); // I2C無効(PORTA をGPIOで使用するため)
  //M5.Power.begin();
  M5.Lcd.setTextSize(2);
  M5.Lcd.println("Ultrasonic HC-SR04");
  M5.Lcd.setCursor(10, 30);
  M5.Lcd.println("Distance to obstacles");
}

void loop()
{
 long duration;
 long RangeInCentimeters;
 const double soundvelocity = 34350./1000000.; //[cm/usec at 20 degrees Celsius]

 duration = MeasureDuration(); // two measurements should keep an interval
 M5.Lcd.setCursor(0,46);
 M5.Lcd.printf("%10d usec   \n", duration);
 RangeInCentimeters = duration * soundvelocity / 2.;
 M5.Lcd.printf("%10d cm    \n", RangeInCentimeters);//0~400cm
 //M5.Lcd.print(RangeInCentimeters);
 delay(500);
}

/*The measured distance from the range 0 to 400 Centimeters*/
long MeasureDuration(void)
{
        pinMode(PIN, OUTPUT);
        digitalWrite(PIN, LOW);
        delayMicroseconds(2);
        digitalWrite(PIN, HIGH);
        delayMicroseconds(5);
        digitalWrite(PIN,LOW);
        pinMode(PIN,INPUT);
        long duration;
        duration = pulseIn(PIN,HIGH);
        //long RangeInCentimeters;
        //RangeInCentimeters = duration/29/2;
        return duration;
}

完成

1730342050195.jpg

HC-SR04編

Groveと違って,センサーの出力が5Vなので,抵抗をつかって降圧させる必用があります.
M5StackGrayで超音波距離センサ(HC-SR04)の動作テストなど,多くのページで情報があるので参考にしました.

ブレッドボード

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?