LED Animation auf mehrere Stripes legen

Hey hey, ich hab ein Projekt für einen guten Freund von mir anstehen. Es geht hauptsächlich um eine Art von Fließlicht das abwechselnd auf unterschiedlichen Neopixel Streifen abgespielt werden soll. Prinzipiell so

Irgendein Streifen wird ausgewählt
Animation
Anderer Streifen wird ausgewählt
Animation
...
...

Ich hab mir einen Code aus einem anderen Projekt einer unbekannten Person hergenommen und hänge jetzt an der Umsetzung diesen Code von einem Streifen auf Unterschiedliche abwechselnd zu bekommen. Kann mir bitte jemand helfen?

Das ist der Code der in Frage steht

#include "FastLED.h"   //Make sure to install the FastLED library into your Arduino IDE

//The total number of LEDs being used is 144
#define NUM_LEDS 60

// The data pin for the NeoPixel strip is connected to digital Pin 6 on the Arduino
#define DATA_PIN 4

//Initialise the LED array, the LED Hue (ledh) array, and the LED Brightness (ledb) array.
CRGB leds[NUM_LEDS];
byte ledh[NUM_LEDS];
byte ledb[NUM_LEDS];

const int LEDSpeed = 30; //Speed of the LED animation effect. Make sure not to exceed the maxLEDSpeed value.
int maxLEDSpeed = 50;    //Identifies the maximum speed of the LED animation sequence
int LEDposition=0;       //Identifies the LED position in the strip that the comet is currently at. The maximum position is NUM_LEDS-1  (eg. 143)
int oldPosition=0;       //Holds the previous position of the comet.

byte hue = 0;            //Stores the Leading LED's hue value (colour)
byte sat = 255;          //Stores the Leading LED's saturation value
byte tailHue = 0;        //Stores the Comet tail hue value
int tailLength = 8;      //determines the length of the tail.
byte hueRange = 20;      //Colour variation of the tail (greater values have greater variation
byte intensity = 200;    //The default brightness of the leading LED
byte tailbrightness= intensity / 2;  //Affects the brightness and length of the tail
int animationDelay = 0;  //The greater the animation delay, the slower the LED sequence. Calculated from LEDSpeed and MaxSpeed.

unsigned long waitTime = random(50, 5000);  //The wait time for each comet
unsigned long endTime;   //The time when we no longer have to wait for the next comet

int cometNumber = 3;     //Used to choose which comet colour to show (***Don't change this variable***)


//===================================================================================================================================================
// setup() : Is used to initialise the LED strip
//===================================================================================================================================================
void setup() {
    
    FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);                            //initialise the LED strip     
    selectNextComet();                                                                  //Select the next comet colour
}


//===================================================================================================================================================
// loop() : 
//===================================================================================================================================================
void loop(){
    showLED(LEDposition, hue, sat, intensity);

    //Adjust the hue of the tail so that it is a different colour from the leading LED. To reduce variation in tail colour, reduce the hueRange.
    if(hue>(254-hueRange)){
      tailHue = random((hue-hueRange),hue);
    } else {
      tailHue = random(hue, (hue+hueRange)); 
    }
    
    tailbrightness = random(50, 100);                      //Randomly select the brightness of the trailing LED (provides sparkling tail)

    
    leds[LEDposition]=CHSV((tailHue),sat,tailbrightness);  //Set the colour, saturation and brightness of the trailing LED
    fadeLEDs(tailLength);                                  //Fade the tail so that the tail brightness dwindles down to nothingness.
    setDelay(LEDSpeed);                                    //

    LEDposition++;
    if(LEDposition>(NUM_LEDS-1)){
      
      for(int i=0; i<50; i++){
        showLED(LEDposition, hue, sat, intensity);
        fadeLEDs(tailLength);
        setDelay(LEDSpeed);
      } 
      LEDposition=0;
      selectNextComet();                                  //Select the next comet colour
    }
  
}


