SSブログ

ArduinoでNeopixcel SK6812を動かす [Arduino]

今回は、Arduino・M5Stack・M5StickCでNeopixcelを動かしました。

配線

制御側
GNDーGND(黒線)
GPIO(どれか)ー制御ピン(緑線)

電源側
(モバイルバッテリー)
5V -5V(赤線)
GNDーGND(黒線)

絵は後程記載します

Adafruit_NeoPixel.hは、あらかじめライブラリーマネージャーからダウンロードしておきましょう

ソースコード
#include <M5StickC.h>
#include <Adafruit_NeoPixel.h>

#define PIN 0       //信号端子のピン番号
#define LED_NUM 50  //LEDの数

Adafruit_NeoPixel ledtape = Adafruit_NeoPixel(LED_NUM, PIN, NEO_GRB + NEO_KHZ800);  //3つめのパラメータは使うLEDテープの制御ICがWS2812ならNEO_KHZ800 / WS2811ならNEO_KHZ400

void setup() {
  M5.begin();
  ledtape.begin();
  ledtape.show();   //一旦全てOFFの状態で反映
}

void loop() {
 uint16_t i, j;

 for(j=0; j <256; j++) {
   for(i=0; i < ledtape.numPixels(); i++) {
     ledtape.setPixelColor(i, rotateColor((((i) * 256 / ledtape.numPixels()) + j) & 255));
   }
   ledtape.show();
   delay(0);
 }
}

//RGBの色の移り変わり関数
uint32_t rotateColor(byte WheelPos) {
  byte n;
  n = 10;
  
  if(WheelPos < 85) {
   return ledtape.Color((WheelPos * 3) / n, (255 - WheelPos * 3) / n, 0);
  } else if(WheelPos < 170) {
   WheelPos -= 85;
   return ledtape.Color((255 - WheelPos * 3) / n, 0, (WheelPos * 3) / n);
  } else {
   WheelPos -= 170;
   return ledtape.Color(0, (WheelPos * 3) / n, (255 - WheelPos * 3) / n);
  }
}



M5Stack・M5Stickを使うときはヘッダーを忘れずに


ポイント
明るさを暗くするには色を混ぜる量をすべて同じ比で減らす


動かすと、LEDが順番にずれながらひかっていきます


Neo.jpg
nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。