Вопрос по работе с DMX сигналом

При загрузке кода почему-то такая ошибка возникает.
Просто должен приходить сигнал DMX (любое число больше 1) и по этому сигналу выполняется определенная функция (Светятся адресные светодиоды)
Что это за ошибки?

HardwareSerial0.cpp.o (symbol from plugin): In function `Serial':
(.text+0x0): multiple definition of `__vector_18'
C:\Users\peter\AppData\Local\Temp\arduino\sketches\557A4B602B2A7612D7A63DC8030A65A5\libraries\DMXSerial\DMXSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
HardwareSerial0.cpp.o (symbol from plugin): In function `Serial':
(.text+0x0): multiple definition of `__vector_19'
C:\Users\peter\AppData\Local\Temp\arduino\sketches\557A4B602B2A7612D7A63DC8030A65A5\libraries\DMXSerial\DMXSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1
#include "FastLED.h"          // библиотека для работы с лентой
#include <DMXSerial.h>

// This Example receives the 3 values starting with this channel:
const int startChannel_Adress = 0 * 3 + 1;

#define LED_COUNT 14          // число светодиодов в кольце/ленте
#define LED_DT 13             // пин, куда подключен DIN ленты

unsigned long frequency_light_time;
int max_bright = 200;          // максимальная яркость (0 - 255)
int thisdelay = 250;
int thissat = 255;           //-FX LOOPS DELAY VAR
int ihue = 0;                //-HUE (0-255)
struct CRGB leds[LED_COUNT];

void setup() {
  Serial.begin(9600);              // открыть порт для связи
  LEDS.setBrightness(max_bright);  // ограничить максимальную яркость
  LEDS.addLeds<WS2811, LED_DT, GRB>(leds, LED_COUNT);  // настрйоки для нашей ленты (ленты на WS2811, WS2812, WS2812B)
  one_color_all(0, 0, 0);          // погасить все светодиоды
  LEDS.show();                     // отослать команду
  DMXSerial.init(DMXReceiver);
  // set some default values
}


void loop () {
  // Calculate how long no data bucket was received
  /* unsigned long lastPacket = DMXSerial.noDataSince(); */
  if (DMXSerial.read(startChannel_Adress) > 1) {
    // read recent DMX values and set pwm levels
    rainbow_fade();
  }
  // DMXSerial.read(startChannel)); - чтение данных с канала под номером "startChannel"
}

void rainbow_fade() {                         //-m2-FADE ALL LEDS THROUGH HSV RAINBOW
  if (millis() - frequency_light_time > thisdelay) {
    frequency_light_time = millis();
    ihue++;
    if (ihue > 255) {
      ihue = 0;
    }
    for (int idex = 0 ; idex < LED_COUNT; idex++ ) {
      leds[idex] = CHSV(ihue, thissat, 255);
    }
    LEDS.show();
  }
}

void one_color_all(int cred, int cgrn, int cblu) {       //-SET ALL LEDS TO ONE COLOR
  for (int i = 0 ; i < LED_COUNT; i++ ) {
    leds[i].setRGB( cred, cgrn, cblu);
  }
}

что за плата?
И где у вас назначен DMXSerial ?

arduino nano

Serial обозначен в 23 строке

На Нано только один Сериал, поэтому DMXSerial не может быть использован одновременно с обычным Serial, как это сделано в вашем коде.

Посмотрите документацию:

раздел “Conflict with Arduino Serial implementation”

1 лайк

Thank you very much!)

1 лайк

@Петр , если не секрет, что за агрегат? Для сцены?

Работаю в Москве в музее “Царь макет”
тут основное освещению работает по DMX сигналу. Почти везде на всех сценках)
Приходи в гости в музей, буду рад познакомиться)

1 лайк

@Петр , да, погоди дня 3. Ща с работы сорвусь и на поезд почти 2000 км ехать)
Когда-то мечтал быть техническим соучастником всяких концертов и шоу. Эх мечты…

Тема DMX512 очень интересная.
Много интересных девайсов сделано.
Написал сообщение. Заходите, будем рады