//===================================================================================================================================================
// showLED() : is used to illuminate the LEDs 
//===================================================================================================================================================
void showLED(int pos, byte LEDhue, byte LEDsat, byte LEDbright){
  leds[pos] = CHSV(LEDhue,LEDsat,LEDbright);
  FastLED.show();
}


//===================================================================================================================================================
// fadeLEDs(): This function is used to fade the LEDs back to black (OFF) 
//===================================================================================================================================================
void fadeLEDs(int fadeVal){
  for (int i = 0; i<NUM_LEDS; i++){
    leds[i].fadeToBlackBy( fadeVal );
  }
}


//===================================================================================================================================================
// setDelay() : is where the speed of the LED animation sequence is controlled. The speed of the animation is controlled by the LEDSpeed variable.
//              and cannot go faster than the maxLEDSpeed variable.
//===================================================================================================================================================
void setDelay(int LSpeed){
  animationDelay = maxLEDSpeed - abs(LSpeed);
  delay(animationDelay);
}


//===================================================================================================================================================
//selectNextComet() : This is where we select either the Blue, the Pink or the White comet         
//===================================================================================================================================================
void selectNextComet(){
  cometNumber++;
  if(cometNumber>3){
    cometNumber=1;
  }

  switch(cometNumber){
    case 1:  {    //Blue Comet
      hue = 160;
      sat = 255;
      hueRange=20;
      break;
    }
 
    case 2:  {   //Pink Comet
      hue = 224;
      sat = 120;
      hueRange=10;
      break;
    }
    
    default: {   //White Comet
      hue = 0;
      sat = 0;
      hueRange = 0;
      break;
    }  
  }
}


//===================================================================================================================================================
// waitForNextComet() : Is where we either wait for 60 seconds for another comet to come, or initiate another comet with a button press.
//                      The button will only be "ACTIVE" while we are waiting for the next comet. It has no effect while a comet is currently running         
//===================================================================================================================================================
#include "FastLED.h"   //Make sure to install the FastLED library into your Arduino IDE

#define NUM_LEDS1 60
#define NUM_LEDS2 65
#define NUM_LEDS3 160

// The data pin on the strip is connected to the Arduino pins
#define DATA_PIN1 4
#define DATA_PIN2 A5
#define DATA_PIN3 12

//Initialise the LED array
CRGB leds1[NUM_LEDS1];
CRGB leds2[NUM_LEDS2];
CRGB leds3[NUM_LEDS3];

void setup() {
  FastLED.addLeds<WS2812B, DATA_PIN1, GRB>(leds1, NUM_LEDS1);
  FastLED.addLeds<WS2812B, DATA_PIN2, GRB>(leds2, NUM_LEDS2);
  FastLED.addLeds<WS2812B, DATA_PIN3, GRB>(leds3, NUM_LEDS3);
}
...

was Funktioniert, und was nicht? Was macht der Code?
Auch hier wäre ein Schema vielleicht hilfreich

Hi, der Code an sich funktioniert sehr gut auf einem Streifen, ich möchte aber, dass der Arduino mehrere Streifen einbindet und unterschiedlich nach der Animation einen Anderen auswählt, am Besten nach Zufallsprinzip

Danke ich bin ziemlich neu im Programmieren. Aber ich brauche noch Hilfe wie ich es hinbekomme die genannten Ausgänge nach Zufallsprinzip anzusteuern sobald ein Zyklus vorbei ist?

Ich brauche ein System bei dem ich diese Animation im Main Loop erst nach Ende der vorherigen Animation auf einen anderen Streifen für die Nächste wechsle, wenn das Sinn ergibt

hast du vielleicht ein schema, auf dem ersichtlich ist was wie verdrahtet ist? Das wäre vielleicht hilfreich. Ich glaube ich verstehe was du machen möchtest.

Hier wäre das Schema. Ich will die Streifen einen nach dem Anderen, aber nach Zufall entschiedenem Prinzip ansteuern. Z.B. Streifen 1, danach Streifen 4, danach Streifen 1, danach Streifen 3, danach Streifen 5, ...

Die Streifen die ich benutzen will sind 24V NeoPixel Streifen, die ich über ein externes Netzteil betreibe und über die Ansteuerung habe ich mich schon informiert, das ist mit einem Widerstand möglich. Hoffentlich ist die Lage etwas klarer geworden

Wo ist deine GND Verbindung?

Wie soll das gehen? Ein Widerstand macht keine digitalen Signale.

Werden da immer 6 LEDs gleichzeitig angesteuert?

Kannst du mal den Code zeigen?

Die habe ich vergessen einzuzeichnen, das war mein Fehler

Laut diesem anderen Forum braucht man einen Vorwiderstand vor dem DIn Kontakt, ich kann das Forum ja heraussuchen falls du es sehen willst

Nein, das war nur ein Beispielsstreifen zur Darstellung, der Code steht bereits in einer der früheren Nachrichten

Wie soll man da helfen wenn du die hälfte vergisst

Warum ist der nicht eingezeichnet?

Bist du sicher, das du einen 24V Streifen mit Einzelanstuerung hast? Zeige mal den Link auf den Streifen.

Das war nur ein recht schnell gezeichneter Schaltplan. Kein Weltuntergang, wobei ich die fehlende Präzision verstehen kann. Den Widerstand habe ich aus dem selben Grund nicht mit hinzugefügt, da ich aktuell unter ziemlich viel Druck stehe.

Die Streifen die ich benutzen will wurden bereits versehentlich gekauft und sind schon verbaut. Ich muss diese ganze Geschichte jetzt dementsprechend umbauen. Der Link ist hier
https://amzn.eu/d/fbAdN3E

Mein Plan ist, dass ich diese Streifen über ein Netzteil aktiviere und über den Arduino die Lichter ansteure. Ursprünglich wollte ich das Ganze mit 5V Streifen machen, aber diese Streifen hier wurden ohne mein Wissen gekauft und jetzt darf ich alles auf minimalen Kosten managen

wie hast du dir den Code für den Zufall gedacht?
so etwas müsste irgendwo noch vorkommen

randomSeed(milllis());
DATA_PIN=random(4,8);

das gibt dir dann eine Random Zahl zwischen 4 und 8 aus, die dann als PIN genutzt werden. Das selbe kannst du dann auch noch mit den Pattern machen. Ist eigentlich eine ganz einfache Geschichte

OK, es ist kein WS2812 sondern ein "WS2811 IC ausgestattet ermöglicht segmentierte Farbsteuerung" Und beim WS2811 ist es richtig das dort ein Widerstand vor DIN muss.

Weitere Frage: Hast du zugriff auf mehrere Anfänge von den Streifen? Wenn ja, wie Weit sind die Anfänge auseinander?

Versuche es mal so:

#include "FastLED.h"   //Make sure to install the FastLED library into your Arduino IDE

#define NUM_LEDS 60
#define NUM_Stripes 4

// The data pin for the NeoPixel strip is connected to digital Pin 6 on the Arduino
#define DATA_PIN 4

//Initialise the LED array, the LED Hue (ledh) array, and the LED Brightness (ledb) array.
CRGB leds[NUM_LEDS * NUM_Stripes];
byte ledh[NUM_LEDS * NUM_Stripes];
byte ledb[NUM_LEDS * NUM_Stripes];

const int LEDSpeed = 30; //Speed of the LED animation effect. Make sure not to exceed the maxLEDSpeed value.
int maxLEDSpeed = 50;    //Identifies the maximum speed of the LED animation sequence
int LEDposition = 0;     //Identifies the LED position in the strip that the comet is currently at. The maximum position is NUM_LEDS-1
int oldPosition = 0;     //Holds the previous position of the comet.

byte hue = 0;            //Stores the Leading LED's hue value (colour)
byte sat = 255;          //Stores the Leading LED's saturation value
byte tailHue = 0;        //Stores the Comet tail hue value
int tailLength = 8;      //determines the length of the tail.
byte hueRange = 20;      //Colour variation of the tail (greater values have greater variation
byte intensity = 200;    //The default brightness of the leading LED
byte tailbrightness = intensity / 2; //Affects the brightness and length of the tail
int animationDelay = 0;  //The greater the animation delay, the slower the LED sequence. Calculated from LEDSpeed and MaxSpeed.

