Сделайте так, чтобы мой Arduino (Mega или что-то другое, что лучше подходит для этой задачи) мог читать и записывать последовательные данные в порт **rj45**.

У меня есть китайский гибридный солнечный инвертор, который имеет вход rj45, который поддерживает последовательный протокол (скорость передачи данных 2400 бод, без контроля четности, 8 бит, 1 стоповый бит). Мне нужен мой Arduino (скажем, Mega или что-то еще, не имеет особого значения), чтобы общаться с ним. Какой вариант лучше всего подключить плату Arduino к входу rj45, чтобы она была доступна в коде как Serial?

По сути, мне бы хотелось, чтобы следующий фрагмент кода «просто работал»:

    uint8_t query[] = {81, 80, 73, 71, 83, 183, 169, 13};
    Serial.write(query, sizeof(query)); // Записываем несколько байтов в устройство, т.е. отправляем запрос.
    Serial.flush();

    while (!Serial.available()); // Подождите, пока устройство ответит.
    String str = Serial.readString();
    // делаем что-то с `str`...

Другими словами, я ищу аппаратное решение для подключения моей платы Arduino к входу rj45 без ненужных осложнений (если таковые имеются).

, 👍0

Обсуждение

rj45 здесь не имеет значения, потому что это всего лишь 8-контактный разъем... электроника позади разъема является важной частью, @jsotola

@jsotola Я точно знаю, что он использует «Serial» с указанными мной параметрами. Это единственный факт, который я знаю. Я полагаю, что это протокол «r232» или что-то в этом роде, я далек от аппаратной части вещей. Тем не менее, байты, которые я отправляю по серийному номеру, верны., @Zazaeil

Вам необходимо знать уровень напряжения сигнала (Arduinos использует 5 В или 3,3 В в зависимости от модели), используются ли управляющие сигналы (DTR, DCD, DSR...) (Arduinos их не используют), требуется ли управление потоком данных. (Arduinos изначально не поддерживает управление потоком) и распиновку разъема RJ45. Если все звезды совпадают, остается лишь подключить RX, TX и GND устройства к соответствующим контактам Arduino. В противном случае вам может понадобиться переключатель уровня., @Edgar Bonet

@EdgarBonet У меня нет необходимых инструментов для получения этих данных. Надеюсь, он выровняется так, как ожидалось, и просто подключит названные «RX», «TX» и «GND» к преобразователю. Вопрос в том, как должен выглядеть этот конвертер? Я предполагаю, что на плате Arduino потребуется установить преобразователь, а также мне понадобится кабель для передачи данных, который будет передавать сигнал на вход rj45. Где их взять и как их правильно выбрать? Я не вижу других вариантов, кроме как «попробовать» и помолиться., @Zazaeil

Вы можете подумать о том, чтобы иметь несколько запасных Arduino, подключение их к неправильному напряжению может их сжечь. Существуют интерфейсные микросхемы, предназначенные для перевода с микрокабеля на последовательный кабель. Я предполагаю, что это коммерческий инвертор, и я был бы удивлен, если бы это был просто логический выход., @Gil

Лучше всего, скорее всего, найти кого-то с минимальными знаниями в области последовательной связи и оборудования, чтобы физически помочь вам у вас дома. Или приготовьтесь к сложному обучению, включая покупку некоторых инструментов, таких как осциллограф. Вам необходимо изучить техническую информацию о вашем инверторе. Пожалуйста, [отредактируйте] свой вопрос, добавив всю новую информацию, по крайней мере, марку и модель инвертора, оптимально ссылки на соответствующую документацию., @the busybee

используйте последовательный ключ на компьютере, чтобы выяснить соединения... получите один из этих https://duckduckgo.com/?q=serial+dongle&iax=images&ia=images ... и, возможно, один из этих https://duckduckgo .com/?q=serial+dongle&iax=images&ia=images ... отрежьте конец кабеля локальной сети для подключения RJ45 ... убедитесь, что USB-ключ можно подключить к коммутационному разъему DB9 ... купите один с гнездовым разъемом и другой с разъемом «папа», @jsotola


1 ответ


Лучший ответ:

1

Посмотрите техническое описание max232. Это старый чип, который делает то, что вам нужно. Последовательный порт ARDUINO работает при напряжении от 0 до 5 В, а старый стандарт последовательных данных работает при +-12 В. Кроме того, будет иметь место инверсия «высокая-низкая».

,