/*
* 3色LED(RGB)制御サンプル
*/
// 点灯色の数を定義
#define COLOR_COUNT 7
// ピン番号を定数として定義
const int LED_RED = 3;
const int LED_GREEN = 5;
const int LED_BLUE = 6;
// 色変更に使用するカウント変数
int count = 0;
void setup() {
// ピンの動作モードを設定
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_BLUE, OUTPUT);
// LED消灯
change_color(0);
Serial.begin(115200);
}
void loop() {
// 現在のカウントを出力
Serial.print("count: ");
Serial.println(count);
// 2秒ごとにLEDの点灯色を変更
change_color(count);
delay(2000);
// 次の点灯色を設定
if (count < COLOR_COUNT)
{
count++;
}
else
{
count = 0;
}
}
// RGBLEDの点灯色を変更する関数
// 引数: 数値(0~COLOR_COUNT)
void change_color(int num) {
switch (num)
{
case 0:
// 消灯
digitalWrite(LED_RED, HIGH); // アノードコモンのためHIGHで消灯
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_BLUE, HIGH);
break;
case 1:
// 赤 点灯
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_BLUE, HIGH);
break;
case 2:
// 緑 点灯
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_BLUE, HIGH);
break;
case 3:
// 青 点灯
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_BLUE, LOW);
break;
case 4:
// 黄 点灯
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_BLUE, HIGH);
break;
case 5:
// 水色 点灯
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_BLUE, LOW);
break;
case 6:
// ピンク 点灯
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_BLUE, LOW);
break;
case 7:
// 白 点灯
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_BLUE, LOW);
break;
default:
// 消灯
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_BLUE, HIGH);
break;
}
return;
}