Menu
CoddyTech

エコー時間をセンチメートルに変換

CoddyのArduinoジャーニー「ディスプレイとセンサー」セクションの一部。レッスン 19/24。

音は1マイクロ秒ごとに約0.034センチメートル進みます。エコーの時間にこれを掛けると、音が進んだ距離がわかります。

ただし、音は物体のところまで行って戻ってくるので、物体までの距離はその半分です。

float cm = duration * 0.034 / 2;

1メートルの距離では、エコーにかかる時間は約5800マイクロ秒です。5800に0.034を掛けると、往復で197 cm、つまり距離は98.6 cmです。0.034は小数点付きで書きましょう。そうすれば、計算結果にも小数部分が残ります。

1、2センチメートルほどの誤差は想定しておきましょう。気温によって音速が変わり、このセンサーは実際より少し短い距離を読み取ります。

challenge icon

チャレンジ

簡単

スケッチはエコー時間を出力します。代わりに距離を出力しましょう。

  • 時間をセンチメートルに変換します。0.034を掛けて、2で割ります
  • 時間の代わりにセンチメートルを出力します

Runを押して、物体を動かし、次にCheckを押します。

自分で試してみよう

const int trigPin = 9;
const int echoPin = 10;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  // エコーの時間をセンチメートル単位の距離に変換して表示する
  Serial.println(duration);
  delay(200);
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ディスプレイとセンサーのすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド