| HSV颜色基本概念 | 
| 使用HSV颜色控制光带 | 
HSV颜色基本概念
HSV颜色简介
HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色表达方法。该方法中的三个参数分别是:色调(H),饱和度(S),明亮度(V)。
HSV参数

色调参数取值范围为0~255。如上图所示,从红色开始按逆时针方向计算。红色为0,绿色为85,蓝色为170。
饱和度S表示颜色接近光谱色的程度。取值范围为0~255,值越大,颜色越饱和(越接近本色)。值越小,颜色越接近白色。当数值为零时,颜色为白色。
明亮度V表示颜色明亮的程度,取值范围为0~255。对于FastLED库来说,该数值越大,则控制光带的亮度越亮。反之数值越小,则控制光带的亮度越低。当数值为零时,光带完全熄灭。
使用HSV颜色控制光带
语法
			CHSV (hVal, sVal, vVal)
或
 
			CHSV HSVcolorName(hVal, sVal, vVal) 
参数
hVal – 色调数值
sVal – 饱和度数值
vVal – 明亮度数值
备注
HSVcolorName.h 代表HSVcolorName颜色的色调数值。可对其进行操作。
示例程序
| 
					 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  | 
						/*  * 通过HSV颜色控制LED光带  * 太极创客 http://www.taichi-maker.com/  * 03/15/2018  *   * =====================功能说明=====================  * 使用Arduino Uno开发板控制WS2812光带通过HSV颜色控制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 //HSV方法定义颜色   CHSV myHSVcolor(80,255,200);    //HSV方法定义颜色  myHSVcolor(色调,饱和度,明亮度) void setup() {    LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS);  // 初始化光带   FastLED.setBrightness(max_bright);                            // 设置光带亮度 } void loop () {  //  演示如何使用.h方法改变CHSV颜色的某一个数值   myHSVcolor.h++;  // 修改HSV定义颜色的单一数值                    // myHSVcolor.h为myHSVcolor的色调数值   fill_solid(leds, NUM_LEDS, myHSVcolor);      FastLED.show();             delay(10);        } // loop()  |