信号機のサイクル
CoddyのArduinoジャーニー「プロジェクト」セクションの一部。レッスン 1/24。
このプロジェクトでは、車用の信号、より適切なタイミング、歩行者用のボタン、ブザー付きの歩行者用信号の4つの手順で、横断歩道を作ります。横断歩道の回路はすでに配線されているため、どの手順でも回路は変わりません。今日は車用の3つの信号だけを使います。
信号機は同じ手順を繰り返し続けます。青、黄、赤、そして再び青です。それぞれの手順では、1つの信号が点灯し、ほかの2つが消灯した状態がしばらく続きます。
同じ数行のコードが何度も現れる場合は、それらを関数にまとめます。この関数は、渡された信号を点灯させ、ほかの信号を消灯させます。
void showLight(int pin) {
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, LOW);
digitalWrite(pin, HIGH);
}すると、loop()の各手順は2行になります。showLight(greenPin);と、その信号を点灯させておく時間分のdelay()です。
チャレンジ
簡単車のライトはピン12(赤)、11(黄)、10(緑)に接続されています。次のように切り替えてください:
- 3つのピンを出力に設定する
- 緑を3000 ms点灯する
- 黄を1000 ms点灯する
- 赤を3000 ms点灯してから、再び最初に戻る
一度に点灯できる車のライトは1つだけです。Runを押して交差点の動作を確認し、次にCheckを押してください。
自分で試してみよう
// 車用の信号機
const int redPin = 12;
const int yellowPin = 11;
const int greenPin = 10;
void setup() {
// 3つのライト用ピンを出力に設定する
}
void loop() {
// 緑を3 s、黄を1 s、赤を3 s点灯させる
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
プロジェクトのすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド