мигающий WS2812 fastLED с milis arduino - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь заставить мой светодиод мигать каждые 2 секунды, используя миллис. Задержка невозможна, так как у меня работают другие датчики.

Пока я получил это, но, похоже, он не работает

#include "FastLED.h"
#define NUM_LEDS 12 // number of LEDS in neopixel ring
#define DATA_PIN 10 // for neopixel ring
CRGB leds[NUM_LEDS];

long period = 2000;        
long currentMillis = 0;
long startMillis = 0;

void setup() {
FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
}

void loop() {

 currentMillis = millis();

  if (currentMillis - startMillis >= period) {
    startMillis = currentMillis;
    leds[7]=CRGB(255,0,0);
    FastLED.show();

  }

}

1 Ответ

1 голос
/ 01 мая 2020

Это тебе немного ближе?

#include "FastLED.h"
#define NUM_LEDS 12 // number of LEDS in neopixel ring
#define DATA_PIN 10 // for neopixel ring
CRGB leds[NUM_LEDS];

unsigned long period = 2000;        
unsigned long currentMillis = 0;
unsigned long startMillis = 0;
boolean ledOn = false;

void setup() {
FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
}

void loop() {

 currentMillis = millis();

  if (currentMillis - startMillis >= period) {
    startMillis = currentMillis;
    ledOn = !ledOn;
    if(ledOn){
      leds[7]=CRGB(255,0,0);
    }
    else {
      leds[7]=CRGB(0,0,0);
    }
    FastLED.show();
  }

}
...