课程导入
在我们初次尝试用某种语言进行编程时,Hello World往往是我们编写的第一个程序,而能控制LED灯珠不断闪烁的Blink程序,就是电子硬件世界里的Hello World,在这节课程中,我们就来尝试编写一个Blink程序。
知识锦囊
RGB LED的原理
与其他主板不同,Wio LTE上有一个用户LED SK6812,它是一种可编程的 RGB LED灯,通过程序的控制就可以让它显示出16581375种颜色的灯光。那么我们如何控制RGB LED的颜色呢?实际上RGB LED内部有3个微小的LED灯-红色,绿色和蓝色,我们通过分别调节施加到它们每个灯珠上的电压,通过三原色的混合就可以发出各种不同的颜色。比如(255,0,0)代表红色亮度最高,绿色和蓝色亮度为0,所以(255,0,0)表示红色(取值范围0-255);(0,255,0)就是代表绿色;(0,0,255)代表蓝色。
实践操作
任务一:安装库文件
在上一节课程中,我们已经可以控制LED灯的打开和关闭了,要实现最终的Blink程序,我们只需要在上一节课程的程序上进行修改即可。
首先,我们下载Adafruit NeoPixel库(用于ws2812b LED),然后会得到一个压缩包文件。
接下来解压此压缩包,并将解压后的文件夹放入ardunio的库文件夹中(文件夹地址:此电脑/文档/Arduino/libraries)
任务二:编写亮灯程序
然后打开您的Arduino IDE,新建一个程序文件,编写以下代码:
#include "Adafruit_NeoPixel.h"#ifdef __AVR__#include <avr/power.h>#endif#define RGBPOWER 18 //使能引脚#define PIN 13 //LED 引脚#define NUMPIXELS 1 //定义1颗灯珠Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);void setup() {pixels.setBrightness(255);pixels.begin(); // 初始化RGB灯的库文件pinMode(RGBPOWER, OUTPUT); //设置RGB LED的电源引脚为输出模式digitalWrite(RGBPOWER, HIGH);//设置RGB LED的电源引脚为高(启动RGB LED)}void loop() {pixels.setPixelColor(0, pixels.Color(255,0,0)); // 设置红色pixels.show(); // 显示颜色delay(500); // 延迟一段时间,方便我们观测到颜色}
然后,
- 单击工具>开发板> Wio LTE;
- 单击工具>端口以选择正确的端口号。(不要选择COM1)
然后,单击Arduino IDE左上方的Upload按钮,几秒钟后,程序成功上传。
如果上传成功,那么你会看到板载LED指示灯亮红色!
接下来尝试更改(255,0,0)中的数值,然后重新上传程序。看看你能显示出多少种颜色!
注意颜色显示为 (0,0,0)到(255,255,255)范围内。
任务三:实现Blink效果
成功点亮灯光之后,接下来我们尝试控制它闪烁,闪烁就是亮起一段时间后熄灭然后一直重复。让我们转到代码:
#include "Adafruit_NeoPixel.h"#ifdef __AVR__#include <avr/power.h>#endif#define RGBPOWER 18 //使能引脚#define PIN 13 //LED 引脚#define NUMPIXELS 1Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);void setup() {pixels.setBrightness(255);pixels.begin(); // 初始化RGB灯的库文件pinMode(RGBPOWER, OUTPUT); //设置RGB LED的电源引脚为输出模式digitalWrite(RGBPOWER, HIGH);//设置RGB LED的电源引脚为高(启动RGB LED)}void loop() {pixels.setPixelColor(0, pixels.Color(0,0,150)); // 设置淡蓝色pixels.show(); // 显示颜色delay(500); // 延迟一段时间,方便我们观测到颜色pixels.setPixelColor(0, pixels.Color(0,0,0)); // 设置无颜色pixels.show(); // 显示颜色delay(500); // 延迟一段时间,方便我们观测到颜色}
同样点击运行按钮,主控板上的LED灯就会开始闪烁了,并且除非人为的终止这个进程,不然LED灯会一直闪烁下去。
思维拓展
请尝试让RGB LED灯交替显示绿色和蓝色。
