控制 Tinker 上面的 LED 实现呼吸灯

这里做一个简单的实验:上电之后让 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();
  }   
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注