Projekt Krippenbeleuchtung

Weil Weihnachten ist, agmues Code um eine Wartephase ergänzt (ungetestet).

#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
uint8_t 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 == 0) {
      leds1[0] = CRGB::Green;
      leds1[1] = CRGB::Red;
    } else if (flag1 == 1){
      leds1[0] = CRGB::Red;
      leds1[1] = CRGB::Green;
    }
    else {
      leds1[0] = CRGB::BLACK;
      leds1[1] = CRGB::BLACK;
    }
    flag1++;
    if (flag1 > 2) flag1 = 0;
    updateLeds = true;
  }
  if (millis() - alt2Millis >= wartezeit2) {
    alt2Millis = millis();
    wartezeit2 = random(WARTEZEITMIN, WARTEZEITMAX);
    if (flag2 == 0) {
      leds2[0] = CRGB::Aqua;
      leds2[1] = CRGB::Gold;
    } else if (flag2 == 1) {
      leds2[0] = CRGB::Blue;
      leds2[1] = CRGB::Aquamarine;
    }
    else {
      leds2[0] = CRGB::BLACK;
      leds2[1] = CRGB::BLACK;
    }
    flag2++;
    if (flag2 > 2) flag2 = 0;
    updateLeds = true;
  }
  if (updateLeds) {
    updateLeds = false;
    FastLED.show();
  }
}

Gruß Tommy