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();
}
}