はじめに
RGB LEDでカラフルな光のエフェクトを作りたいと思ったことはありませんか?しかし、手元に部品がないという方もご安心ください。Velxioを使えば、ブラウザ上で回路全体とコードをシミュレーションできます。このチュートリアルでは、赤、緑、青、黄、シアン、マゼンタ、白を順番に表示するシンプルなRGB LEDカラーサイクラーを構築します。PWM(パルス幅変調)を使って色を混ぜる方法と、カソードコモン型RGB LEDをArduino Unoに配線する方法を学びます。
回路の解説
まず、Velxioのキャンバスに部品を配置しましょう。必要なのはArduino UnoとRGB LEDです。RGB LEDには4本のピンがあります:1本のコモンカソード(COM)と、赤(R)、緑(G)、青(B)の3本のアノードです。

配線は以下の通りです:
- RGB LEDのRピンをArduinoの9番ピンに接続(赤色のワイヤー)。
- Gピンを10番ピンに接続(緑色のワイヤー)。
- Bピンを11番ピンに接続(青色のワイヤー)。
- COMピンをArduinoのGNDに接続(黒色のワイヤー)。
Velxioでは、ピンからピンへワイヤーをドラッグできます。シミュレーション内のワイヤーの色はピンの機能に合わせてあります:赤は赤、緑は緑、青は青、黒はグラウンドです。これにより、接続を簡単に追跡できます。
コードの解説
それではArduinoスケッチを書いてみましょう。Velxioのコードエディタを開き、以下を入力します:

// RGB LED Color Cycling
// Display different colors
const int RED_PIN = 9;
const int GREEN_PIN = 10;
const int BLUE_PIN = 11;
void setup() {
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
void setColor(int red, int green, int blue) {
analogWrite(RED_PIN, red);
analogWrite(GREEN_PIN, green);
analogWrite(BLUE_PIN, blue);
}
void loop() {
// Red
setColor(255, 0, 0);
delay(1000);
// Green
setColor(0, 255, 0);
delay(1000);
// Blue
setColor(0, 0, 255);
delay(1000);
// Yellow
setColor(255, 255, 0);
delay(1000);
// Cyan
setColor(0, 255, 255);
delay(1000);
// Magenta
setColor(255, 0, 255);
delay(1000);
// White
setColor(255, 255, 255);
delay(1000);
}
動作の仕組み
- ピン定義:3つのPWMピン用に定数を定義します:
RED_PIN = 9、GREEN_PIN = 10、BLUE_PIN = 11。これらのピンはPWM出力用のanalogWrite()をサポートします。 - setup():3つのピンをすべて出力に設定します。
- setColor():赤、緑、青の3つの値(0~255)を受け取り、
analogWrite()を使ってそれぞれのピンに書き込むヘルパー関数です。これにより0~5Vの電圧が生成され、LEDの明るさを制御します。 - loop():異なる組み合わせで
setColor()を呼び出し、色を生成します。各色は1秒間(delay(1000))表示されます。
重要な概念
PWM(パルス幅変調)
PWMは、デジタルピンを高速にHIGHとLOWの間で切り替えてアナログ電圧を模倣する技術です。デューティサイクル(HIGHの時間の割合)が知覚される明るさを決定します。ArduinoのanalogWrite()は、9、10、11番ピンで約490Hzの周波数のPWM信号を出力します。
RGBカラーミキシング
RGB LEDは、1つのパッケージに3つの独立したLED(赤、緑、青)を含んでいます。それぞれの明るさを変えることで、数百万色を作り出すことができます。例えば:
- 赤 + 緑 = 黄
- 緑 + 青 = シアン
- 赤 + 青 = マゼンタ
- 赤 + 緑 + 青 = 白
カソードコモン vs アノードコモン
このチュートリアルでは、COMピンがグラウンドに接続されたカソードコモン型RGB LEDを使用しています。色を点灯させるには、そのアノードにHIGH信号を印加します。アノードコモン型LEDの場合は、COMをVCCに接続し、反転ロジック(LOWで点灯)を使用します。
よくある落とし穴とデバッグのヒント
- ピン番号の間違い:R、G、Bのピンが正しいArduinoピン(9、10、11)に接続されているか再確認してください。ワイヤーを間違えると、正しい色が表示されません。
- グラウンドの欠落:COMピンはGNDに接続する必要があります。接続がないとLEDは点灯しません。
- PWMとデジタルの違い:
analogWrite()はPWM対応ピン(Unoでは~マーク付き)でのみ動作します。非PWMピンを使用すると、完全なオン/オフのみになります。 - delayのタイミング:
delay(1000)はプログラム全体を一時停止します。より応答性の高いプロジェクトには、非ブロッキングタイミングのためにmillis()の使用を検討してください。 - シミュレーターの問題:LEDが点灯しない場合は、Velxioの配線を確認してください。キャンバスツールバーを使ってズームインし、接続を確認します。


推奨される拡張機能
基本的なカラーサイクラーが動作したら、以下の拡張を試してみてください:
- 色間のフェード:ジャンプする代わりに、ループを使ってPWM値を徐々に変化させ、スムーズな遷移を実現します。
- ボタン制御:プッシュボタンを追加して、手動で色を切り替えます。
- ポテンショメータ入力:ポテンショメータを使ってパレットから色を選択します。
- シリアル制御:シリアルモニターから色の値を送信して、カスタムカラーを設定します。
- 複数LED:複数のRGB LEDをチェーン接続して、ライトショーを実現します。
新しい部品を追加するには、部品ピッカーを使用します:

追加のライブラリが必要な場合は、ライブラリマネージャーで簡単に管理できます:

行動を促すフレーズ
実際に動作を見てみませんか?Velxioでライブサンプルを開いて、実験を始めましょう:VelxioでRGB LEDカラーサイクリング。ダウンロードもハードウェアも不要 – 純粋な学習体験をお届けします。楽しい工作を!