/*
* fillPalette-3
* 太极创客 http://www.taichi-maker.com/
* 03/01/2018
*
* =====================功能说明=====================
* 使用Arduino Uno开发板通过FASTLED库控制WS2812光带。
* 使用fill_palette函数通过用户自定义色板点亮LED光带。
*
* 本示例程序需要Arduino第三方库FastLED。如有需要,可通过以下链接下载该库:
* http://www.taichi-maker.com/homepage/download/#library-download
*
* 如需了解如何为Arduino IDE安装第三方库,请参见以下链接地址的视频教程:
* http://www.taichi-maker.com/homepage/reference-index/arduino-library-index/install-arduino-library/
*
* =====================电路连接======================
* 此示例程序中,Arduino输出控制信号引脚为9号引脚。
*
* 如需获得详细电路连接说明图,请参阅太极创客网站中
* 有关WS2812 LED光带方面的相关内容,太极创客网站地址:
*
* http://www.taichi-maker.com/homepage/reference-index/arduino-library-index/fastled-library/
*
* 此示例程序为配合太极创客制作的
* 《零基础入门学用ARDUINO教程-智能应用篇》使用
*/
#include "FastLED.h" // 此示例程序需要使用FastLED库
#define NUM_LEDS 8 // LED灯珠数量
#define LED_DT D6 // Arduino输出控制信号引脚
#define LED_TYPE WS2812 // LED灯带型号
#define COLOR_ORDER GRB // RGB灯珠中红色、绿色、蓝色LED的排列顺序
uint8_t max_bright = 128; // LED亮度控制变量,可使用数值为 0 ~ 255, 数值越大则光带亮度越高
CRGB leds[NUM_LEDS]; // 建立光带leds
CRGBPalette16 myColorPalette = CRGBPalette16(
CRGB::Green, CRGB::Green, CRGB::Black, CRGB::Black,
// 0-15 GREEN, 16-31 GREEN, 32-47 Black, 48-63 Black,
CRGB::Purple, CRGB::Purple, CRGB::Black, CRGB::Black,
// 64-79 Purple, 80-95 Purple, 96-111 Black, 112-127 Black,
CRGB::Green, CRGB::Green, CRGB::Black, CRGB::Black,
// 128-143 Green,144-159 Green, 160-175 Black,176-191 Black,
CRGB::Purple, CRGB::Purple, CRGB::Black, CRGB::Black );
// 192-207 Purple,208-223 Purple,224-239 Black,240-255 Black
CHSVPalette16 myHSVColorPalette = CHSVPalette16 (
CHSV(0, 255, 200), CHSV(15, 255, 200), CHSV(31, 255, 200), CHSV(47, 255, 200),
CHSV(0, 255, 0), CHSV(15, 255, 0), CHSV(31, 255, 0), CHSV(47, 255, 0),
CHSV(0, 255, 200), CHSV(15, 255, 200), CHSV(31, 255, 200), CHSV(47, 255, 200),
CHSV(0, 0, 200), CHSV(15, 0, 200), CHSV(31, 0, 200), CHSV(47, 0, 200));
const TProgmemPalette16 myProgmemPalette PROGMEM = {
CRGB(255, 106, 0), CRGB::Gray, CRGB::Blue, CRGB::Black,
CRGB::Red, CRGB::Gray, CRGB::Blue, CRGB::Black,
CRGB::Red, CRGB::Red, CRGB::Gray, CRGB::Gray,
CRGB(0, 34, 255), CRGB::Blue, CRGB::Black, CRGB::Black };
uint8_t colorIndex;
void setup() {
LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(max_bright);
}
void loop () {
colorIndex++;
fill_palette (leds, NUM_LEDS, colorIndex, 3, LavaColors_p , 100, LINEARBLEND );
//fill_palette (led名称, 光珠数字, 起始颜色序号, 光珠间颜色差, palette色盘名, 亮度, TBlendType blendType)
//fill_palette (leds, NUM_LEDS, colorIndex, 8, myHSVColorPalette, 255, LINEARBLEND );
//fill_palette (leds, NUM_LEDS, colorIndex, 8, myProgmemPalette, 255, LINEARBLEND );
FastLED.show();
delay(25);
}
/* FastLED系统预设色板
CloudColors_p
LavaColors_p
OceanColors_p
ForestColors_p
RainbowColors_p
RainbowStripeColors_p
PartyColors_p
HeatColors_p
*/