虹色のサイクル
CoddyのArduinoジャーニー「出力」セクションの一部。レッスン 8/24。
各色には digitalWrite() の行が3行必要です。6色の連続した並びなら18行必要になり、どの行がどれに対応するのか混同しやすくなります。
関数を使えば短くできます。setColor() は各色の値を1つずつ受け取り、3つのピンすべてに書き込みます。
void setColor(int red, int green, int blue) {
digitalWrite(redPin, red);
digitalWrite(greenPin, green);
digitalWrite(bluePin, blue);
}これで各色を1行で指定でき、3つの値をレシピのように読み取れます。
setColor(HIGH, HIGH, LOW); // 黄色
delay(500);HIGH と LOW は数値の1と0なので、int 型の引数に使えます。引数の順序は渡すときと同じにします。赤、緑、青です。
チャレンジ
簡単setColor()を書いて、各色を0.5秒ずつ表示しながら、虹を何度も繰り返し表示しましょう:
- 赤
- 黄
- 緑
- シアン
- 青
- マゼンタ
Runを押してから、Checkを押します。
自分で試してみよう
const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void setColor(int red, int green, int blue) {
// それぞれの値を対応するピンに書き込む
}
void loop() {
setColor(HIGH, LOW, LOW); // 赤
delay(500);
// 次に黄、緑、シアン、青、マゼンタ
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
出力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド