ich würde gerne 20 LEDs einer LED-Kette (FastLED) vereinfacht gesagt unabhängig voneinander wie Kerzen flackern lassen. Momentan scheitere ich gedanklich daran, mir pro Durchlauf 20 zufällige Zahlen, die in keinerlei Zusammenhang stehen, erzeugen zu lassen. Kann mich evtl. jmd. erleuchten/ mir einen Schubs in die richtige Richtung geben?
die kann auch Neopixel ansteuern.
Schau dir einfach die Neopixel Beispiele meiner Library an.
Der Effekt heißt flicker.
Ein Beispiel für 3 Random flicker LEDs auf einem Streifen:
/*
Flicker Neopixel
flickers 3 pixel on a strip
by noiasca
2024-01-14 ok
*/
#include <Noiasca_led.h> // download from: https://werner.rothschopf.net/microcontroller/202202_tools_led_en.htm
#include <utility/Noiasca_neopixel.h> // needed for Neopixel
#include <Adafruit_NeoPixel.h> // use the Adafruit library for Neopixel
constexpr uint16_t pixelCount = 32;
constexpr byte pixelPin = 8;
Adafruit_NeoPixel strip(pixelCount, pixelPin, NEO_RGB + NEO_KHZ800); // RGB or GRB?
// create an array of several pixels
FlickerPixel flickerPixel[]{
{strip, 0},
{strip, 1},
{strip, 2}
};
void setup() {
Serial.begin(115200);
Serial.println(F("Neopixel Flicker"));
strip.begin();
strip.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255)
flickerPixel[0].setOnColor(0xFF0000); // set the on color of a pixel
flickerPixel[1].setOnColor(0xFF8800);
flickerPixel[2].setOnColor(0xAAAA00);
}
void loop() {
for (auto &i : flickerPixel)
i.update(); // call .update() for your pixel object
}
//
jede weitere Pixel soll eigentlich nur eine weitere Zeile sein...
Hast Du mal die Fire...-Beispiele von FastLed ausprobiert? Pseudo-Zufallszahlen stehen immer in einem Verhältnis zueinander. Wenn Dir das nicht genügt, musst Du einen Hardware-Zufallsgenerator benutzen.
Ansonsten mal im setup einen unbeschalteten Analogeingang einlesen und diesen Wert an randomSeed(wert) übergeben. Dann mit Random die Werte generieren. Für ein Flackern sollten nicht nur die Helligkeiten, sondern auch die Zeiten, die diese gehalten werden zufällig sein.
Du solltest Dich deshalb mit strukturen (struct) und Arrays daraus beschäftigen.
Das mal als Schubs.
Pseudo-Zufallszahlen haben immer eine Abhängigkeit vom Startwert, d.h. bei gleichem Startwert ergibt sich immer wieder die gleiche Folge.
Man muss also den Startwert weitgehend zufällig wählen, z.B. aus einem unbeschalteten Analogeingang. Beispiel für ESP8266:
... braucht man nicht für einen Kerzenflacker-Effekt.
Da ist eher die Frage, in welchen Bereichen die Pseudo-Zufallszahlen variieren sollen, dass es wie Flackern aussieht.
Wenn man dann einen aus knapp 4300 Millionen (2**32) mehr oder weniger verschiedenen Flackerern sieht, sollte man ihn kaum wiedererkennen und von anderen unterscheiden können.
Richtig. Der Hinweis war nur, weil der TO auf unhabhängige Zufallswerte Wert gelegt hat. Flackern sollte sowohl die Helligkeit, als auch deren Dauer zufällig ansteuern.
Ja, Tommy, ich kenne die fantastischen FastLed-Fire-Beispiele. Ich werde evtl. als erstes versuchen, diese auf mehrere Segmente meines LED-Streifens umzubiegen.
Der Hintergrund ist Folgender:
Ich habe einen 10m langen LED-Streifen, der seitlich unter die schräg verlaufenden Balken eines Carports gelegt werden soll. Diese Balken haben jeweils einen Abstand von ca. 60 cm, so dass ich in diesen einzelnen Segmenten nun das Flackern jeweils einzelner Kerzen simulieren möchte.
Wie soll ich das verstehen? Von den (angenommen) 60 LED pro Balken soll nur eine (oder 5 oder ...) flackern? Sie sollen dabei aber ihre Farbe so wie der Rest des Balkens beibehalten? Ist die Balkenfarbe konstant? WS2812 LED? Sollen es immer die gleichen LED sein oder soll das auch zufällig wechseln?
Gruß Tommy
PS: Denke daran, dass Du bei 10 m an mehreren Stellen 5V und GND über genügend dicke Leitungen zuführen musst. Wie viele LED sind auf den 10 m?
Es sind vierzehn Bereiche, in denen ich jeweils den Eindruck erwecken möchte, dass in jedem Bereich eine einzelne Kerze stehen würde. Oberhalb des horizontalen Balkens soll der LED-Streifen installiert werden. Ich glaube, es handelt sich um WS2812 LEDs. Es ist schon eine ganze Weile her, dass ich mit den Dingern etwas gemacht habe. Hier ein Ausschnitt zu Beginn des Bestandscodes:
Es fällt mir schwer, da ich selber noch nicht weiss, wie ich den Eindruck, dass es so aussieht, dass in jedem der vierzehn Zwischenräume eine Kerze steht, vermitteln soll.
Vermutlich muss ich einfach ausprobieren, was wie aussieht. Ob das dann mehrere unterschiedlich helle und/oder eingefärbte LEDs pro Zwischenraum sind, oder ob alle LEDs eines Zwischenraums identisch angesteuert werden können, kann ich einfach zum jetzigen Zeitpunkt noch nicht sagen.
Von den 150 LEDs könnten z.B. 112 für die Zwischenräume verwendet werden, während der Rest unter den vertikalen Balken positioniert wären und schwarz bleiben würden.
Dann probiere es erst mal mit Fire von FastLed aus, um einen Eindruck zu gewinnen.
Wenn Du es danach genauer spezifizieren kannst, kann man nach weiteren Lösungswegen suchen.
150 LED auf 10 Meter oder auf jedem der 14 Balken?
Ok. Verstanden. Dann also eher eine LED pro Bereich oder 8 zufällige LEDs über alle Bereiche für jeweils 10 Sekunden, dann Wechsel. Es ist vieles möglich.