注目キーワード
  1. Photoshop
  2. Python
  3. Raspberry Pi
  4. Arduino

ArduinoとRGBフルカラーLEDを使って各色ごとの点滅制御をしてみる

ここでは「Arduino」と「RGBフルカラーLED」を複数使って各色ごとの点滅制御方法を紹介します。

 

この記事を読むことで

ArduinoでRGBフルカラーLEDを制御する方法(複数:4つ)

ゆっくりと点滅させる制御方法

赤、緑、青、白と各色ごとの制御方法

を知ることができます。

 

↓↓ 実際に、この記事で紹介するのがこちらになります。 ↓↓

led_fullcolor_arduino

6倍速ですが、赤→青→緑→白と変化しているのが分かると思います。

 

ロボットやDIYの一環として、LEDを組み込むときに使いやすいように関数化もしてあるので、是非最後までご覧ください。

それでは始めて行きましょう。

 

ArduinoでRGBフルカラーLEDを制御するための準備

まずはArduinoでRGBフルカラーLEDを制御するための準備を行っていきます。

 

開発環境と必要なもの

Arduinoで制御を行う前に、必要な物を準備しましょう。

 

RGBフルカラーLED制御に必要な物

マイコン:Arduino nano

PC:Windows 10

部品:RGBフルカラーLED、抵抗

その他:ジャンパー線、ブレッドボード

 

Arduino nanoやRGBフルカラーLEDは 「秋月電子通商」 の方で購入をしましたが、ArduinoについてはRGBフルカラーLEDを制御できるもので代用してもらって構いません。(ESP32など)

 

ArduinoとRGBフルカラーLEDの配線

必要な物の準備ができたら、さっそくArduinoとRGBフルカラーLEDを配線していきます。

 

RGBフルカラーLEDは一番短いピンが青色になるので、下図のように配線を直接はんだ付けしました。

arduino-rgbled-wire

 

RGBフルカラーLEDにはアノードコモン、カソードコモンと2種類あるので、ご持参の者がどちらかを知った上で配線を行ってください。

 

配線したRGBフルカラーLEDは以下のようにArduinoと配線をつなげます。

Arduino ⇄ RGBフルカラーLEDの配線

Digital 9 pin  ⇄ LED Red pin

Digital 10 pin ⇄ LED Green pin

Digital 11 pin ⇄ LED Blue pin

 

ArduinoとRGBフルカラーLEDを配線するとき、RGBフルカラーLEDが損傷しないように220Ωの抵抗を間に挟みます。

 

今回は複数のRGBフルカラーLEDを同時制御するため、配線を並列にして(枝分かれさせて)います。

 

これでArduinoでRGBフルカラーLEDを制御する準備が整いました。

 

ArduinoでRGBフルカラーLEDを制御する

ではArduinoでRGBフルカラーLEDを制御していきましょう。

 

RGBフルカラーLED制御プログラム

Arduino IDEを開き、以下のプログラムをコピーしましょう。

 

RGB_LED.ino

 int LED_PIN_R = 9; 
 int LED_PIN_G = 10; 
 int LED_PIN_B = 11;
 int WAIT = 10;

// function declaration
 void led_turnon();
 void led_turnoff();
 void led_blinking();
 void led_fullcolor_turnon();
 void led_fullcolor_blinking();

 void setup(){    
 }
 
 void loop(){
    led_turnon(LED_PIN_R);
    led_turnoff();
    led_blinking(LED_PIN_R);
    led_blinking(LED_PIN_G);
    led_blinking(LED_PIN_B);
    led_fullcolor_turnon();
    led_fullcolor_blinking();
 }


// select pin_num and led turnon
 void led_turnon(int pin_num){
   analogWrite(pin_num,0);
   delay(3000);
 }

// turn off all LEDs
 void led_turnoff(){
   analogWrite(LED_PIN_R,255);
   analogWrite(LED_PIN_G,255);
   analogWrite(LED_PIN_B,255);
   delay(3000);
 }

// select pin_num and blink led
 void led_blinking(int pin_num){
   for(int i=510; i>0; i--){
     analogWrite(pin_num, abs(i-255));
     delay(WAIT);
   }
 }

// turn on white color
 void led_fullcolor_turnon(){
   analogWrite(LED_PIN_R,0);
   analogWrite(LED_PIN_G,0);
   analogWrite(LED_PIN_B,0);
   delay(3000);
 }
 
// blink white color
 void led_fullcolor_blinking(){
   for(int i=510; i>0; i--){
     analogWrite(LED_PIN_R, abs(i-255));
     analogWrite(LED_PIN_G, abs(i-255));
     analogWrite(LED_PIN_B, abs(i-255));
     delay(WAIT);
   }
 }

 

ざっくりとプログラムの解説もしておきます。

 

まずは

// function declaration
 void led_turnon();
 void led_turnoff();
 void led_blinking();
 void led_fullcolor_turnon();
 void led_fullcolor_blinking();

で使用する関数5つを先に宣言します。

 

これら宣言した関数に

void setup(){    
}

void loop(){
   led_turnon(LED_PIN_R);
   led_turnoff();
   led_blinking(LED_PIN_R);
   led_blinking(LED_PIN_G);
   led_blinking(LED_PIN_B);
   led_fullcolor_turnon();
   led_fullcolor_blinking();
}

のように各ピンの変数を引数として与え、点滅を行っています。

 

例えば

// select pin_num and blink led
 void led_blinking(int pin_num){
   for(int i=510; i>0; i--){
     analogWrite(pin_num, abs(i-255));
     delay(WAIT);
   }
 }

では、pin_numピンをanalogWriteを使って変化・点滅させています。

 

今回使用したRGBフルカラーLEDがアノードコモンなので、点滅はanalogWrite第2引数が

第2引数 255:消灯

第2引数 0:点灯(明るさ最大)

となります。

カソードコモンのRGBフルカラーLEDを使用する方は値が反転するので気をつけてください。

 

Arduino IDEの「マイコンボードに書き込む」をクリックしてプログラムを書き込んだら、実際に動作確認をしてみましょう。

 

RGBフルカラーの動作確認

こちらがRGBフルカラーLEDをArduinoで複数制御した様子です。

 

LED:赤色

led_fullcolor_01

 

LED:青色

led_fullcolor_02

 

LED:緑色

led_fullcolor_03

 

LED:白色

led_fullcolor_04

 

LED:消灯/点滅時

led_fullcolor_05

 

しっかりとプログラム通りに制御できていることが確認できました。

 

RGBフルカラーLEDは配線とプログラムだけできれば、様々なロボットやDIY作品に簡単に組み込むことができるので、是非挑戦してみてください。

この記事が皆様のお役に立てば幸いです。

 

お疲れ様でした。

led_fullcolor_arduino_thubnail
学びに関する情報をチェック!