エコー時間をセンチメートルに変換
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センチメートルほどの誤差は想定しておきましょう。気温によって音速が変わり、このセンサーは実際より少し短い距離を読み取ります。
チャレンジ
簡単スケッチはエコー時間を出力します。代わりに距離を出力しましょう。
- 時間をセンチメートルに変換します。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);
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ディスプレイとセンサーのすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド