Сделайте так, чтобы мой 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 без ненужных осложнений (если таковые имеются).
@Zazaeil, 👍0
Обсуждение1 ответ
Лучший ответ:
Посмотрите техническое описание max232. Это старый чип, который делает то, что вам нужно. Последовательный порт ARDUINO работает при напряжении от 0 до 5 В, а старый стандарт последовательных данных работает при +-12 В. Кроме того, будет иметь место инверсия «высокая-низкая».
- Как разделить входящую строку?
- Как вывести несколько переменных в строке?
- В чем разница между Serial.write и Serial.print? И когда они используются?
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Программы построения последовательных данных
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Очистить существующий массив при получении новой последовательной команды
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