2017年5月3日水曜日

グラデーション

//ライブラリをインクルード
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN            6   //Arduinoで使うピン
#define NUMPIXELS      1   //LEDの数。
int cnt = 0;
uint8_t LedNum1_Inc = 0;
uint8_t ChangeType = 0;
uint32_t ChangeTime;

//ライブラリのセットアップ
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  pixels.begin(); // ライブラリ使用開始
  pixels.setBrightness(255);
  ChangeTime = millis();
}

//ただ白っぽく光らせるだけ
void loop() {
  int val=0;
  if(millis() - ChangeTime > 10){ //15 second Type Change
    cnt++;
    if(cnt == 255 * 6)cnt = 0;
    ChangeType = (int)(cnt / 255);
    val = cnt % 255;
    ChangeTime = millis();
   
    switch(ChangeType){
      case 0:
        pixels.setPixelColor(LedNum1_Inc, pixels.Color(255, val, 0));
        pixels.show(); // This sends the updated pixel color to the hardware.
        break;
      case 1:
        pixels.setPixelColor(LedNum1_Inc, pixels.Color(255-val,  255, 0));
        pixels.show();
        break;
      case 2:
        pixels.setPixelColor(LedNum1_Inc, pixels.Color(0,  255, val));
        pixels.show();
        break;
      case 3:
        pixels.setPixelColor(LedNum1_Inc, pixels.Color(0,  255-val, 255));
        pixels.show();
        break;
      case 4:
        pixels.setPixelColor(LedNum1_Inc, pixels.Color(val,  0, 255));
        pixels.show();
        break;
      case 5:
        pixels.setPixelColor(LedNum1_Inc, pixels.Color(255,  0, 255-val));
        pixels.show();
        break;
    }
  }
}

0 件のコメント:

コメントを投稿