超簡単! 電子工作教室「光を自在に操ろう!」フルカラーLED

アフィリエイト広告を利用しています
arduino
FullColorLED

LEDは普通、足が2本しかなくて、決まった色しか光りませんが、フルカラーLEDには足が4本もあって、いろんな色を自在に光らせることができます。

4本も足があるのには、訳があって、中に3つのLEDの光るチップが入っていて、LEDのプラス側かLEDのマイナス側がひとまとめになっているからです。

LEDのプラス側がひとまとめになっていることをアノードコモン、マイナス側がひとまとめになっていることをカソードコモンと呼びます。共通(コモン)となっているピンが一番長いやつです。

5mmRGBフルカラーLEDは大手電子部品通販会社で1個50円(税込み送料別)ほどで販売中

今回使うフルカラーLEDはカソードコモンで、マイナス側が1つのピンにまとめてつながっています。他のピンはのプラスになっています。 赤(RED)緑(GREEN)青(BLUE)の三色が入っているLEDなのでRGB LEDとも言います。

光の三原色は発光で見える色です。光の三原色はRGB赤Red緑Green青Blue)で作られる色で、混ざると明るくなり白に近づいていく混色方法です。加法混色と呼ばれています。テレビ画面やパソコンのモニター、電飾看板やライトなどそのもの自身が発光しているものは光の三原色で色が作られています。

色の三原色は光が当たり反射して見える色です。色の三原色はCMYシアンcyanマゼンタmagentaイエローyellow)で作られる色で、混ざると暗くなり黒に近づいていく混色方法です。減法混色と呼ばれています。理論的にはこの3色を同じ割合で混ぜると黒になりますが実際にはすごく濃い茶色が精一杯です。塗られた紙や物に光が当たって反射して見える色です。本やチラシなど印刷で出されるものは色の三原色+黒で作られています。(

光は、電磁波の一種だといわれています。テレビやラジオの放送、携帯電話の通信に使われる「電波」などと同様に、 LEDの光も「電磁波の一種」なのです。

フルカラーLEDを使った回路を作って光らせてみましょう

●準備するもの

  • フルカラーLED(カソードコモン): 1個 
  • 抵抗330Ω: 3個
  • タクトスイッチ: 3個
  • 電池ボックス(単三×2): 1個
  • 単三乾電池: 2個
  • 短いジャンパー線: 6本程
準備するもの

ブレッドボードに次の回路を組んでみましょう。

タクトスイッチを押すと光る!

タクトスイッチをひとつづつ、押してフルカラーLEDを点灯させてみます。

とそれぞれ光りました。では、タクトスイッチを複数同時に押して、色を混ぜてみましょう。赤と緑で黄色、赤と青で紫(マゼンタ)緑と青で水色(シアン)となります。3つ同時だと白になりますね。でも小さく別々で光ってるんですよね。すっごく眩しいので、気を付けてください。抵抗を大きいものに変えるか、乳白色タイプのFullColorLEDを選んでください。

次に、自動で色が変化するように、コントロールしてみましょう。 

下図のように回路を組み替えます。

●準備するもの

  • Arduino UNO本体: 1個   
  • ブレッドボード: 1枚   
  • フルカラーLED: 1個 
  • 抵抗 10KΩ(眩しいので変更します): 3個   
  • 短いジャンパー線: 8本程
準備するもの

下図のように回路を組み替えます。

FullColorLED実験セットに組み替えました。

では、さっそく光らせてみましょう。パソコンでarduinoのスケッチを書いてマイコンArduinoに書き込みをしましす。以下にコードを書いておきます。

 void setup() {
pinMode( 9,OUTPUT) ; // 赤LED接続のピン(9番)をデジタル出力に設定
pinMode(10,OUTPUT) ; // 青LED接続のピン(10番)をデジタル出力に設定
pinMode(11,OUTPUT) ; // 緑LED接続のピン(11番)をデジタル出力に設定
}

void loop() {
digitalWrite( 9,HIGH) ; // 赤LEDを点灯
digitalWrite(10,LOW) ;
delay(500) ;
digitalWrite(11,HIGH) ; // 緑LEDを点灯
digitalWrite( 9,LOW) ;
delay(500) ;
digitalWrite(10,HIGH) ; // 青LEDを点灯
digitalWrite(11,LOW) ;
delay(500) ;
}
赤・青・緑

では、次に徐々に色が変わっていくタイプに変更してみます。スケッチは以下です。


int rled = 9; //rled(red ledの略) という名の変数を用意する(rled=9)
int bled = 10; //bled(blue ledの略) という名の変数を用意する(bled=10)
int gled = 11; //gled(green ledの略) という名の変数を用意する(gled=11)

void setup(){
pinMode(rled, OUTPUT); //9番のピン(rled=9)を出力に設定する
pinMode(gled, OUTPUT); //10番のピン(gled=10)を出力に設定する
pinMode(bled, OUTPUT); //11番のピン(bled=11)を出力に設定する
}

void loop(){ //新たに変数「i」を用意し、for文でo(初期値)
for(int i = 0; i < 255; i++){ //for文で0〜255の範囲で変数「i」を1ずつ加算する
analogWrite(rled, i); //digitalWriteからanalogWriteに変更し出力
//analogに出力する値を0〜255の範囲で指定できる
delay(10);
}
for(int i = 0; i < 255; i++){
analogWrite(gled, i);
delay(10);
}
for(int i = 0; i < 255; i++){
analogWrite(bled, i);
delay(10);
}
}

よ~く見ないとわかりませんが、徐々に色が混じりあって赤-マゼンタ-青-シアン-緑-黄色-オレンジと七色に変化しています。

徐々に変化

いやぁ~うっとりしちゃいますねぇ。

しかし、最近のクリスマスイルミネーションなどの電飾はとても大がかりで、きらびやかで、色の変化も芸術的になっていますね。

ショーアップされたイルミネーションがあちこちの公園などで通年開催されるようになりました。

ゆっくりと訪れてみたいものです。