プロジェクト07:赤、青、緑 色とりどりの演出をしてみよう
このプロジェクトで学ぶこと: PWM(パルス幅変調)を使ってLEDの明るさを0〜255段階で制御し、赤・緑・青の光を混ぜて任意の色を作り出す方法を学びます。
完成イメージ
[RGBLEDがゆっくり色を変化させながら点灯している動画を挿入]
必要な部品
| 部品名 | 数量 |
|---|---|
| Arduino Uno R3 | 1 |
| RGB LED(共通カソード型) | 1 |
| 抵抗 220Ω | 3 |
| ブレッドボード | 1 |
| ジャンパー線 | 数本 |
回路図と配線
[回路図画像を挿入]
配線手順
- RGB LEDの 最も長い足(共通カソード) をGNDに接続する
- 赤色の足 を220Ω抵抗を通じてArduinoの 9番ピン(PWM) に接続する
- 緑色の足 を220Ω抵抗を通じて 10番ピン(PWM) に接続する
- 青色の足 を220Ω抵抗を通じて 11番ピン(PWM) に接続する
PWMピンとは? Arduino Unoでピン番号に「〜」マークがついているピン(3, 5, 6, 9, 10, 11)がPWM対応ピンです。
analogWrite()を使うにはPWMピンである必要があります。
Arduinoスケッチ(プログラム)
// RGB LEDでカラーフェード
const int RED_PIN = 9;
const int GREEN_PIN = 10;
const int BLUE_PIN = 11;
// RGBの値を指定して色を設定する関数
void setColor(int r, int g, int b) {
analogWrite(RED_PIN, r);
analogWrite(GREEN_PIN, g);
analogWrite(BLUE_PIN, b);
}
void setup() {
// PWMピンはsetupなしでanalogWriteを使える
}
void loop() {
setColor(255, 0, 0); // 赤
delay(500);
setColor( 0, 255, 0); // 緑
delay(500);
setColor( 0, 0, 255); // 青
delay(500);
setColor(255, 255, 0); // 黄(赤+緑)
delay(500);
setColor( 0, 255, 255); // シアン(緑+青)
delay(500);
setColor(255, 0, 255); // マゼンタ(赤+青)
delay(500);
setColor(255, 255, 255); // 白(全色)
delay(500);
}
コードのポイント解説
analogWrite(ピン番号, 値) 0(完全消灯)〜255(最大輝度)の256段階でPWM出力を制御します。digitalWriteがON/OFFの2段階なのに対し、analogWriteは細かい中間値を指定できます。
PWM(パルス幅変調)の仕組み 実際には電気をON/OFFしているのですが、その切り替えが非常に高速(約490〜980Hz)なため、人間の目には明るさが変化しているように見えます。デューティ比(ON時間の割合)を変えることで輝度を制御します。
関数の定義 void setColor(...) 繰り返し使う処理をまとめた「関数」です。自分で関数を作ることでコードを整理し、再利用しやすくなります。
動作確認
- スケッチをアップロードする
- 赤→緑→青→黄→シアン→マゼンタ→白の順に色が切り替われば成功
アレンジしてみよう setColor(r, g, b)の数値を自由に変えて好きな色を作ってみましょう。例:setColor(255, 128, 0)はオレンジ色になります。
このプロジェクトで学んだこと
- PWMとanalogWrite(): デジタルON/OFFで中間的な出力を作る仕組みを理解しました
- 光の三原色: RGB各色の強度を混ぜて任意の色を作る方法を習得しました
- 自作関数: コードをまとめて再利用する関数の定義と呼び出し方を学びました
次のプロジェクト「サーボコントロール」では、PWMを使ってモーターの角度を精密に制御します。
深掘り:技術の背景と社会への広がり
光の三原色と色覚の科学
人間の目の網膜には赤・緑・青の光に感応する3種類の錐体細胞があります。1802年にトーマス・ヤングが三原色説を提唱し、後にヘルマン・フォン・ヘルムホルツが発展させました。RGBディスプレイはこの人間の色覚特性を利用しており、三色の光を混ぜることで人間が知覚できるほぼすべての色(色域)を表現できます。あなたが今日やった色のミックスは、テレビやスマートフォンのディスプレイが1億個以上のピクセルで行っている処理と全く同じ原理です。
LEDで変わる照明デザインと都市景観
RGB LEDの普及は照明デザインの常識を変えました。従来の建物照明は白熱灯やナトリウム灯で色を変えることができませんでしたが、RGB LEDコントローラーの登場により東京タワーや東京スカイツリーのようなランドマークが季節やイベントに合わせて自在に色を変えられるようになりました。また病院では患者の気分に合わせた照明色の制御が回復を促すという研究があり、医療・ウェルネス分野でもRGB照明の活用が広がっています。
← プロジェクト06:CDSセンサー | 全プロジェクト一覧 | 次のプロジェクト:サーボコントロール →

