下手の横好きのスクラップブック!!

下手の横好きの、いろいろな記録です。
電子工作・PIC・Arduino・太陽光発電・写真などetc

Arduino RGB3色フルカラーLEDを3色順次点灯させる

2010-11-29 | Arduino

RGB3色フルカラーLEDは「光の3原色」赤、緑、青を組み合わせることで、多彩な色の発光ができるものです。
各色の明るさは各LEDの電流を調整することで変えることができます。
自然な白色は、赤(3):緑(7):青(1)の割合になります。
使用する注意点としては、1パックに3個のLEDが入っているので1個当たりの消費電力は1/3になります。
全体の消費電力が200mwですので、1個あたりは余裕を見て50mw程度になります。

ArduinoにはPWM(Pulse Width Modulation)機能を使って、出力を変えるanalogWriteが用意されています。
analogWriteは 0から255までの256段階を連続的に変化させることができます。
これを使ってLEDの電流を変化させ明るさを変えます。
analogWriteが使えるピンは、デジタル入出力ピンの内DIGITAL(PWM~)の表示がある
D3,D5,D6,D9,D10,D11の6つのピンのみで、今回はD9からD11までを使います。

接続図

スケッチ

/*RGB3色LEDを各色順番に点灯
点灯はフェードイン/フェードアウトで行う
*/

int ledr = 9;  //ピン9LED赤を接続
int ledb = 10;  //ピン10LED青を接続
int ledg = 11;  //ピン11LED緑を接続

void setup () {
}
//セットアップはなし
void loop () {
  //色の選択 0 = 赤: 1 = 青: 2 = 緑
  for(int j = 0; j <= 2; j++) {
    if( j == 0) {
      //赤をフェードインで点灯
      for(int i = 0; i <= 255; i += 5) {
        analogWrite(ledr,i);
        delay(30);
      }
      //赤をフェードアウトで消灯
       for(int i = 255; i >= 0; i -= 5) {
        analogWrite(ledr,i);
        delay(30);
       }
      //色の選択 0 = 赤: 1 = 青: 2 = 緑 
     }else if( j == 1) {
        //青をフェードインで点灯
       for(int i = 0; i <= 255; i += 5) {
        analogWrite(ledb,i);
        delay(30);
      }
       //青をフェードアウトで消灯
       for(int i = 255; i >= 0; i -= 5) {
        analogWrite(ledb,i);
        delay(30);
       }
    } else {
       //緑をフェードインで点灯
       for(int i = 0; i <= 255; i += 5) {
        analogWrite(ledg,i);
        delay(30);
      }
       //をフェードアウトで消灯
       for(int i = 255; i >= 0; i -= 5) {
        analogWrite(ledg,i);
        delay(30);
       }
    }
  }
}

完成ボード

         

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Arduino 14個のLEDを連... | トップ | 我が家の太陽光発電  20... »
最新の画像もっと見る

コメントを投稿

Arduino」カテゴリの最新記事