当前位置: 首页 > news >正文

如何在阿里云上做网站备案做刷网站怎么赚钱

如何在阿里云上做网站备案,做刷网站怎么赚钱,全网推广公司,mui做网站重要的内容写在前面#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后#xff0c;整体感觉是很好的#xff0c;如果有条件的可以先学习一些相关课程#xff0c;学起来会更加轻松#xff0c;相关课程有数字电路…重要的内容写在前面 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后整体感觉是很好的如果有条件的可以先学习一些相关课程学起来会更加轻松相关课程有数字电路强烈推荐先学数电不然可能会有一些地方理解起来很困难、模拟电路等然后就是C注意C是必学的。文章中的代码都是跟着老师边学边敲的不过比起老师的版本我还把注释写得详细了些并且个人认为重要的地方都有详细的分析。一些函数的介绍有参考太极创客官网给出的中文翻译为了便于现查现用把个人认为重要的部分粘贴了过来并做了一些修改。如有错漏欢迎指正。 视频链接3-0 本章介绍_哔哩哔哩_bilibili 太极创客官网太极创客 – Arduino, ESP8266物联网的应用、开发和学习资料 三、LED灯带 1、FastLED库的安装 需要说明的是在后面FastLED库的介绍中并不会详细介绍FastLED库的全部函数仅展示部分函数的基本使用方法另外不必深究一些弄不清的语法。 2、WS2812 LED灯带 1配合RGB-LED控制芯片Arduino只需一个数字输入/输出引脚即可控制一个RGB-LED如果将若干个RGB-LED控制芯片串联那么Arduino只需一个数字输入/输出引脚即可控制若干个RGB-LED。 2将RGB-LED控制芯片与RGB-LED集成在一起就是数字RGB-LED虽然它与普通的RGB-LED一样有四个引脚但二者的功能却不一样数字RGB-LED的引脚功能取决于集成在它内部的芯片型号。下图所示的是WS2812(B) LED示意图图中未说明的两个引脚较短的一个接5V电源较长的一个接GND灯带中灯珠的供电电路连接方式为并联控制信号电路的连接方式为串联每一个WS2812 LED灯珠需60mA的电流才能达到最大亮度。 3下图所示的是WS2812(B) LED灯带实物。当不需要太长的灯带时可以沿着灯带上的切割线有一个剪刀图标进行剪裁然后自行在裁剪处焊接插针不会影响灯带的正常使用。 3、使用Arduino控制LED灯带的电路 1开发时的Arduino控制LED电路如下图所示。 2使用时的Arduino控制LED电路当USB未连接电脑时Arduino可通过5V引脚由电源模块进行供电如下图所示。 4、FastLED库使用——基本点灯操作 1单个灯珠闪烁 #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255数值越大光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象不必纠结C语法 FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop() { leds[0] CRGB::Red;  //设置灯带中第一个灯珠颜色为红色leds[0]为第一个灯珠leds[1]为第二个灯珠FastLED.show();           //更新LED色彩delay(500);               //等待500毫秒leds[0] CRGB::Black; //设置灯带中第一个灯珠颜色为黑色leds[0]为第一个灯珠leds[1]为第二个灯珠FastLED.show();           //更新LED色彩delay(500);               //等待500毫秒   } ①首先使用addLeds函数对灯带数组leds进行初始化其中尖括号中的参数依次是灯带型号、输出灯带控制信号的Arduino引脚号、RGB灯珠中红绿蓝三种颜色的LED排列顺序小括号中的参数依次是灯珠对象数组和灯珠数量然后使用setBrightness函数设置灯带亮度这个函数的作用不是点灯而是设置当灯被点亮后的亮度参数。 ②颜色参数的表示方式为“CRGB::颜色名”Black表示熄灭灯珠可以直接将颜色参数赋值给灯珠对象然后使用show函数更新灯带的显示。 ③对于灯珠对象数组leds[0]控制灯带的第一个灯珠leds[1]控制灯带的第二个灯珠以此类推通过反复让leds[0]在红色和黑色之间徘徊可实现第一个灯珠闪烁的效果。 2一个光点顺着灯带“运动” #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop() { //依次点亮和熄灭灯带中灯珠产生光点移动效果for (int i 0; i NUM_LEDS; i) {leds[i] CRGB::Red;FastLED.show();     //第i个灯珠显示红色delay(50);leds[i] CRGB::Black;FastLED.show();     //第i个灯珠熄灭delay(50);    }delay(500); } ①首先使用addLeds函数对灯带数组leds进行初始化其中尖括号中的参数依次是灯带型号、输出灯带控制信号的Arduino引脚号、RGB灯珠中红绿蓝三种颜色的LED排列顺序小括号中的参数依次是灯珠对象数组和灯珠数量然后使用setBrightness函数设置灯带亮度这个函数的作用不是点灯而是设置当灯被点亮后的亮度参数。 ②颜色参数的表示方式为“CRGB::颜色名”Black表示熄灭灯珠可以直接将颜色参数赋值给灯珠对象然后使用show函数更新灯带的显示。 ③对于灯珠对象数组leds[0]控制灯带的第一个灯珠leds[1]控制灯带的第二个灯珠以此类推使用for循环顺序遍历leds数组每轮循环都仅控制一个灯珠的亮灭由此可以实现依次点亮和熄灭灯带中灯珠产生“光点移动”效果。 3一个变色的光点顺着灯带“运动” #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop() { //依次使用不同色彩点亮单个LED灯珠for (int i 0; i NUM_LEDS; i) {leds[i] CRGB::Red;FastLED.show();     //第i个灯珠显示红色delay(20);leds[i] CRGB::Green;FastLED.show();     //第i个灯珠显示绿色delay(20);   leds[i] CRGB::Blue;FastLED.show();     //第i个灯珠显示蓝色delay(20);      leds[i] CRGB::Black;FastLED.show();     //第i个灯珠熄灭delay(20);    }delay(500); } ①首先使用addLeds函数对灯带数组leds进行初始化其中尖括号中的参数依次是灯带型号、输出灯带控制信号的Arduino引脚号、RGB灯珠中红绿蓝三种颜色的LED排列顺序小括号中的参数依次是灯珠对象数组和灯珠数量然后使用setBrightness函数设置灯带亮度这个函数的作用不是点灯而是设置当灯被点亮后的亮度参数。 ②颜色参数的表示方式为“CRGB::颜色名”Black表示熄灭灯珠可以直接将颜色参数赋值给灯珠对象然后使用show函数更新灯带的显示。 ③对于灯珠对象数组leds[0]控制灯带的第一个灯珠leds[1]控制灯带的第二个灯珠以此类推使用for循环顺序遍历leds数组每轮循环都仅控制一个灯珠多次变色由此可以实现变色光点在灯带上“移动”的效果。 4三个连续的变色光点顺着灯带“运动” #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop() { //依次使用不同色彩点亮多个连续的LED灯珠for (int i 0; i NUM_LEDS; i) {leds[i-1] CRGB::Red;   //第i-1个灯珠显示红色leds[i] CRGB::Red;     //第i个灯珠显示红色leds[i1] CRGB::Red;   //第i1个灯珠显示红色FastLED.show();delay(50);leds[i-1] CRGB::Green; //第i-1个灯珠显示绿色leds[i] CRGB::Green;   //第i个灯珠显示绿色leds[i1] CRGB::Green; //第i1个灯珠显示绿色FastLED.show();delay(50);   leds[i-1] CRGB::Blue;  //第i-1个灯珠显示蓝色leds[i] CRGB::Blue;    //第i个灯珠显示蓝色leds[i1] CRGB::Blue;  //第i1个灯珠显示蓝色FastLED.show();delay(50);      leds[i-1] CRGB::Black; //第i-1个灯珠熄灭leds[i] CRGB::Black;   //第i个灯珠熄灭leds[i1] CRGB::Black; //第i1个灯珠熄灭FastLED.show();delay(50);    }delay(500); } ①首先使用addLeds函数对灯带数组leds进行初始化其中尖括号中的参数依次是灯带型号、输出灯带控制信号的Arduino引脚号、RGB灯珠中红绿蓝三种颜色的LED排列顺序小括号中的参数依次是灯珠对象数组和灯珠数量然后使用setBrightness函数设置灯带亮度这个函数的作用不是点灯而是设置当灯被点亮后的亮度参数。 ②颜色参数的表示方式为“CRGB::颜色名”Black表示熄灭灯珠可以直接将颜色参数赋值给灯珠对象然后使用show函数更新灯带的显示。 ③对于灯珠对象数组leds[0]控制灯带的第一个灯珠leds[1]控制灯带的第二个灯珠以此类推使用for循环顺序遍历leds数组每轮循环都控制连续的三个灯珠多次变色由此可以实现多个连续的变色光点在灯带上“移动”的效果。 5灯带的灯珠全部被点亮然后全部被熄灭以此往复 #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop() { //点亮灯带所有灯珠for (int i 0; i NUM_LEDS; i) {    leds[i] CRGB::Red;FastLED.show();}delay(500);//熄灭灯带所有灯珠for (int i 0; i NUM_LEDS; i) {leds[i] CRGB::Black;FastLED.show();  }delay(500); } ①首先使用addLeds函数对灯带数组leds进行初始化其中尖括号中的参数依次是灯带型号、灯带控制信号连接的Arduino引脚号、RGB灯珠中红绿蓝三种颜色的LED排列顺序小括号中的参数依次是灯珠对象数组和灯珠数量。 ②颜色参数的表示方式为“CRGB::颜色名”Black表示熄灭灯珠可以直接将颜色参数赋值给灯珠对象然后使用show函数更新灯带的显示。 ③对于灯珠对象数组leds[0]控制灯带的第一个灯珠leds[1]控制灯带的第二个灯珠以此类推使用for循环顺序遍历leds数组第一次遍历将leds控制的灯珠全部点亮第二次遍历将leds控制的灯珠全部熄灭不过由于程序的执行本身要耗费一定时间而show函数又被置于循环之中而不是循环之外leds数组控制的灯珠经常还没全部被赋为红色或黑色就调用show函数所以在视觉上灯带上的灯珠并不是同时被点亮也不是同时被熄灭。 5、FastLED库使用——批量点灯操作 1灯带的灯珠全部同时被点亮然后全部同时被熄灭以此往复 #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop () {       fill_solid(leds, 30, CRGB::Red);        //点亮leds控制的30个灯珠FastLED.show();   delay(500);fill_solid(leds, 30, CRGB::Black);      //熄灭leds控制的30个灯珠 FastLED.show(); delay(500);        } ①fill_solid函数的作用是批量更改leds数组控制的灯珠的颜色第一个参数是leds数组名第二个参数是需要更改颜色的灯珠数量第三个参数是更改后的颜色参数。 ②fill_solid函数中并没有调用show函数它仅更改leds数组的存储内容调用show函数时才会将leds中的颜色参数落实到实物LED灯带上。 2灯带头部前三个灯珠全部同时被点亮然后全部同时被熄灭以此往复 #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop () {       //从灯带头开始点亮熄灭3个LEDfill_solid(leds, 3, CRGB::Red);FastLED.show();  delay(500);fill_solid(leds, 3, CRGB::Black);FastLED.show();  delay(500);               } ①fill_solid函数的作用是批量更改leds数组控制的灯珠的颜色第一个参数是leds数组名第二个参数是需要更改颜色的灯珠数量第三个参数是更改后的颜色参数。 ②fill_solid函数中并没有调用show函数它仅更改leds数组的存储内容调用show函数时才会将leds中的颜色参数落实到实物LED灯带上。 ③fill_solid函数的作用并不仅是同时控制灯带上的所有灯珠可以仅控制部分当第一个参数是leds数组名时第二个参数是从灯带头部开始往后需要控制的灯珠数量将其取值为3意味着仅控制灯带头部的前3个灯珠。 3灯带中部的连续三个灯珠全部同时被点亮然后全部同时被熄灭以此往复 #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop () { //从灯带头开始的第6个灯珠开始点亮熄灭3个LEDfill_solid(leds5, 3, CRGB::Red);FastLED.show();   delay(500);fill_solid(leds5, 3, CRGB::Black);FastLED.show();delay(500);             } ①fill_solid函数的作用是批量更改leds数组控制的灯珠的颜色第一个参数是leds数组名第二个参数是需要更改颜色的灯珠数量第三个参数是更改后的颜色参数。 ②fill_solid函数中并没有调用show函数它仅更改leds数组的存储内容调用show函数时才会将leds中的颜色参数落实到实物LED灯带上。 ③fill_solid函数不只能从灯带头部第一个灯珠开始控制它还可以从灯带中部的灯珠开始控制当第一个参数是leds数组名与整型量的加法时这里的“leds”是leds数组元素的首地址而“leds5”则是leds[5]的地址那么fill_solid函数将从leds[5]开始更改leds数组的存储内容也就是从灯带头部往后的第6个灯珠开始更改灯珠颜色参数第二个参数为3则fill_solid函数从第6个灯珠开始往后更改3个灯珠的颜色参数。 4三个光点组成的色条在灯带上反复摆动 #include FastLED.h            //此程序需要使用FastLED库#define NUM_LEDS 30             //LED灯珠数量 #define DATA_PIN 9              //Arduino输出控制信号引脚 #define LED_TYPE WS2812         //LED灯带型号 #define COLOR_ORDER GRB         //RGB灯珠中红色、绿色、蓝色LED的排列顺序 uint8_t max_bright 128;       //LED亮度控制变量可使用数值为0255 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            //为每个LED灯珠建立对象将它们存放在数组leds中void setup() { Serial.begin(9600);           //启动串行通讯delay(1000);                  //稳定性等待LEDS.addLedsLED_TYPE, DATA_PIN, COLOR_ORDER(leds, NUM_LEDS);  //初始化灯带对象FastLED.setBrightness(max_bright);                              //设置灯带亮度 }void loop () {       for (int i 0; i NUM_LEDS-3; i)  //色条正向运动{fill_solid(ledsi, 3, CRGB::Red);FastLED.show();delay(50);fill_solid(ledsi, 3, CRGB::Black); FastLED.show();delay(50);}  for (int i NUM_LEDS-3; i 0; i--)  //色条逆向运动{fill_solid(ledsi, 3, CRGB::Red);FastLED.show();delay(50);fill_solid(ledsi, 3, CRGB::Black); FastLED.show();delay(50);}                 }①fill_solid函数的作用是批量更改leds数组控制的灯珠的颜色第一个参数是leds数组名第二个参数是需要更改颜色的灯珠数量第三个参数是更改后的颜色参数。 ②fill_solid函数中并没有调用show函数它仅更改leds数组的存储内容调用show函数时才会将leds中的颜色参数落实到实物LED灯带上。 ③当fill_solid函数的第一个参数是leds数组名与整型量的加法时这里的“leds”是leds数组元素的首地址而“ledsi”则是leds[i]的地址那么fill_solid函数将从leds[i]开始更改leds数组的存储内容也就是从灯带头部往后的第i个灯珠开始更改灯珠颜色参数第二个参数为3则fill_solid函数从第i个灯珠开始往后更改3个灯珠的颜色参数。不断改变i的值被选中的灯珠也会随之改变。 6、FastLED库使用——自定义颜色 1除了FastLED库提供的颜色参数外程序员还可以自定义颜色FastLED提供了两种自定义颜色的方法分别是CRGB方法与CHSV方法 ①CRGB方法就是将三原色红色、绿色、蓝色以不同比重或者说数值相加在一起得到其它颜色。 定义方式CRGB 颜色变量名(rValue,gValue,bValue); #include FastLED.h #define NUM_LEDS 30 #define LED_DT 9   #define LED_TYPE WS2812 #define COLOR_ORDER GRB uint8_t max_bright 128;CRGB leds[NUM_LEDS]; //CRGB方法定义颜色                         CRGB myRGBcolor(50,0,50);  //myRGBcolorrValuegValuebValue——创建RGB颜色变量//rValue: 红色数值 0 - 255//gValue: 绿色数值 0 - 255//bValue: 蓝色数值 0 - 255 void setup() { LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS);FastLED.setBrightness(max_bright); } void loop () { myRGBcolor.r 0; //更改红色数值myRGBcolor(0, 0 ,50)myRGBcolor.b 0; //更改蓝色数值myRGBcolor(0, 0 ,0)fill_solid(leds, NUM_LEDS, myRGBcolor);FastLED.show();delay(500);  myRGBcolor.r 50; //更改红色数值myRGBcolor(50, 0 ,0)myRGBcolor.b 50; //更改蓝色数值myRGBcolor(50, 0 ,50)fill_solid(leds, NUM_LEDS, myRGBcolor);FastLED.show();delay(500);   } ②CHSV方法同样有三个参数它们分别为色调H、饱和度S和明亮度V色调的意义如下图的扇形图所示饱和度的意义如下图右下角的渐变图所示以色调H0为例明亮度的意义如下图右上角的渐变图所示以色调H0为例通过不同数值的组合可以得到不同的颜色。 定义方式CHSV 颜色变量名(hValue,sValue,vValue); #include FastLED.h #define NUM_LEDS 30 #define LED_DT 9   #define LED_TYPE WS2812 #define COLOR_ORDER GRB uint8_t max_bright 128;CRGB leds[NUM_LEDS]; //CHSV方法定义颜色   CHSV myHSVcolor(80,255,200);    //myHSVcolor色调饱和度明亮度——创建HSV颜色变量void setup() { LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS);FastLED.setBrightness(max_bright); } void loop () { myHSVcolor.h;  //修改yHSVcolor.h即myHSVcolor的色调数值      fill_solid(leds, NUM_LEDS, myHSVcolor);FastLED.show();delay(10);       } 2将下面的程序下载到开发板中可以看见灯带全部被点亮而且有一个“变色段”在灯带上运动凡是“变色段”经过的地方都会变成“变色段”所带有的颜色而且“变色段”本身也在不断变色。 #include FastLED.h #define NUM_LEDS 30 #define LED_DT 9   #define LED_TYPE WS2812 #define COLOR_ORDER GRB uint8_t max_bright 128;CRGB leds[NUM_LEDS]; //CHSV方法定义颜色   CHSV myHSVcolor(80,255,200);    //myHSVcolor色调饱和度明亮度——创建HSV颜色变量void setup() { LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS);FastLED.setBrightness(max_bright); }void loop () { for (int i 0; i NUM_LEDS-3; i)  //变色段正向运动{myHSVcolor.h;  //修改色调fill_solid(ledsi, 3, myHSVcolor);  //ledsi~leds13是变色段FastLED.show();delay(50);}  for (int i NUM_LEDS-3; i 0; i--)  //变色段逆向运动{myHSVcolor.h;  //修改色调fill_solid(ledsi, 3, myHSVcolor);  //ledsi~leds13是变色段FastLED.show();delay(50);}     }3将下面的程序下载到开发板中可以看见灯带有一个“变色段”在灯带上运动“变色段”以外的灯珠全部熄灭。 #include FastLED.h #define NUM_LEDS 30 #define LED_DT 9   #define LED_TYPE WS2812 #define COLOR_ORDER GRB uint8_t max_bright 128;CRGB leds[NUM_LEDS]; //CHSV方法定义颜色   CHSV myHSVcolor(80,255,200);    //myHSVcolor色调饱和度明亮度——创建HSV颜色变量void setup() { LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS);FastLED.setBrightness(max_bright); }void loop () {for (int i 0; i NUM_LEDS-3; i)   //变色段正向运动{myHSVcolor.h;  //修改色调fill_solid(ledsi, 3, myHSVcolor);FastLED.show();delay(50);fill_solid(ledsi, 3, CRGB::Black); FastLED.show();    }  for (int i NUM_LEDS-3; i 0; i--)   //变色段逆向运动{myHSVcolor.h;   //修改色调fill_solid(ledsi, 3, myHSVcolor);FastLED.show();delay(50);fill_solid(ledsi, 3, CRGB::Black); FastLED.show();        }     } 7、FastLED库使用——色调渐变灯带 1fill_rainbow函数有四个参数其中最后一个参数可选第一个参数是灯带对象的数组名第二个参数是从第一个参数对应的灯珠开始往后需要控制的灯珠数量第三个参数是起始色调值 ①若放弃可选参数fill_rainbow函数会将选中的第一个灯珠颜色设置为起始色调往后的灯珠色调呈递增趋势递增值取决于需要控制的灯珠数量最后所选的全部灯珠将呈现渐变的彩虹色。 ②若采用可选参数fill_rainbow函数会将选中的第一个灯珠颜色设置为起始色调往后的灯珠色调呈递增趋势递增值取决于可选参数值如下图所示。 #include FastLED.h    #define NUM_LEDS 30         #define LED_DT 9             #define LED_TYPE WS2812 #define COLOR_ORDER GRB     uint8_t max_bright 128;   CRGB leds[NUM_LEDS];   uint8_t beginHue;void setup() { LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS); FastLED.setBrightness(max_bright);     }void loop () {  beginHue;    //初始色调改变fill_rainbow(leds, NUM_LEDS, beginHue, 9);   //色调递增值取9FastLED.show();delay(25); } 2fill_gradient_RGB函数有5个参数第一个参数是灯带对象的数组名第二个参数是第一个需要控制的灯珠在数组中的下标第三个参数是起始RGB颜色可用FastLED库提供的颜色参数也可用CRGB方法自定义颜色变量第四个参数是最后一个需要控制的灯珠在数组中的下标第五个参数是结束RGB颜色可用FastLED库提供的颜色参数也可用CRGB方法自定义颜色变量fill_gradient_RGB函数将会把选中的灯珠按起始和结束RGB颜色进行渐变设置第一个灯珠设置为起始RGB颜色最后一个灯珠设置为结束RGB颜色。 #include FastLED.h    #define NUM_LEDS 30         #define LED_DT 9             #define LED_TYPE WS2812 #define COLOR_ORDER GRB     uint8_t max_bright 128;   CRGB leds[NUM_LEDS];   void setup() { LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS); FastLED.setBrightness(max_bright);     }void loop () {       fill_gradient_RGB(leds, 0, CRGB::Red, 29, CRGB::Blue); FastLED.show();delay(50); } 3fill_gradient函数有6个参数第一个参数是灯带对象的数组名第二个参数是第一个需要控制的灯珠在数组中的下标第三个参数是起始颜色可用FastLED库提供的颜色参数也可用CRGB或者CHSV方法自定义颜色变量第四个参数是最后一个需要控制的灯珠在数组中的下标第五个参数是结束颜色可用FastLED库提供的颜色参数也可用CRGB或者CHSV方法自定义颜色变量第六个参数是渐变方向fill_gradient函数将会把选中的灯珠按起始和结束颜色进行渐变设置第一个灯珠设置为起始颜色最后一个灯珠设置为结束颜色另外从一个颜色渐变到另外一个颜色有两个渐变方向在灯珠数量相同的前提下一个方向的色调变化值较大对应参数“LONGEST_HUES”另一个方向的色调变化值较小对应参数“SHORTEST_HUES”。 #include FastLED.h    #define NUM_LEDS 30         #define LED_DT 9             #define LED_TYPE WS2812 #define COLOR_ORDER GRB     uint8_t max_bright 128;   CRGB leds[NUM_LEDS];   uint8_t beginHue;void setup() { LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS); FastLED.setBrightness(max_bright);     }void loop () {       fill_gradient(leds, 0, CHSV(50, 255,255) , 29, CHSV(150,255,255), LONGEST_HUES);FastLED.show();delay(50); } 8、FastLED库使用——从调色板取色点灯 1下图所示的是FastLED库预设的其中两个调色板截止3.7.0版本预设的调色板共有8种Arduino可以根据颜色序号从调色板上获取相应的颜色当然除了FastLED库预设的调色板程序员也可自定义调色板然后使用之。 2fill_palette函数有7个参数依次是灯带数组名、灯珠数量、起始颜色序号、相邻光珠的颜色序号差、调色板名可以是库预设的也可以是自定义的、亮度值及线性渐变LINEARBLEND/非线性渐变NOBLEND其作用就是按照颜色序号将指定调色板上的颜色依次赋予灯带上的各个灯珠若采用线性渐变第一个灯珠的颜色对应起始颜色序号在调色板上的取色再往后颜色序号将按照相邻光珠的颜色序号差进行递增当颜色序号大于255时大于255的部分从0开始继续递增。 3使用库预设的调色板CloudColors_p在fill_palette函数中直接传入调色板名即可。 #include FastLED.h  #define NUM_LEDS 30     #define LED_DT 9       #define LED_TYPE WS2812 #define COLOR_ORDER GRB  uint8_t max_bright 128; CRGB leds[NUM_LEDS];                                   uint8_t colorIndex;void setup() {                                           LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS);  FastLED.setBrightness(max_bright);             }void loop () {     colorIndex;   //每次给灯珠上色前起始颜色序号都递增1fill_palette (leds, NUM_LEDS, colorIndex, 8, CloudColors_p, 255, LINEARBLEND);FastLED.show();delay(25); } 4使用CRGBPalette16自定义调色板这种方法需要16个RGB颜色参数其中第一个参数对应调色板上颜色序号0-15的颜色第二个参数对应调色板上颜色序号16-31的颜色以此类推。 定义方式CRGBPalette16 调色板名 CRGBPalette16(16个逗号分隔的RGB颜色参数); #include FastLED.h  #define NUM_LEDS 30     #define LED_DT 9       #define LED_TYPE WS2812 #define COLOR_ORDER GRB  uint8_t max_bright 128; CRGBPalette16 myColorPalette CRGBPalette16(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);CRGB leds[NUM_LEDS];                                   uint8_t colorIndex;void setup() {                                           LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS);  FastLED.setBrightness(max_bright);             }void loop () {     colorIndex;   //每次给灯珠上色前起始颜色序号都递增1fill_palette (leds, NUM_LEDS, colorIndex, 8, myColorPalette, 255, LINEARBLEND);FastLED.show();delay(25); } 5使用CHSVPalette16自定义调色板这种方法需要16个HSV颜色参数其中第一个参数对应调色板上颜色序号0-15的颜色第二个参数对应调色板上颜色序号16-31的颜色以此类推。 定义方式CHSVPalette16 调色板名 CHSVPalette16(16个逗号分隔的HSV颜色参数); #include FastLED.h  #define NUM_LEDS 30     #define LED_DT 9       #define LED_TYPE WS2812 #define COLOR_ORDER GRB  uint8_t max_bright 128; 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));CRGB leds[NUM_LEDS];                                   uint8_t colorIndex;void setup() {                                           LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS);  FastLED.setBrightness(max_bright);             }void loop () {     colorIndex;   //每次给灯珠上色前起始颜色序号都递增1fill_palette (leds, NUM_LEDS, colorIndex, 8, myHSVColorPalette, 255, LINEARBLEND);FastLED.show();delay(25); } 6对于自定义调色板它由16个颜色参数进行定义而在程序运行过程中基本不会修改调色板那么调色板完全可以作为只读的内容如果将其存放在SARM中将会非常浪费SARM的空间对此可以将其存放在FLASH中从而很好地利用存储空间。存储在FALSH中的调色板其定义方式见下例同样需要16个颜色参数其中第一个参数对应调色板上颜色序号0-15的颜色第二个参数对应调色板上颜色序号16-31的颜色以此类推。 #include FastLED.h  #define NUM_LEDS 30     #define LED_DT 9       #define LED_TYPE WS2812 #define COLOR_ORDER GRB  uint8_t max_bright 128; const TProgmemPalette16 myProgmemPalette 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};   CRGB leds[NUM_LEDS];                                   uint8_t colorIndex;void setup() {                                           LEDS.addLedsLED_TYPE, LED_DT, COLOR_ORDER(leds, NUM_LEDS);  FastLED.setBrightness(max_bright);             }void loop () {     colorIndex;   //每次给灯珠上色前起始颜色序号都递增1fill_palette (leds, NUM_LEDS, colorIndex, 8, myProgmemPalette, 255, LINEARBLEND);FastLED.show();delay(25); }
http://www.dnsts.com.cn/news/200324.html

