【Arduino】 マイコン内蔵LEDの実験

LESSON 007

  Arduino でマイコン内蔵LED(WS2812B)を実行させる。

  
 マイコン内蔵LED(フルカラーシリアル ・ LEDテープライト)のWS2812Bを点灯します。
  

    

     

     

10進数 0,0,0 255,0,0 0,255,0 0,0,255 255,255,255
16進数 000000 FF0000 00FF00 0000FF FFFFFF
色名 Black Red Lime Blue White

   

  
○ WS2812Bを並列に接続され、マイコンボード側から0番の順でLEDをコントロール出来ます。

   
構成部品  マイコンボード  Arduino
      USBケーブル
      テープ型マイコン内蔵LED
      円型マイコン内蔵LED

      ジャンパーケーブル
      ブレッドボード
   

配線図

 

GPIO 11     →  DI   or  DIN  or  S
GPIO    5V         →  5V  or  +5V  or  V
GPIO GND    →  GND  or  G
    


スケッチ《 test007 》
#include <FastLED.h>
const int NUM_LEDS =10;
const int DATA_PIN =11;
CRGB leds[NUM_LEDS];
void setup() { 
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
}
void loop() { 
// ① 
leds[0] = CRGB( 255, 255, 150);
// ②
leds[1].setRGB( 0,255, 0);
// ③
leds[2].red = 0;
leds[2].green = 0;
leds[2].blue = 255;
// ④
leds[3] = leds[0];
// ⑤ 
leds[4] = 0xFF007F;
// ⑥
leds[5] = CRGB::Red; 
FastLED.show(); 
delay(2000); 
// ⑦ 
FastLED.clear();
FastLED.show(); 
delay(200); 
}
  
スケッチ の 解説

  • 設定
    #include <FastLED.h>
    マイコン内蔵LEDを制御をするためのライブラリです。マイコン内蔵LEDを動かすための命令(関数)集を呼び出し、Arduino IDEに登録する必要があります。
     ※ 追加ライブラリ
                ライブラリには3種類あります。
         ・標準ライブラリ
           Arduino IDEに標準で入っているもの
         ・追加ライブラリ
           Arduino IDEにあるが追加して使用する
         ・外部ライブラリ
           ZIP形式のライブラリをインクルードして使用する 
           自作ライブラリも含みます
     ※ モータやセンサーを使用する場合、必要に応じてライブラリを​組み込む必要があります。
     ※ Arduino IDE    に FastLED.h が インクルードされてなければ

      上記のスケッチを実行すると
        
     が表示されます。
     Arduino IDE の スケッチ > ライブラリをインクルード をクリック
     FastLED を 探して インストール
       
        
      
      ライブラリをインクルード の 項目に FastLED が表示されます。
           


    CRGB leds[NUM_LEDS];
      NUM_LEDS は LEDをコントロール数
       leds[NUM_LEDS] はLED の変数宣言
            

  • void loop() 内
    FastLED 初期化処理

      FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
     
    LED  の 色の指定

    ①   10進数で指示  赤 緑 青 を 0 ~ 255 で指示。
         leds[0] = CRGB( 255, 255, 150);
        
    ②   10進数で指示  赤 緑 青 を 0 ~ 255 で指示。   
       leds[1].setRGB( 0,255, 0);

    ③  10進数で指示 RGBを個々で管理  
          leds[2].red = 0;
          leds[2].green = 0;
          leds[2].blue = 255;
      
    ④ コピー
        leds[3] = leds[0];
      
    ⑤ 16進数で指示  赤 緑 青 を 00 ~ FF で指示。
        leds[4] = 0xFF007F;

    ⑥    色名で指示 
      leds[5] = CRGB::Red;

           
    FastLED.show();
    LEDの実行 
         
    FastLED.clear();
    全てのLEDの色データをクリアにする。
       

  • 結果   

LEDの移動
3つのLEDが移動するスケッチです。
    

配線図

  
スケッチ《 test007 ①》
#include <FastLED.h>
int i,j,LED;
int m=3;
int n=m-1;
const int NUM_LEDS =12+3;
const int DATA_PIN =11;
CRGB leds[NUM_LEDS];
void setup() { 
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
}
void loop() { 
LED = NUM_LEDS + 6;
for(i=0;i<LED;i++){
for(j=0;j<n;j++){
leds[i+j] = CRGB( 0,0,255);
FastLED.show(); 
delay(30); 
}
for(j=0;j<n;j++){
leds[i-m+j] = CRGB( 255, 0, 0);
FastLED.show(); 
delay(30); 
}
}
}
結 果

 

まとめ

〇 マイコン内蔵LED は 専用のコントローラもありますが、マイコンボードでも制御出来ます。
○ マイコン内蔵LED は 一つ一つのLED に対してコントロールが出来ます。

目次