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