这里做一个简单的实验:上电之后让 ThinkerNode NB-IoT上的 LED 实现红色的呼吸灯效果,按下 Set键之后切换为绿色呼吸灯。
硬件方面:
1. ThinkerNode NB-IoT 上面的 LED 是一个 WS2812B,可以实现任意的颜色
2.板子上的 SET按钮是接在 D3 Pin上的,按下时拉低。
RGB_LED.Breathing() 是设置一次呼吸灯效果的函数,设置一次之后是一个周期,意思是运行一次会实现一个完整的亮灭周期,如果想持续亮灭,那么需要定时运行这个函数。根据上面的资料编写如下代码:
#include <DFRobot_NeoPixel.h>
unsigned long elsp;
byte CurrentColor;
void setup() {
RGB_LED.begin();
//中等亮度
RGB_LED.setBrightness(MIDDLE);
//初始为红色
CurrentColor=RED;
RGB_LED.setColor(RED);
//设置呼吸灯,前面一个是亮的时间长度,后面一个是灭的时间长度
// 这里是亮 2秒,灭1秒的意思
RGB_LED.Breathing(2000, 1000);
pinMode(D3,INPUT);
elsp=millis();
}
void loop() {
//如果按下 SET 键,那么切换为绿色呼吸灯
if (digitalRead(D3)==LOW) {
RGB_LED.setColor(GREEN);
CurrentColor=GREEN;
}
//如果时间超过3秒,那么刷新一次设置
if (millis()-elsp>2000+1000)
{
RGB_LED.setColor(CurrentColor);
RGB_LED.Breathing(2000, 1000);
elsp=millis();
}
}