Menu
CoddyTech

駐車センサー:距離

CoddyのArduinoジャーニー「プロジェクト」セクションの一部。レッスン 9/24。

車には駐車センサーが付いていて、壁に向かってバックすると、ビープ音がだんだん速くなります。このプロジェクトでは、距離センサー、3つの警告灯、ブザー、画面を使って同じものを作ります。すでにすべて配線されています。最初のステップは距離の測定です。

「ディスプレイとセンサー」で説明したように、TRIGに10マイクロ秒のパルスを送ると信号が発信され、pulseIn(echoPin, HIGH)は、ECHOがHIGHの状態だった時間をマイクロ秒単位で返します。音が1センチメートル進んで戻ってくるのにかかる時間は約58マイクロ秒なので、距離(cm)はその時間を58で割った値です(これはduration * 0.034 / 2と同じです)。すべてを1つの関数にまとめましょう。

long readDistance() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  return duration / 58;
}

1秒間に約10回測定します。信号を発信する間にセンサーを少し休ませる必要があります。そうしないと、前回の遅れて届いた反射音を新しい反射音と誤認することがあります。

challenge icon

チャレンジ

簡単

センサーのTRIGはピン9、ECHOはピン10に接続されています。

  • readDistance()を記述します。トリガーパルス、pulseIn()、時間を58で割る処理を行います。
  • loop()で、Serial.println()を使って100 msごとに距離を出力します。

Runを押し、センサー上の距離をドラッグしてから、Checkを押します。

自分で試してみよう

// 距離センサー
const int trigPin = 9;
const int echoPin = 10;

// パルスを送信し、距離をcm単位で返す。
long readDistance() {

}

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

void loop() {
  // 距離を出力してから、100 ms待つ

}
quiz icon腕試し

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

プロジェクトのすべてのレッスン

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