Menu
CoddyTech

駐車センサー:ライト

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

駐車中に数値を読む人はいません。3つのLEDで距離を色に変えます。進路が空いているときはピン6の緑、近づいてきたらピン7の黄、停止しなければならないときはピン13の赤です。

範囲は3つで、それぞれに対応するLEDは1つだけです。分岐のうち1つだけが実行されるため、if / else if / else の連鎖が適しています。

if (cm >= 100) {
  // 緑
} else if (cm >= 30) {
  // 黄: 30から99
} else {
  // 赤: 30未満
}

2つ目のテストでcm < 100と書く必要はありません。elseは最初のテストが偽だったことを意味するので、距離はすでに100未満です。

信号機のときと同じように、1つのLEDを点灯する前に3つすべてのLEDを消灯してください。そうしないと、赤が点灯したときに黄も点灯したままになります。

challenge icon

チャレンジ

簡単

距離を色で表示します:

  • ピン6、7、13を出力に設定する
  • 100 cm以上:緑のみ
  • 30~99 cm:黄色のみ
  • 30 cm未満:赤のみ

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

自分で試してみよう

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

// パルスを送信し、距離をcm単位で返します。
long readDistance() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  return duration / 58;
}

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

void loop() {
  long cm = readDistance();
  Serial.println(cm);
  delay(100);
}
quiz icon腕試し

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

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

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