unsigned long waitTime = random(50, 5000);  //The wait time for each comet
unsigned long endTime;   //The time when we no longer have to wait for the next comet

unsigned int activeStripe;

int cometNumber = 3;     //Used to choose which comet colour to show (***Don't change this variable***)

//===================================================================================================================================================
// setup() : Is used to initialise the LED strip
//===================================================================================================================================================
void setup() {
  FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS * NUM_Stripes);              //initialise the LED strip
  selectNextComet();                                                                  //Select the next comet colour
  LEDposition = activeStripe * NUM_LEDS;
}

//===================================================================================================================================================
// loop() :
//===================================================================================================================================================
void loop() {
  showLED(LEDposition, hue, sat, intensity);

  //Adjust the hue of the tail so that it is a different colour from the leading LED. To reduce variation in tail colour, reduce the hueRange.
  if (hue > (254 - hueRange)) {
    tailHue = random((hue - hueRange), hue);
  } else {
    tailHue = random(hue, (hue + hueRange));
  }

  tailbrightness = random(50, 100);                      //Randomly select the brightness of the trailing LED (provides sparkling tail)

  leds[LEDposition] = CHSV((tailHue), sat, tailbrightness); //Set the colour, saturation and brightness of the trailing LED
  fadeLEDs(tailLength);                                  //Fade the tail so that the tail brightness dwindles down to nothingness.
  setDelay(LEDSpeed);                                    //

  LEDposition++;
  if (LEDposition > (activeStripe * NUM_LEDS + NUM_LEDS - 1)) {
    for (int i = 0; i < 50; i++) {
      showLED(LEDposition, hue, sat, intensity);
      fadeLEDs(tailLength);
      setDelay(LEDSpeed);
    }
    selectNextComet();                                  //Select the next comet colour
    LEDposition = activeStripe * NUM_LEDS;
  }
}

//===================================================================================================================================================
// showLED() : is used to illuminate the LEDs
//===================================================================================================================================================
void showLED(int pos, byte LEDhue, byte LEDsat, byte LEDbright) {
  leds[pos] = CHSV(LEDhue, LEDsat, LEDbright);
  FastLED.show();
}

//===================================================================================================================================================
// fadeLEDs(): This function is used to fade the LEDs back to black (OFF)
//===================================================================================================================================================
void fadeLEDs(int fadeVal) {
  for (int i = 0; i < NUM_LEDS * activeStripe; i++) {
    leds[i].fadeToBlackBy( fadeVal );
  }
}

//===================================================================================================================================================
// setDelay() : is where the speed of the LED animation sequence is controlled. The speed of the animation is controlled by the LEDSpeed variable.
//              and cannot go faster than the maxLEDSpeed variable.
//===================================================================================================================================================
void setDelay(int LSpeed) {
  animationDelay = maxLEDSpeed - abs(LSpeed);
  delay(animationDelay);
}

//===================================================================================================================================================
//selectNextComet() : This is where we select either the Blue, the Pink or the White comet
//===================================================================================================================================================
void selectNextComet() {
  activeStripe = random(NUM_Stripes);

  cometNumber++;
  if (cometNumber > 3) {
    cometNumber = 1;
  }

  switch (cometNumber) {
    case 1:  {    //Blue Comet
        hue = 160;
        sat = 255;
        hueRange = 20;
        break;
      }

    case 2:  {   //Pink Comet
        hue = 224;
        sat = 120;
        hueRange = 10;
        break;
      }

    default: {   //White Comet
        hue = 0;
        sat = 0;
        hueRange = 0;
        break;
      }
  }
}

Das gilt für alle WS28xx LED Controller. Dieser Widerstand ist ein Schutz damit der erste Controller / LED nicht kaputtgeht wenn die Versorgungsspannung fehlt aber das Signal vorhanden ist.

Die Masse des 24V Netzteils (Minuspol) muß mit der Masse (GND) des Arduino verbunden werden.

Grüße Uwe

