简介:
————————————————————————————————————
在我们的街头巷尾,总有各种色彩斑斓的LED灯,装饰着我们这个世界,夜晚多彩的LED灯尤其的漂亮。这里我们一起来探索彩色LED的玩法吧。
首先理解我们的灯光几乎是有三原色组成,也就是R(红色)、G(绿色)、B(蓝色),所以调节三种颜色不同的亮度比例,就可得到不同亮度的其他想要的颜色。在程序中,这个亮度值设定为0~255,所以程序输出RGB对应的亮度分别为(255,255,255)的时候,我们可以得到最大亮度的白色光。
可编程RGB模块采用WS2812灯珠,允许wifiduino通过程序控制模块中的每个灯珠的颜色和亮暗程度。模块还可以级联,同时串联很多模块,也可对串联灯珠中的每个灯、某个灯,某一区域的灯进行单独控制。
库文件安装:
————————————————————————————————————
由于WS2812灯珠为可编程灯珠,所以需要通过特定的协议进行编程才能让对应的LED发出想要的颜色。如果我们按照协议一条条写程序来驱动这个彩色灯带,会比较繁琐,好在有第三方提供的WS2812有对应的库文件,库文件将协议打包,我们只需在软件中包含库文件,然后就可以调用库文件里的专门用于调节灯颜色和亮度的函数,从而使程序变得更加简单、可读。
要使用库文件,我们首先要了解库文件的安装。
库文件下载地址:https://github.com/adafruit/Adafruit_NeoPixel
将下载好的库文件,放在arduinoIDE安装目录下的libraries下,如图:
arduino/wifiduino示例程序:
/*****************************************************************************/
#include <Adafruit_NeoPixel.h>
//连接彩灯的引脚
#define PIN D8
// 设置RGB灯的颗数
#define NUMPIXELS 3
// 新建一个对象
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 500; // 延时时间
void setup() {
pixels.begin(); // 初始化点亮灯条需要的库文件,只有初始化后才能使用该库文件
}
void loop() {
// 一颗一颗灯逐渐点亮,然后又逐渐熄灭
for(int i=0;i<NUMPIXELS;i++){
pixels.setPixelColor(i, pixels.Color(40,40,40)); // 设置灯RGB的输出值设置为 40 40 40
pixels.show(); // 将颜色值更新到硬件上显示
delay(delayval); // 延时一小段时间
}
for(int i=NUMPIXELS;i>=0;i–){
pixels.setPixelColor(i, pixels.Color(0,0,0)); // 设置灯RGB的输出值设置为 0 0 0
pixels.show(); // 将颜色值更新到硬件上显示
delay(delayval); // 延时一小段时间
}
}
/*****************************************************************************/
wifiduino连接硬件:
————————————————————————————————————
将RGB灯条模块连接在wifiduino上的D8接口中。
观察现象:
————————————————————————————————————
观察RGB模块上的灯将会一颗颗逐渐点亮后再熄灭,可修改程序,调节显示颜色,亮度,LED数量等操作
Arduino Mixly图形化程序