相关文章:

  • 去泰国做网站发网站中小企业网站建设市场
  • php中英文网站源码网站开发需求方案模板
  • 益田附近网站建设做电商到底如何赚钱
  • 一个网络空间如何做两个网站六安网站软件建设
  • 宁波江东区网站建设谷歌官网下载app
  • 可以下载的网站模板上海比较大的外贸公司有哪些
  • 网站建设报价单 非常好用的报价模板.doc福州做网站fjfzwl
  • 云南网站建设天软科技设计公司网站应该包括的信息
  • 网站效果图设计思路做游戏代练的网站
  • 大型购物网站建站wordpress 服务器权限
  • 求个网站你知道的南昌市,做网站的公司
  • 建网站要买服务器吗建设实业公司网站设计模板
  • 网站建设 天津网站集约化建设的优势
  • 设计君网站邢台太行中学收费
  • 好口碑的网站制作安装价格做网站怎么设置背景
  • 酒店的网站建设方案小红书广告代理商
  • 问答论坛网站建设wordpress rt 17主题
  • 安徽建新建设工程有限公司网站二维码生成器支持微信扫码
  • 手机网站优势网站开发员的工作内容
  • 那个网站seo做的好的wordpress code 显示
  • 做外贸网站怎么做怎么给网站做超链接
  • 做打鱼网站企业网站主要有哪四种类型
  • 做装饰公司网站做运营需要看的网站
  • 静态网站教程人事管理系统
  • 广州网站建设(信科网络)703804散讲温州论坛
  • 使用二级域名会影响网站收录电商网站开发用什么语言
  • 企业网站开发php包装纸箱公司怎么做网站
  • 红色大气网络公司企业网站源码_适合广告设计规模以上工业企业主营业务收入
  • 网站建设网络推广seo长沙电子商务网站建设
  • 英语培训东莞网站建设数据分析师事务所