M5StackとESP32でNeoPixel互換LEDテープを点灯する

NeoPixel互換のLEDテープを入手したので、M5Stackで点灯してみました。
M5StackのGroveコネクタに接続し、AdafruitのNeoPixelライブラリを使用すれば簡単に制御できます。
M5Stack BasicのGroveコネクタで20cmのLEDテープを使用するための最小限の設定をメモしました。

M5Stack用NeoPixel互換 LEDテープ

スイッチサイエンスで買えます。実は昨日のSORACOM Discovery 2019の展示会場での販売で目にしてつい買っちゃいました。

M5Stack用NeoPixel互換 LEDテープ 20 cm スイッチサイエンス

SK6812搭載です。WS2812B互換のLEDチップだそうで、NeoPixelコンパチなLEDです。
入手したLEDテープは20cmで29個のLEDが付いていました。

M5Stackに接続する

NeoPixel互換LEDテープDに関する公式ドキュメントはこちら
M5 Stack docs: Unit RGB LED

M5StackのGroveコネクタにGroveケーブルで接続します。

点灯プログラム

Arduino IDEは v1.8.3を使用しました。

Adafruit NeoPixelライブラリのインストール

ライブラリマネージャで Adafruit NeoPixel をインストールします。 v1.2.3 でした。

サンプルプログラム

[ファイル] – [スケッチ例] – [カスタムライブラリのスケッチ例] -[Adafruit] – [Simple] を開くと
LEDを順に16個まで500msec間隔で緑色に点灯するサンプルです。

こちらはM5StackのGroveコネクタで使用する場合は PIN を 21 に変更します
NUMPIXELS もLEDの数に合わせて変更します。


#define PIN        6 // On Trinket or Gemma, suggest changing this to 1

#define NUMPIXELS 16 // Popular NeoPixel ring size

指定した番号のLEDを0-255のRGB値で点灯する命令がこちら。緑色に点灯しています。

// pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(0, 150, 0));

RGBの順に点灯するプログラム

せっかくなので、3色で順に点灯させてみました。

#include <Adafruit_NeoPixel.h>

#define PIN        21  // M5Stack Grobe Pin
#define NUMPIXELS  30  // Enough for 29 LEDs
#define DELAYVAL  100  // Time (in milliseconds) to pause between pixels
// RGB config
int led_color[3][3] ={{10,0,0},{0,10,0},{0,0,10}};

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  pixels.begin();
}

void loop() {
  pixels.clear();

  for(int i=0; i<NUMPIXELS; i++) {
    int rgb = i%3;
    pixels.setPixelColor(i, pixels.Color(led_color[rgb][0],led_color[rgb][1],led_color[rgb][2]));
    pixels.show();
    delay(DELAYVAL);
  }
}

点灯実行

無事RGBの順に点灯しました。

タイミングや調光調色をプログラムすれば色々楽しめそうです。

ESP32の場合

(2019-07-09 追記)
ESP32-DevKitCでも点灯しました。当たり前ですが。
上のプログラムそのままでESP32用にビルドすればOK。

Arduino IDE設定

ボード:“ESP32 Dev Module”を指定します。

ESP32-DevKitCとの接続

テープLED G – Grove黒 – ESP32 GND
テープLED + – Grove赤 – ESP32 3.3V
テープLED S – Grove白 – ESP32 IO21
上記のプログラムをそのまま使うために同じIO21 pin に接続します。

コメントを残す

メールアドレスが公開されることはありません。

twenty + 2 =