Arduino フルカラーLEDを光らせる(NEOPIXEL)

このチュートリアルは武蔵野美術大学通信教育課程授業用に作成したものです。

今回はフルカラーLEDの中でもライブラリーを使うことで、少ない配線で制御が簡単なNeoPixelというシリアル通信タイプのフルカラーLEDを使用します。

9564ab6c-79c5-4572-83a7-218b1a59af2b

配線

NeoPixelは5V,GND,信号線の3つの配線を行うだけで良いのでとてもシンプルです。

スクリーンショット 2019-11-12 13.24.45

フルカラーシリアルLEDは、製品によって、5V,GND,シリアルの順番が違うものがあります。製品をよく確認してみてください。また、LEDの数が多いものはArduino の5Vからでは電力が足りず、光らない場合があります。その場合は別途DC5Vのアダプターを追加してください。

プログラム

Arduinoのプログラムについて、今回は簡単に駆動できる「Adafruit Neo Pixel」「FastLED」ライブラリーを利用します。ライブラリーのインクルードからインストールしておいてください。

ライブラリのインストール方法はこちら

▼色相環が回転するように色が移り変わるプログラムです。FastLEDライブラリを利用すると、RGBの色指定だけでなく、こういったHSBで光を制御できます。

#include <FastLED.h>
#define NUM_LEDS 4
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
////////////////////////////////////////////////////////////
void setup() {
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
  LEDS.setBrightness(84);
}
////////////////////////////////////////////////////////////
void loop() {
  for (int hue = 0; hue < 255; hue++) {
    for (int i = 0; i < NUM_LEDS; i++) {
      leds[i] = CHSV(hue, 255, 255);
      FastLED.show();
    }
    delay(10);
  }
}

「NUM_LEDS 4」はLEDの数を指定しています4個のサンプルのため「4」にしていますが、数が多い場合は調整してください。
「FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);」でLEDの数やデータピン、型式の指定をおこなっています
「CHSV(hue, 255, 255);」でHSV方式(色相、彩度、輝度)の指定をして「FastLED.show();」で点灯しているという構成になります。