Не принимает тип и не видит массив в той же функции для адресной ленты

#include <FastLED.h>

//Яркость менять только в промежутке (0-255)
#define NUM_BRIGH 100

//Длина линии звезды
#define NUM_TRAKS 5

//количество адрессных лент
#define NUM_TAPE 2

//записывать суда PIN каждой ленты(нельзя писать нигде цифры в название)

int NUM_PIN[] = {12 , 6};
//Сколько всего пикселей в каждой светодиодной ленте(Нужно указать и через define и в массив

int NUM_PIXELS[] = {20,6};

// Заддержка между звёздами
unsigned long delayTIME = 100; 

//затухание светодиодов (0-255)(можно поэексперемнтировать посмотреть как лучше будет выглядеть)
#define lowbright 64


void setup() {
 randomSeed (analogRead(0));
  // меняет яркость в соответствии со значением NUM_BRIGH
  // значение яркости до 255
 
}

void loop() {
  int i = 0;
  i = random (NUM_TAPE);
  NUM_LEDS = NUM_PIXELS[i];
  NUM_PINA= NUM_PIN[i];
  CRGB leds[NUM_LEDS];
  
  FastLED.addLeds<NEOPIXEL, NUM_PIN>(leds, NUM_LEDS);
 
  // меняет яркость в соответствии со значением NUM_BRIGH
  // значение яркости до 255
 FastLED.setBrightness(NUM_BRIGH);
  //перерыв между падающими звёздами
 delay(delayTIME);
 //Вызов функции с звездой
 


// Выберает позицию для начала звезды
 int NUM_UTAPE = random(NUM_TAPE);
 int starPosition = random(NUM_PIXELS[NUM_UTAPE] - NUM_TRAKS);

 
  //Делает звёздный путь
  for (int i = 0; i < NUM_TRAKS; i++, starPosition++) {
      if (i == 0) {
      leds[starPosition] = CHSV(0, 0, NUM_BRIGH); // первый пиксель ярче
      } 
      else {
      leds[starPosition] =CRGB::White; // цвет шлейфа (белый)
      }
      FastLED.show();
      delay(100);
  }
  starPosition = starPosition - NUM_TRAKS;
  fadeToBlackBy(leds, NUM_LEDS, lowbright); // постепенно затухаем все светодиоды
  //уберает звёздный путь
  for (int i = 0; i < NUM_TRAKS; i++, starPosition++){
    leds[starPosition] = CRGB::Black;
    FastLED.show();
    delay(50);
  }
 FastLED.show();
}

Вообщем проблема состоит в том что я не знаю какой тип надо NUM_PINA и NUM_LEDS , если поставить int то функция инициализации не принимает такой тип. пишет

/sketch/sketch.ino: In function 'void loop()':
'NUM_LEDS' was not declared in this scope
suggested alternative: 'NUM_PIXELS'
   NUM_PIXELS

и

'NUM_PINA' was not declared in this scope
suggested alternative: 'NUM_PIN'
   NUM_PIN

также пишет что массив leds не объявлен хотя он объявлен в той же функции что и инициализация

'leds' was not declared in this scope
suggested alternative: 'gets'

Читай что пишет компилятор.
Дело то не в типе, а в том что не объявлены переменные.

В 36 строке вначале напиши int.
Кактус пояснил почему.

ТС, что ты вообще хочешь “изобразить”?
Там же вместе с библиотекой примеры есть…
Мой “стенд”:

  • Arduino Nano
  • Arduino IDE 1.8.19
Код компилируется
// КОМПИЛИРОВАЛ ПОД ПЛАТУ ARDUINO NANO

#include <FastLED.h>              // https://github.com/FastLED/FastLED/tree/master

//Яркость менять только в промежутке (0-255)
#define NUM_BRIGH 100

//Длина линии звезды
#define NUM_TRAKS 5

//количество адрессных лент
#define NUM_TAPE 2

#define DATA_PIN 3              // ВЗЯЛ ИЗ ПРИМЕРА К БИБЛИОТЕКЕ 

//записывать суда PIN каждой ленты(нельзя писать нигде цифры в название)

int NUM_PIN[] = {12 , 6};
//Сколько всего пикселей в каждой светодиодной ленте(Нужно указать и через define и в массив

int NUM_PIXELS[] = {20, 6};

// Заддержка между звёздами
unsigned long delayTIME = 100;

//затухание светодиодов (0-255)(можно поэексперемнтировать посмотреть как лучше будет выглядеть)
#define lowbright 64


void setup() {
  randomSeed (analogRead(0));
  // меняет яркость в соответствии со значением NUM_BRIGH
  // значение яркости до 255

}

