Hey Leute,
folgende Situation. Mein Code lief soweit mit allen Effekten aus zwei Streifen, die ich an zwei verschiedene Pins habe. Da ich aber jedoch jeden Effekt und jede Animation zweimal im Quellcode habe für je einen Streifen, habe ich mir gedacht, ich passe das mit Hilfe eines Arrays an und muss nur noch über den Funktionsaufruf den jeweiligen Streifen ansprechen.
Aber nun leuchtet nichts, die LEDs bleiben schwarz. Was habe ich falsch gemacht?
Hier erstmal die Definitionen
Ps. Da ich nicht wusste, wie ich die NUM_LEDS als Array anlegen und nutzen kann, da ich jedesmal, wenn ich es als Array hatte, bei CRGB leds ne Fehlermedlung kam (Etwas sei kein int, obwohl es das war "const int nummerleds[] = {117,30}; )habe ich direkt die anzahl in das setup reingeschrieben.
Vorher
#include "FastLED.h"
#define DATA_PIN 6
#define DATA_PIN2 3
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
#define NUM_LEDS 117
#define NUM_LEDS2 30
CRGB leds[NUM_LEDS];
CRGB leds2[NUM_LEDS2];
#define BRIGHTNESS 96
#define FRAMES_PER_SECOND 120
void setup() {
delay(3000); // 3 second delay for recovery
// tell FastLED about the LED strip configuration
FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.addLeds<LED_TYPE, DATA_PIN2, COLOR_ORDER>(leds2, NUM_LEDS2).setCorrection(TypicalLEDStrip);
}
Nachher:
#include "FastLED.h"
// define all the things
#define DATA_PIN 6
#define DATA_PIN2 3
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
#define NUM_LEDS 117
#define NUM_LEDS2 30
#define LED_STRIPE 1
CRGB leds[LED_STRIPE][NUM_LEDS];
#define BRIGHTNESS 255
#define FRAMES_PER_SECOND 120
void setup() {
delay(3000); // 3 second delay
FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds[0], 117).setCorrection(TypicalLEDStrip);
FastLED.addLeds<LED_TYPE, DATA_PIN2, COLOR_ORDER>(leds[1], 30).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(BRIGHTNESS);
Serial.begin(115200);
}
Also nun bleiben die LEDs leer. Aufgerufen werden sie durch zB.
void pulseM(int s)
{
black();
uint8_t BeatsPerMinute = 10;
uint8_t beat = beatsin8( BeatsPerMinute, 64, 255);
uint8_t helligkeit = beat;
for ( int i = 0; i < NUM_LEDS2; i++) { //9948
leds[s][i] = CHSV(gHue, 255, helligkeit);
}
}
Da sollte doch irgendetwas leuchten, auch wenn die NUM_LEDS ne andere Anzahl haben, dennoch müsste da etwas leuchten.
Danke schonmal für eure Hilfe