Projekt Krippenbeleuchtung

Muemmi:
Hat nicht geklappt mit der Decke.... Musste mit gucken!

Blöd gelaufen, kann ja aber auch schön sein ;D

Asche auf mein Haupt, ich habe updateLeds = false; vergessen und in #76 nachgetragen! Wird der Sinn klarer?

Den Pseudozufall macht random();.

Wenn man die Wartezeit zu per Zufall gefüllten Variablen macht, blinkt es zufällig:

#include "FastLED.h"
#define NUM_LEDS 2
#define DATA_PIN1    2
#define DATA_PIN2    3
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
#define BRIGHTNESS  96

CRGB leds1[NUM_LEDS];
CRGB leds2[NUM_LEDS];
const uint32_t WARTEZEITMIN = 30000, WARTEZEITMAX = 120000;
uint32_t alt1Millis, alt2Millis, wartezeit1, wartezeit2;
bool updateLeds, flag1, flag2;

void setup() {
  FastLED.addLeds<LED_TYPE, DATA_PIN1, COLOR_ORDER>(leds1, NUM_LEDS).setCorrection(TypicalLEDStrip); // initializes LED strip
  FastLED.addLeds<LED_TYPE, DATA_PIN2, COLOR_ORDER>(leds2, NUM_LEDS).setCorrection(TypicalLEDStrip); // initializes LED strip
  FastLED.setBrightness(BRIGHTNESS);// global brightness
  FastLED.show();
  randomSeed(analogRead(A3));  // Eingang A3 als Elektronenfänger, da darf nicht angeschlossen sein!
}

void loop() {
  if (millis() - alt1Millis >= wartezeit1) {
    alt1Millis = millis();
    wartezeit1 = random(WARTEZEITMIN, WARTEZEITMAX);
    if (flag1) {
      leds1[0] = CRGB::Green;
      leds1[1] = CRGB::Red;
    } else {
      leds1[0] = CRGB::Red;
      leds1[1] = CRGB::Green;
    }
    flag1 = !flag1;
    updateLeds = true;
  }
  if (millis() - alt2Millis >= wartezeit2) {
    alt2Millis = millis();
    wartezeit2 = random(WARTEZEITMIN, WARTEZEITMAX);
    if (flag2) {
      leds2[0] = CRGB::Aqua;
      leds2[1] = CRGB::Gold;
    } else {
      leds2[0] = CRGB::Blue;
      leds2[1] = CRGB::Aquamarine;
    }
    flag2 = !flag2;
    updateLeds = true;
  }
  if (updateLeds) {
    updateLeds = false;
    FastLED.show();
  }
}