【小学生向けプログラミング】初心者キットで作る「RGB虹色アニメーション」|1個のLEDで色が変わる装置

1個で虹色! RGBアニメ工作

1個のLEDで虹色が出る装置を作ろう

Scratchで色を変えるブロックあるよね、あれを本物のLEDでやれる?

できるよ! 「RGB LED」っていう特別なLEDを使うんだ。赤・緑・青の光を混ぜて、紫・黄色・水色など好きな色が作れる。今日は虹色が順番に変わるアニメーションを作るよ。

今回は、Scratchで色を扱った経験がある小学生に向けて、初心者キットだけで作れる「RGB虹色アニメーション」を紹介します。

1個のRGB LEDで、赤・橙・黄・緑・青・紫の虹色を順番に表示する装置です。色の作り方 (光の3原色) と、PWMによる明るさ調整を体験できる、プログラミング学習にぴったりの題材です。

この記事で作るもの
  1. 1個のRGB LEDで虹色がゆっくり変わる
  2. 赤から緑、緑から青、青から赤になめらかに変化
  3. 変化の速さはプログラムで調整可
  4. 光の3原色の仕組みを体験

RGB LEDとは

RGB LEDは、赤・緑・青の3色のLEDが1つの透明ケースに入った特別な部品です。3色の明るさを別々に調整すると、いろいろな色が作れます。

色のしくみ
赤+緑=黄、緑+青=水色、青+赤=紫、全部=白、全部消す=黒。光の三原色の基本。

使う部品

部品役割個数
Arduino UNO R3頭脳1
RGB LED (4本足)虹色の光1
抵抗330Ω各色の保護3
ブレッドボード配線1
ジャンパーワイヤーつなぐ5本

RGB LEDは4本足で、共通カソード型と共通アノード型の2種類があります。キット付属が共通カソード型なら、一番長い足をGNDに繋ぎます。共通アノード型の場合は長い足を5Vに繋ぎ、analogWriteの値を逆 (0=最大、255=消灯) にする必要があります。

配線図

        a b c d e
       +─────────+
[-]rail| . . . . . | ← GND
       +─────────+
row 5  | X . . . . | ← 330Ω 上足 (D9から、赤)
row 6  | X . . . . | ← 330Ω 下足+RGB赤足
row 8  | X . . . . | ← RGB共通カソード ([-])
row 11 | X . . . . | ← 330Ω 上足 (D10から、緑)
row 12 | X . . . . | ← 330Ω 下足+RGB緑足
row 15 | X . . . . | ← 330Ω 上足 (D11から、青)
row 16 | X . . . . | ← 330Ω 下足+RGB青足
       +─────────+

部品同士のつながり

Arduino       RGB LED
  D9   ──→   330Ω → 赤足
  D10  ──→   330Ω → 緑足
  D11  ──→   330Ω → 青足
  GND  ←──   共通カソード (一番長い足)

プログラム

#define RED 9
#define GREEN 10
#define BLUE 11

void setup() {
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
}

void loop() {
  // 赤 → 緑
  for (int i = 0; i <= 255; i++) {
    analogWrite(RED, 255 - i);
    analogWrite(GREEN, i);
    delay(15);
  }
  // 緑 → 青
  for (int i = 0; i <= 255; i++) {
    analogWrite(GREEN, 255 - i);
    analogWrite(BLUE, i);
    delay(15);
  }
  // 青 → 赤
  for (int i = 0; i <= 255; i++) {
    analogWrite(BLUE, 255 - i);
    analogWrite(RED, i);
    delay(15);
  }
}

プログラムの動き

flowchart TD A[起動] --> B[赤→緑へ変化] B --> C[緑→青へ変化] C --> D[青→赤へ変化] D --> B

プログラミングのポイント

このプログラムでは、2つの値を同時に変化させるのがポイントです。「赤を255から0へ」「緑を0から255へ」を同じループで処理することで、自然に色が混ざり合います。

なんで赤→緑の途中で黄色が出るの?

赤と緑を両方光らせると黄色っぽく見えるんだ。光の三原色の基本ルールだよ。LEDの色ごとに明るさが違うから、ピッタリの黄色にしたければ赤と緑の値を少しずつ変えて調整するといいよ。

自由研究としての展開

研究テーマのアイデア
  1. RGB値と見える色の対応表を作る
  2. 緑+青で水色になることを実証
  3. 絵の具の3原色 (赤・青・黄) との違いを調べる
  4. 本物の虹の色順 (赤橙黄緑青藍紫) を再現してみる

改造のアイデア

発展アイデア
  1. ボタンを押すと色がパッと切り替わるモード
  2. 明るさセンサーで「暗い時だけ虹色」に
  3. 音 (パッシブブザー) と一緒に虹色チャイム
  4. 3つのポテンショメータで色をマニュアル調整

まとめ

今回は、小学生のプログラミング自由研究に「RGB虹色アニメーション」を紹介しました。光の三原色とPWMの両方を学べる、視覚的に楽しい作品です。

大切なのは、数値を変えて、同じLEDでも色が変わることを確認することです。「赤200、緑50、青100」のような自分の好きな色を見つけたら、レポートにメモしておきましょう。

他にも初心者キットだけで作れる作例を別の記事で紹介しているので、興味があれば見てみてね。