1 Like
#include "FastLED.h"   //Make sure to install the FastLED library into your Arduino IDE

const int NUM_LEDS = 60 // alle Streifen sind gleich lang, aber man muss beachten dass für Gezamtanzahl genug Memory ist
//alle sind mit Minus zu Netzteil und Arduino verbunden

// The data pin on the strip is connected to the Arduino pins
const byte DATA_PIN[5] = { 4, 8, 6, 7, A2};

//Initialise the LED array
CRGB leds[5][NUM_LEDS];

void setup() {
  for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);
}

void loop() {
  byte Rand = random(5);
  byte R = random(255);
  byte G = random(255);
  byte B = random(255);
  fill_solid(leds[Rand][0], NUM_LEDS, CRGB( R, G, B));
  delay(5000);
}

Momentan sind die Streifen noch als 4 ganze Objekte mit jeweils 12m da, wobei schon 2 verbaut wurden. Ich könnte diese aber jederzeit noch umbauen und zerschneiden und die Drähte an die Kontakte löten. Wie weit die Anfänge dann auseinander sind muss ich nachfragen, ich hab die Streifen momentan nicht vor mir. Ich mach mich schlau und melde mich bei Bedarf wieder mit mehr Infos dazu

Lass sie zusammen. Das kann man auch in Software lösen

Hi, hier bekomme ich folgenden Fehlercode rein:

Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: "Arduino Uno"





















C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino: In function 'void setup()':

sketch_nov13a:13:66: error: the value of 'DATA_PIN' is not usable in a constant expression

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                  ^

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:7:12: note: 'DATA_PIN' was not declared 'constexpr'

 const byte DATA_PIN[5] = { 4, 8, 6, 7, A2};

            ^~~~~~~~

sketch_nov13a:13:91: error: no matching function for call to 'CFastLED::addLeds<WS2812B, DATA_PIN[((int)i)], GRB>(CRGB [60], const int&)'

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:267:130: note: candidate: template<ESPIChipsets CHIPSET, unsigned char DATA_PIN, unsigned char CLOCK_PIN, EOrder RGB_ORDER, long unsigned int SPI_DATA_RATE> CLEDController& CFastLED::addLeds(CRGB*, int, int)

  template<ESPIChipsets CHIPSET,  uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER, uint32_t SPI_DATA_RATE > CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                                                                                                                                  ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:267:130: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: the value of 'DATA_PIN' is not usable in a constant expression

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:7:12: note: 'DATA_PIN' was not declared 'constexpr'

 const byte DATA_PIN[5] = { 4, 8, 6, 7, A2};

            ^~~~~~~~

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:13:91: note: in template argument for type 'unsigned char' 

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:282:95: note: candidate: template<ESPIChipsets CHIPSET, unsigned char DATA_PIN, unsigned char CLOCK_PIN> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  template<ESPIChipsets CHIPSET,  uint8_t DATA_PIN, uint8_t CLOCK_PIN > static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                                                                                               ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:282:95: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: the value of 'DATA_PIN' is not usable in a constant expression

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:7:12: note: 'DATA_PIN' was not declared 'constexpr'

 const byte DATA_PIN[5] = { 4, 8, 6, 7, A2};

            ^~~~~~~~

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:13:91: note: in template argument for type 'unsigned char' 

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:297:113: note: candidate: template<ESPIChipsets CHIPSET, unsigned char DATA_PIN, unsigned char CLOCK_PIN, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  template<ESPIChipsets CHIPSET,  uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER > static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                                                                                                                 ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:297:113: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: the value of 'DATA_PIN' is not usable in a constant expression

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:7:12: note: 'DATA_PIN' was not declared 'constexpr'

 const byte DATA_PIN[5] = { 4, 8, 6, 7, A2};

            ^~~~~~~~

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:13:91: note: in template argument for type 'unsigned char' 

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:312:56: note: candidate: template<ESPIChipsets CHIPSET> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  template<ESPIChipsets CHIPSET> static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                                                        ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:312:56: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: wrong number of template arguments (3, should be 1)

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:316:74: note: candidate: template<ESPIChipsets CHIPSET, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  template<ESPIChipsets CHIPSET, EOrder RGB_ORDER> static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                                                                          ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:316:74: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: wrong number of template arguments (3, should be 2)

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:320:98: note: candidate: template<ESPIChipsets CHIPSET, EOrder RGB_ORDER, long unsigned int SPI_DATA_RATE> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  template<ESPIChipsets CHIPSET, EOrder RGB_ORDER, uint32_t SPI_DATA_RATE> static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                                                                                                  ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:320:98: note:   template argument deduction/substitution failed:

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:13:66: warning: invalid conversion from 'byte {aka unsigned char}' to 'EOrder' [-fpermissive]

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                        ~~~~~~~~~~^

