Guten Tag!
Ich weiß - es ist wahrscheinlich das Millionste Fastled-Lauflicht Topic; ich muss aber trotzden fragen, weil ich als Einsteiger nicht weiterkomme und trotz langer Suche nichts Befriedigendes gefunden habe.
-
Mein Ziel ist ein Lauflicht vom Stil Theater-Chase. Allerdings möchte ich, dass immer eine Gruppe von mehreren Leds durchläuft. Im unten stehenden Code habe ich das mit 3 Leds am Stück schon hinbekommen - allerdings gefällt mir eines nicht: Am Anfang des Strips leuchet immer gleich die ganze Dreier-Gruppe auf einmal - ich hätte es aber lieber, wenn diese Gruppe auch am Anfang des Strips "einläuft", also eine nach der anderen Led angeht. Hier bitte ich um Eure Ideen.
-
Sollte dies funktionieren, ist mein weiteres Ziel, 3 Strips an drei verschiedenen Arduino-Pins laufen zu lassen. Alle mit dem gleichen Lauflicht, nur immer um ein Pixel vesetzt. Also folgendermaßen:
......xxx.....xxx.....xxx.....
.......xxx.....xxx.....xxx....
........xxx.....xxx.....xxx...
Soweit ich das überblicke, müsste das ja möglich sein - über Multiple Arrays?
Hier aber erst mal der Code:
#include "FastLED.h"
#define NUM_LEDS 150
#define DATA_PIN 3
#define BRIGHTNESS 50
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812, DATA_PIN, GRB>(leds, NUM_LEDS);
LEDS.setBrightness(BRIGHTNESS);
}
void loop() {
theaterChase(CRGB::Red,10,200,CRGB::Black);
}
void theaterChase(CRGB c, int cycles, int speed, CRGB h){
for (int j=0; j<cycles; j++) {
for (int q=0; q < 6; q++) {
for (int i=0; i < NUM_LEDS; i=i+6) {
int pos = i+q;
leds[pos] = c;
leds[pos+1] = c;
leds[pos+2] = c;
}
FastLED.show();
delay(speed);
for (int i=0; i < NUM_LEDS; i=i+6) {
int pos = i+q;
leds[pos] = h;
leds[pos+1] = h;
leds[pos+2] = h
}
}
}
}
Schon mal danke für Eure Hilfe!