RGB LED を使ってアナログ出力を学ぼう
最近はやっている、装飾用のLEDの原理を知っていますか?
RGB LEDを使って、好きな色を作りだすことができます。これまで単色LEDを使ったことがある人は多いと思いますが、RGB LEDでは好きな色を作ることができます。Arduino を使って部屋の装飾などにも使える、LEDの使い方をここでは紹介します。また、ここでは、アナログ信号の入力の仕方から、RGB LEDの使い方までを紹介します。
1.光の3原色
光の3原色を知っていますか?
光は赤・緑・青の3つの色から構成されます。今回使用するRGB-LEDはこれら3色の個々の色の強さを制御することで、作りたい色を作りだすことができます。RGB-LEDはCATHODEと赤・緑・青の4つのリード線があります。これらに対して、Arduino のAnalog Write機能を用いて、好みの色を作り出してみましょう。
2.準備するもの
本内容を始めるため、下図の材料を準備してください。
材料はすべて、Amazonのキットで購入しましょう。
3.配線図とシミュレーション
本内容についても、Auto CAD社のTinker CADを用いてシミュレーションをしてみましょう。Tinker CADには、RGB-LEDのほかにも様々なセンサも含まれているため、試作トライをすることに非常に便利となっています。
今回のシミュレーションでは、Arduinoからアナログ信号を出力し、様々な色に変化する回路を作成します。そのため、Arduino のアナログ出力可能な、ピン(-と記載されている)ピン3をBlueの端子、ピン5をGreenの端子、ピン6をRedの端子に接続しましょう。
配線通り接続し、できましたら、下記コードを記入してください。シミュレーションを開始を押し、図のように色が変化すれば成功です。
// Define Pins define BLUE 3 define GREEN 5 define RED 6 void setup() { pinMode(RED, OUTPUT); pinMode(GREEN, OUTPUT); pinMode(BLUE, OUTPUT); digitalWrite(RED, HIGH); digitalWrite(GREEN, LOW); digitalWrite(BLUE, LOW); } // define variables int redValue; int greenValue; int blueValue; // main loop void loop() { define delayTime 1 // fading time between colors redValue = 255; // choose a value between 1 and 255 to change the color. greenValue = 0; blueValue = 0; for(int i = 0; i < 255; i += 1) // fades out red bring green full when i=255 { redValue -= 1; greenValue += 1; analogWrite(RED, redValue); analogWrite(GREEN, greenValue); delay(delayTime); } redValue = 0; greenValue = 255; blueValue = 0; for(int i = 0; i < 255; i += 1) // fades out green bring blue full when i=255 { greenValue -= 1; blueValue += 1; analogWrite(GREEN, greenValue); analogWrite(BLUE, blueValue); delay(delayTime); } redValue = 0; greenValue = 0; blueValue = 255; for(int i = 0; i < 255; i += 1) // fades out blue bring red full when i=255 { // The following code has been rearranged to match the other two similar sections blueValue -= 1; redValue += 1; analogWrite(BLUE, blueValue); analogWrite(RED, redValue); delay(delayTime); } }
シミュレーションが成功しましたら、実際にモノを作ってみましょう。
4.RGB-LED回路製作
実際に作った回路がこれになります。
上記プログラムのdelay Timeを短くすると、色が変わる速さが早くなり、長くすると、色がゆっくり変わるようなプログラムとなっています。自由にプログラムをいじって、試してみてください。