fillPalette函数使用色板将LED光带设置为渐变色。
用法
fill_palette (leds, 30, 0, 8, OceanColors_p, 255, LINEARBLEND )
以上语句将leds光带的从头数30个灯珠设置为渐变色。渐变色的色彩全部来自FastLED预设色板OceanColors_p。灯带头部第一个灯珠的色板色彩序号为0,相邻的两个灯珠见色板色彩序列号差8。色彩过渡为线性过渡效果。
fill_palette(leds+5, 15, 31, 5, ForestColors_p, 255, LINEARBLEND );
以上语句将leds光带从头数的第6个灯带开始15个灯珠设置为渐变色。渐变色的色彩全部来自FastLED预设色板ForestColors_p。起始色板色彩序号为31,相邻的两个灯珠见色板色彩序列号差5。色彩过渡为线性过渡效果。
如需了解更多FastLED库色板的知识,请点击这里。
示例程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
/* * fillPalette * 太极创客 http://www.taichi-maker.com/ * 03/01/2018 * * =====================功能说明===================== * 使用Arduino Uno开发板通过FastLED库控制WS2812光带。 * fillPalette库函数使用说明。 * * 本示例程序需要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 * * 此示例程序为配合太极创客制作的 * 《零基础入门学用ARDUINO教程-智能应用篇》使用 */ /* * fillPalette-4 * 太极创客 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 * * 此示例程序为配合太极创客制作的 * 《零基础入门学用ARDUINO教程-智能应用篇》使用 */ #include "FastLED.h" // 此示例程序需要使用FastLED库 #define NUM_LEDS 30 // LED灯珠数量 #define LED_DT 9 // 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( //用户自定义RGB色板 CRGB::Green, CRGB::Green, CRGB::Black, CRGB::Black, CRGB::Purple, CRGB::Purple, CRGB::Black, CRGB::Black, CRGB::Green, CRGB::Green, CRGB::Black, CRGB::Black, CRGB::Purple, CRGB::Purple, CRGB::Black, CRGB::Black ); CHSVPalette16 myHSVColorPalette = CHSVPalette16 ( //用户自定义HSV色板 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 = { //用户自定义PROGMEM色板 CRGB::Red, CRGB::Gray, CRGB::Blue, CRGB::Black, CRGB::Red, CRGB::Gray, CRGB::Blue, CRGB::Black, CRGB::Red, CRGB::Red, CRGB::Gray, CRGB::Gray, CRGB::Blue, 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 () { fill_palette (leds, NUM_LEDS, 128, 8, myProgmemPalette, 255, LINEARBLEND ); //fill_palette (led名称, 光珠数字, 起始颜色序号, 光珠间颜色差, palette色盘名, 亮度, TBlendType blendType) //fill_palette (leds, NUM_LEDS, 128, 8, myColorPalette, 255, LINEARBLEND ); //fill_palette (leds, NUM_LEDS, 128, 8, myHSVColorPalette, 255, LINEARBLEND ); FastLED.show(); delay(25); } |