Arduino RGB LEDカラーミキサー:初心者向けDIYプロジェクト
必要な部品と材料
| 部品 | 数量 |
|---|---|
| Arduino UNO | 1 |
| RGB LED(4ピン共通カソード) | 1 |
| ロータリーポテンショメーター | 3 |
| タクトスイッチ 12mm | 1 |
| 抵抗 10kΩ(スイッチ プルアップ用) | 1 |
| 抵抗 220Ω(LED電流制限用) | 3 |
| ブレッドボード | 1 |
| ジャンパーワイヤー | 1式 |
使用ソフトウェア
- Arduino IDE
プロジェクト概要
対象読者
インタラクティブなガジェットを作りたいArduino初心者に最適。アーティスト、Web開発者、照明制御に関心がある人にも役立ちます。
動作内容
3つのポテンショメーターでRGB各色の輝度を調整し、タクトスイッチで電源ON/OFFを切り替えます。シリアルモニタにRGB値(0-255)が表示されるため、気に入った色の値を記録して再利用可能です。
配線方法
- RGB LED:PWMピン 9(青)、10(緑)、11(赤) — 各220Ω抵抗経由
- タクトスイッチ:ピン7 — 10kΩプルアップ抵抗でGND接続
- ポテンショメーター:A0(赤)、A1(緑)、A2(青)
プルアップ抵抗の仕組みは公式解説参照。
使い方
- 回路配線後、スケッチを書き込む
- スイッチを押すまでLEDは消灯
- スイッチON後、3つのツマミを回して色を混合
- 全開で白色、1色を消すと補色混合(例:赤+緑=黄)
発展アイデア
好みの色をハードコードし、追加スイッチでワンキー呼び出しする拡張が容易です。
ソースコード
int blue = 9;
int green = 10;
int red = 11;
int redPot = A0;
int greenPot = A1;
int bluePot = A2;
int greenVal = 0, blueVal = 0, redVal = 0;
const int BUTTON = 7;
int state = 0, val = 0, old_val = 0;
void setup() {
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(red, OUTPUT);
pinMode(BUTTON, INPUT);
Serial.begin(9600);
}
void loop() {
val = digitalRead(BUTTON);
if ((val == HIGH) && (old_val == LOW)) {
state = 1 - state;
delay(10);
}
old_val = val;
greenVal = analogRead(greenPot);
blueVal = analogRead(bluePot);
redVal = analogRead(redPot);
if (state == 1) {
analogWrite(green, greenVal / 4);
analogWrite(blue, blueVal / 4);
analogWrite(red, redVal / 4);
Serial.print("RGB(");
Serial.print(redVal/4); Serial.print(",");
Serial.print(greenVal/4); Serial.print(",");
Serial.print(blueVal/4); Serial.println(")");
delay(50);
} else {
analogWrite(green, 0);
analogWrite(blue, 0);
analogWrite(red, 0);
delay(50);
}
}
アナログ入力0-1023をPWM出力0-255に合わせるため4で除算。チャタリング対策に10msディレイ。
回路図
ブレッドボード配線図はSchematicsセクション参照。
製造プロセス
- 自作LUMAZOID:Arduino音楽ビジュアライザーDIYガイド
- ジェスチャー制御 RGB テーブルランプ – インタラクティブなハンズフリー照明
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
- DIY ArduinoラジオニクスEMR治療デバイスの構築
- 屋外対応DMX制御RGB LED投光器 – 低コスト・高性能・自作PCB
- Arduino RGBカラーミキサーの製作 - ステップバイステップチュートリアル
- 音楽同期LEDイルミネーションで新年を盛り上げよう – Arduino Nano + NeoPixel
- DIY LEDルーレットゲーム – Arduino Nanoで作る1人用アーケードゲーム
- Arduino駆動スマート自動駐車場システムの製作
- Arduino超音波距離センサー:HC-SR04で測定システム構築