基础函数
FastLED.addLeds<WS2812,LED_PIN,GRB>(leds , NUM_LEDS)
初始化LED控制光带
WS2812:控制灯珠的类型
LED_PIN:控制板上使用的IO端口
GRB:色彩类型
leds:光带
NUM_LEDS:灯珠的总数量
FastLED.show();
刷新灯的色彩显示
FastLED.clear();
将所有灯熄灭
FastLED.setBrightness(30)
设置灯带亮度,最大为255
fill_solid(leds, 30, CRGB::Red)
将leds光带的从头数前30个灯珠设置为红色
leds:光带
30:从起始位置开始算的数量
CRGB::Red:设置的颜色值
fill_solid(leds+5, 3, CRGB::Red)
设置leds光带从头数第6个光珠到后面3个光珠颜色为红色
fill_rainbow(leds, 30, beginHue, deltaHue)
将leds光带的从头数30个灯珠设置为渐变彩虹色
leds:光带
30:从起始位置开始算的数量
beginHue:彩虹色的其实色调值,最大为255
deltaHue:相邻灯珠的色调差,最大为255
fill_rainbow(leds+5, 30, beginHue, deltaHue)
设置leds光带从头数第6个光珠到后面的30个光珠颜色的彩虹色
fill_gradient_RGB(leds, 0, CRGB::Red, 29, CRGB::Blue)
将leds光带的从头数30个灯珠设置为渐变色
leds:光带
0:开始的灯珠编号
CRGB::Red:开始的颜色
29:最后一个灯珠的编号
CRGB::Blue:结束的颜色
fill_gradient(leds, 0, CHSV(50, 255,255) , 29, CHSV(150,255,255), SHORTEST_HUES)
CHSV(50, 255,255):起始色彩,HSV格式
CHSV(150,255,255):结束色彩
SHORTEST_HUES:采用短色过渡方式,两个颜色值之间最短的颜色过渡
fill_gradient(leds, 0, CHSV(50, 255,255) , 29, CHSV(150,255,255),LONGEST_HUES)
LONGEST_HUES:采用长色过渡方式,两个颜色值之间最长的颜色过渡
注意:使用SHORTEST_HUES和LONGEST_HUES的时候必须采用CHVS方式填色
fill_palette (leds, 30, 0, 8, OceanColors_p, 255, LINEARBLEND);
将leds光带的从头数30个灯珠设置为渐变色。渐变色的色彩全部来自FastLED预设色板OceanColors_p
leds:灯带
30:从起始位置开始算的数量
0:灯带头部第一个灯珠的色板色彩序号
8:相邻两个灯珠见色板色彩需要相差8
OceanColors_p:预设色板
255:亮度最高255
LINEARBLEND:线性过渡效果
fill_palette (leds+5, 15, 31, 5, OceanColors_p, 255, LINEARBLEND);
设置光带开头第6个灯珠到后面的15个灯珠为OceanColors_p色板所设定的颜色,颜色编号从第31开始,间隔5的线性渐变
预设色板有:CloudColors_p、LavaColors_p、OceanColors_p、ForestColors_p、RainbowColors_p、RainbowStripeColors_p、PartyColors_p、HeatColors_p
灯的操作
leds[dot] = CRGB::Blue
将某个LED设置为指定颜色
leds[dot].r=128
将灯的r,g,b颜色进行分别设置,最大为255
leds[0] = ColorFromPalette( RainbowColors_p, 0, 128, LINEARBLEND)
将灯带中第一个灯珠的颜色设置为RainbowColors_p色板指定的颜色
RainbowColors_p:使用色板
0:颜色序号
128:亮度
LINEARBLEND:线性渐变