sketch_nov13a:13:91: error: the value of 'DATA_PIN' is not usable in a constant expression

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:7:12: note: 'DATA_PIN' was not declared 'constexpr'

 const byte DATA_PIN[5] = { 4, 8, 6, 7, A2};

            ^~~~~~~~

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:13:91: note: in template argument for type 'EOrder' 

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:351:25: note: candidate: template<template<unsigned char DATA_PIN, EOrder RGB_ORDER> class CHIPSET, unsigned char DATA_PIN, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                         ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:351:25: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: the value of 'DATA_PIN' is not usable in a constant expression

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:7:12: note: 'DATA_PIN' was not declared 'constexpr'

 const byte DATA_PIN[5] = { 4, 8, 6, 7, A2};

            ^~~~~~~~

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:13:91: note: in template argument for type 'unsigned char' 

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:358:25: note: candidate: template<template<unsigned char DATA_PIN, EOrder RGB_ORDER> class CHIPSET, unsigned char DATA_PIN> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                         ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:358:25: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: wrong number of template arguments (3, should be 2)

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:365:25: note: candidate: template<template<unsigned char DATA_PIN> class CHIPSET, unsigned char DATA_PIN> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                         ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:365:25: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: wrong number of template arguments (3, should be 2)

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:413:25: note: candidate: template<template<EOrder RGB_ORDER> class CHIPSET, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                         ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:413:25: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: wrong number of template arguments (3, should be 2)

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

In file included from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:0:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:420:25: note: candidate: template<template<EOrder RGB_ORDER> class CHIPSET> static CLEDController& CFastLED::addLeds(CRGB*, int, int)

  static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {

                         ^~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:420:25: note:   template argument deduction/substitution failed:

sketch_nov13a:13:91: error: wrong number of template arguments (3, should be 1)

   for (byte i = 0; i < 5; i++)FastLED.addLeds<WS2812B, DATA_PIN[i], GRB>(leds[i], NUM_LEDS);

                                                                                           ^

C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino: In function 'void loop()':

sketch_nov13a:21:53: error: no matching function for call to 'fill_solid(CRGB&, const int&, CRGB)'

   fill_solid(leds[Rand][0], NUM_LEDS, CRGB( R, G, B));

                                                     ^

In file included from C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/FastLED.h:68:0,

                 from C:\Users\Sacrilege\Documents\Arduino\sketch_nov13a\sketch_nov13a.ino:1:

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/colorutils.h:25:6: note: candidate: void fill_solid(CRGB*, int, const CRGB&)

 void fill_solid( struct CRGB * targetArray, int numToFill,

      ^~~~~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/colorutils.h:25:6: note:   no known conversion for argument 1 from 'CRGB' to 'CRGB*'

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/colorutils.h:29:6: note: candidate: void fill_solid(CHSV*, int, const CHSV&)

 void fill_solid( struct CHSV* targetArray, int numToFill,

      ^~~~~~~~~~

C:\Users\Sacrilege\Documents\Arduino\libraries\FastLED\src/colorutils.h:29:6: note:   no known conversion for argument 1 from 'CRGB' to 'CHSV*'

exit status 1

the value of 'DATA_PIN' is not usable in a constant expression



Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

Ich bin wie gesagt ganz frisch und habe keine Ahnung was das Meiste davon bedeutet. Bitte um Hilfe.