Вопрос по работе с библиотекой DMXSerial.h

#include <DMXSerial.h>
const int addr2 = 5;
const int Led2Pin = 13;

void setup() {
DMXSerial.init(DMXReceiver);
pinMode(Led2Pin, OUTPUT); // пин как выход
digitalWrite(47, LOW);
digitalWrite(49, LOW);
}

void loop()
{
analogWrite(Led2Pin, DMXSerial.read(addr2));
}

Плата Arduino Mega2560 получает DMX- данные через преобразователь MAX485-RS485. С помощью тестовой программки данные с конкретного адреса пачки данных выводятся на ШИМ-выход 13 и засвечивают с разной яркостью светодиод. При подключении выходов преобразователя к пинам 0,1 всё работает. При подключении к пинам 19,18 и внесении изменения в файл DMXSerial.avr ( раскомментирование строки #define DMX_USE_PORT1) приём не происходит (сигнал 0) и светодиод на контроллере не мигает. Подскажите, пожалуйста, какие могут быть причины?

Василиса, перенесите три апострофа в конце кода на отдельную строку, а то читать неудобно.

По сути вопроса не отвеча, на пинах 19 18 вроде все должно работать

что это было?

Может недопонял чего, но в описании библиотеки написано:
DMXSerial - A Arduino library for sending and receiving DMX using the builtin serial hardware port.

Так пишет, что сделано, но не взлетело:
В инструкции:
Arduino MEGA 2560

When using the chip on the Arduino MEGA 2560 board you have more than one USART available and maybe you wish to use port 1 instead of port 0. This can be done by enabling the definitions for port1 in the library in file src\DMXSerial_avr.h just uncomment the line

#define DMX_USE_PORT1

33 строка ежели что

Да, извиняюсь, протупил.

Делала. Не помогает. 0 порт перестаёт читать, а 1 й не читает. Причём, судя по светодиодам на платах, порт не инициализируется.

Видимо надо смотреть библиотеку:
Serial0

#define UCSRnA UCSR0A
#define RXCn RXC0
#define TXCn TXC0
#define UCSRnB UCSR0B
#define RXCIEn RXCIE0
#define TXCIEn TXCIE0
#define UDRIEn UDRIE0
#define RXENn RXEN0
#define TXENn TXEN0
#define UCSRnC UCSR0C
#define USBSn USBS0
#define UCSZn0 UCSZ00
#define UPMn0 UPM00
#define UBRRnH UBRR0H
#define UBRRnL UBRR0L
#define UDRn UDR0
#define UDREn UDRE0
#define FEn FE0
#define USARTn_RX_vect USART0_RX_vect
#define USARTn_TX_vect USART0_TX_vect
#define USARTn_UDRE_vect USART0_UDRE_vect

И Serial1

#define UCSRnA UCSR1A
#define RXCn RXC1
#define TXCn TXC1
#define UCSRnB UCSR1B
#define RXCIEn RXCIE1
#define TXCIEn TXCIE1
#define UDRIEn UDRIE1
#define RXENn RXEN1
#define TXENn TXEN1
#define UCSRnC UCSR1C
#define USBSn USBS1
#define UCSZn0 UCSZ10
#define UPMn0 UPM10
#define UBRRnH UBRR1H
#define UBRRnL UBRR1L
#define UDRn UDR1
#define UDREn UDRE1
#define FEn FE1
#define USARTn_RX_vect USART1_RX_vect
#define USARTn_TX_vect USART1_TX_vect
#define USARTn_UDRE_vect USART1_UDRE_vect

Ошибок не усекли )))
PS нет причин почему оно не должно работать ( …акромя… история дальше умалчивает)

О каких светодиодах идёт речь если вы используете 1 порт, их там просто нет

К сожалению, не усекла. Я делаю пока первые шаги в программировании, поэтому и использую готовые библиотеки. Данные куски библиотеки я сравнивала, но максимум что увидела, что значения отличаются во всех строках. Поэтому и обратилась к специалистам, чтоб помогли…Светодиод имела ввиду на преобразователе MAX485-RS485, через который сигнал попадает на Serial1.

так вы где меняли? речь шла о приёмнике (пин 19)

Не поняла вопрос. В библиотеке только раскомментировала “#define DMX_USE_PORT1”, чтобы получать dmx-сигнал на 1 порт (вход на 19 пин). Если ошибка в библиотеке, подскажите, пожалуйста, где именно!

всю библиотеку не смотрел, но навряд ли в ней ошибка, если подключение правильное может у меги 1 порт неисправен, залить какой нибудь тестовый скетч и пообщаться с ним через переходник USB-UART может быть…

В примерах есть Сниффер, попробуйте его залить, как раз для приёма использует сериал 1

Спасибо, обязательно проверю.