void loop() {
  int i = 0;
  i = random (NUM_TAPE);
  int NUM_LEDS = NUM_PIXELS[i];
  int NUM_PINA = NUM_PIN[i];
  CRGB leds[NUM_LEDS];

  //  FastLED.addLeds<LED_TYPE, NUM_PIN>(leds, NUM_LEDS);
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

  // меняет яркость в соответствии со значением NUM_BRIGH
  // значение яркости до 255
  FastLED.setBrightness(NUM_BRIGH);
  //перерыв между падающими звёздами
  delay(delayTIME);
  //Вызов функции с звездой



  // Выберает позицию для начала звезды
  int NUM_UTAPE = random(NUM_TAPE);
  int starPosition = random(NUM_PIXELS[NUM_UTAPE] - NUM_TRAKS);


  //Делает звёздный путь
  for (int i = 0; i < NUM_TRAKS; i++, starPosition++) {
    if (i == 0) {
      leds[starPosition] = CHSV(0, 0, NUM_BRIGH); // первый пиксель ярче
    }
    else {
      leds[starPosition] = CRGB::White; // цвет шлейфа (белый)
    }
    FastLED.show();
    delay(100);
  }
  starPosition = starPosition - NUM_TRAKS;
  fadeToBlackBy(leds, NUM_LEDS, lowbright); // постепенно затухаем все светодиоды
  //уберает звёздный путь
  for (int i = 0; i < NUM_TRAKS; i++, starPosition++) {
    leds[starPosition] = CRGB::Black;
    FastLED.show();
    delay(50);
  }
  FastLED.show();
}

Скетч использует 4504 байт (13%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 109 байт (5%) динамической памяти, оставляя 1939 байт для локальных переменных. Максимум: 2048 байт.

Варнинги

sketch_may26a.ino: In function ‘void loop()’:
sketch_may26a.ino:39:7: warning: unused variable ‘NUM_PINA’ [-Wunused-variable]
int NUM_PINA = NUM_PIN[i];
^~~~~~~~

Что эти константы (NUM_PINA и NUM_LEDS) у Вас никак и нигде не объявлены. Объявите, присвойте значения и жизнь заиграет новыми красками.

1 лайк
void loop() {
  int i = 0;
  int NUM_LEDS = 0;
  int NUM_PINA= 0;
  i = random (NUM_TAPE);
  NUM_LEDS = NUM_PIXELS[i];
  NUM_PINA= NUM_PIN[i];
  CRGB leds[NUM_LEDS];
  
  FastLED.addLeds<NEOPIXEL, NUM_PIN>(leds, NUM_LEDS);
 
  // меняет яркость в соответствии со значением NUM_BRIGH
  // значение яркости до 255
 FastLED.setBrightness(NUM_BRIGH);
  //перерыв между падающими звёздами
 delay(delayTIME);

Обьвил но теперь ругаеться что под шаблон библиотеки не подходит

/sketch/sketch.ino: In function 'void loop()':
no matching function for call to 'CFastLED::addLeds<NEOPIXEL, NUM_PIN>(CRGB [NUM_LEDS], uint32_t&)'
In file included from /sketch/sketch.ino:1:0:
In file included from /sketch/sketch.ino:1:0:
/libraries/FastLED/src/FastLED.h:274: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) {
                                                                                                                                  ^~~~~~~
In file included from /sketch/sketch.ino:1:0:
/libraries/FastLED/src/FastLED.h:274: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) {
                                                                                                                                  ^~~~~~~
/libraries/FastLED/src/FastLED.h:274:130: note:   template argument deduction/substitution failed:

Ты #4 читал или просто сам по себе «такой»?

Ну, а что ему ещё делать, если Вы шаблон несуществующий вызываете?

Знаете, ровно на ту же самую проблему я лично Вам уже отвечал. И потом, когда у Вас ошибка “ушла”, показывал, что никуда она не ушла и указал в какой строке сидит реальная, настоящая ошибка.

Думал, что Вы тогда разобрались, т.к. никаких вопросов от Вас больше не последовало. Но сейчас я вижу практически ту же самую ошибку. Нам что, сначала начинать? Мне опять бить пальцы, чтобы Вы исчезли, наплевав на всё, как тогда?

@DFD618
Дружище, для начала - ты явно вообще ничего не понимаешь в том, как библиотека работает. Нафига ты сразу пытаешься какую-то муть городить?

Выбирай задачи по своему уровню (околоплинтусному на данный момент). Начни с примеров, как тебе @BOOM советует