Menu
CoddyTech

虹色のサイクル

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 型の引数に使えます。引数の順序は渡すときと同じにします。赤、緑、青です。

challenge icon

チャレンジ

簡単

setColor()を書いて、各色を0.5秒ずつ表示しながら、虹を何度も繰り返し表示しましょう:

  1. 赤
  2. 黄
  3. 緑
  4. シアン
  5. 青
  6. マゼンタ

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);
  // 次に黄、緑、シアン、青、マゼンタ
}
quiz icon腕試し

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

出力のすべてのレッスン

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