Подключение внешних устройств к ардуино по com порту

Народ, привет. Прошу помощи с подключением внешних устройств к Ардуино.
У меня есть M-Duino 38AR+ на базе Arduino Mega 2560. Если не ошибаюсь, у нее на борту 4 serial порта. Мне нужно подключить к Arduino штрихкод сканнер Zebra DS3678 и весы Ohaus T32XW по com порту. Я в этом плане далеко не профи. Подскажите, пожалуйста

  1. Как можно проверить подключено ли физически какое-либо устройство к serial порту (в виде простого скетча, например)? Такой вопрос возникает из-за того, что сериал портов несколько, не могу сообразить какой из них инициализировать
  2. Как заставить собирать инфу из буфера с каждого из этих устройств? Это делается средствами Arduino IDE (только код и все) или нужны какие-либо доп надстройки со стороны внешних устройств?
    Подключение устройств:
    БарКодСканер: Сканер> - <RJ45 - DB9-female (+питание)> - - <DB9-female - rx,tx,gnd> - <RS232 tx,rx,gnd on Arduino
    Весы: Весы> - <rx,tx,gnd - DB-male> - <DB9-female - rx,tx,gnd> - <RS232 tx,rx,gnd on Arduino
    Еще прикрепил несколько картинок, возможно, пригодятся.
    На картинках весы и сканер подключены в разные моменты времени, не одновременно.

    serials

Заранее спасибо




У вас на Ардуино только один RS232. Для подключения второго ус-ва нужен преобразователь TTL-RS232.

да мне хотя бы одно устройство подключить. С каком из них меньше заморочек будет?

На весах я вижу 3 конца - для вашего RS232 достаточно, на сканере - неизвестно. Пишите простенький скетч, замыкайте RX-TX сначала и ловите эхо.

Подскажите, такой скетч как-то так будет выглядеть?

void setup() {
  Serial.begin(9600); // Начинаем серийную связь с baud rate 9600
  Serial1.begin(9600); // Начинаем связь через порт Serial1 (RX1 и TX1) с baud rate 9600
}

void loop() {
  if (Serial1.available()) { // Если доступны данные на Serial1
    char data = Serial1.read(); // Считываем символ из Serial1

    // Отправляем считанный символ обратно через Serial для эхо
    Serial.print("Received: ");
    Serial.println(data);
  }

  if (Serial.available()) { // Если доступны данные на Serial
    char data = Serial.read(); // Считываем символ из Serial

    // Отправляем считанный символ обратно через Serial1 для эхо
    Serial1.print("Echo: ");
    Serial1.println(data);
  }
}

Примерно. Вам нужно передавать и получать по Serialx, а отображать по Serial:

void setup() {
  Serial.begin(9600); 
  Serial1.begin(9600); 
}

void loop() {
  if (Serial.available()) {
    char data = Serial.read();
    Serial1.write(data);
  }

  if (Serial1.available()) {
    char data = Serial1.read();
    Serial.print(data);
  }
}

Вместо Serial1 поставить то что нужно.