Как настроить последовательный порт в Arduino IDE. Как считывать и отправлять данные через COM-порт. Какие инструменты использовать для отладки и мониторинга COM-порта. Как изменить номер COM-порта устройства.
Что такое COM-порт и для чего он используется в Arduino
COM-порт (Communication Port) — это последовательный интерфейс, используемый для обмена данными между Arduino и компьютером. Он позволяет:
- Загружать скетчи на плату Arduino
- Отправлять команды и данные с компьютера на Arduino
- Получать данные и отладочную информацию от Arduino на компьютер
По сути, COM-порт является виртуальным портом, эмулирующим работу физического последовательного интерфейса. При подключении Arduino к USB-порту компьютера, операционная система создает виртуальный COM-порт для обмена данными с платой.
Настройка COM-порта в Arduino IDE
Чтобы начать работу с COM-портом в Arduino IDE, необходимо выполнить следующие шаги:
- Подключить Arduino к компьютеру через USB-кабель
- В меню «Инструменты» выбрать пункт «Порт»
- Выбрать COM-порт, соответствующий подключенной Arduino
Как определить нужный COM-порт? Обычно он имеет название вида «COMx», где x — число. Если вы не уверены, какой порт выбрать, можно отключить Arduino, посмотреть список доступных портов, затем подключить Arduino и выбрать появившийся в списке порт.
Чтение данных из COM-порта
Для чтения данных из COM-порта в скетче Arduino используется объект Serial. Вот базовый пример:
«`cpp void setup() { Serial.begin(9600); // Инициализация Serial на скорости 9600 бод } void loop() { if (Serial.available() > 0) { // Если есть доступные данные String data = Serial.readStringUntil(‘\n’); // Читаем строку до символа новой строки Serial.print(«Получено: «); Serial.println(data); } } «`Этот скетч инициализирует Serial-порт в функции setup(), а затем в цикле loop() проверяет наличие данных и считывает их, если они доступны.
Отправка данных через COM-порт
Отправка данных через COM-порт также осуществляется с помощью объекта Serial. Пример отправки данных:
«`cpp void setup() { Serial.begin(9600); // Инициализация Serial на скорости 9600 бод } void loop() { Serial.println(«Привет, компьютер!»); // Отправка строки delay(1000); // Пауза 1 секунда } «`Этот скетч каждую секунду отправляет строку «Привет, компьютер!» через COM-порт.
Инструменты для мониторинга COM-порта
Для отладки и мониторинга данных, передаваемых через COM-порт, можно использовать различные инструменты:
- Монитор порта в Arduino IDE — встроенный инструмент для просмотра данных
- PuTTY — популярный терминальный клиент с поддержкой COM-портов
- Arduino Serial Plotter — инструмент для визуализации числовых данных
Выбор инструмента зависит от конкретных задач и предпочтений разработчика.
Изменение номера COM-порта
Иногда возникает необходимость изменить номер COM-порта, присвоенный Arduino. Для этого выполните следующие шаги:
- Откройте Диспетчер устройств Windows
- Найдите устройство Arduino в разделе «Порты (COM и LPT)»
- Щелкните правой кнопкой мыши и выберите «Свойства»
- Перейдите на вкладку «Параметры порта» и нажмите «Дополнительно»
- В выпадающем списке «Номер COM-порта» выберите желаемый номер
- Нажмите «ОК» для применения изменений
После этого Arduino будет использовать новый номер COM-порта при подключении к компьютеру.
Решение проблем с COM-портом
При работе с COM-портом могут возникнуть различные проблемы. Вот некоторые распространенные проблемы и способы их решения:COM-порт не отображается в Arduino IDE
Возможные причины и решения:
- Проверьте подключение USB-кабеля
- Убедитесь, что установлены правильные драйверы для вашей платы Arduino
- Попробуйте использовать другой USB-порт компьютера
- Перезагрузите Arduino IDE
Ошибка доступа к COM-порту
Если возникает ошибка доступа к COM-порту, попробуйте:
- Закрыть все программы, которые могут использовать COM-порт (включая монитор порта Arduino IDE)
- Перезагрузить компьютер
- Проверить настройки безопасности и разрешения для COM-порта
Некорректные данные при чтении из COM-порта
Если при чтении данных из COM-порта вы получаете некорректные символы, проверьте:
- Соответствие скорости передачи данных (бод) на Arduino и в программе чтения
- Правильность настроек формата данных (биты данных, четность, стоповые биты)
- Отсутствие помех в USB-кабеле
Продвинутые техники работы с COM-портом
Для более сложных задач при работе с COM-портом можно использовать следующие техники:
Использование прерываний для обработки данных
Вместо постоянной проверки наличия данных в loop(), можно использовать прерывания для обработки входящих данных:
«`cpp void setup() { Serial.begin(9600); attachInterrupt(digitalPinToInterrupt(0), serialEvent, CHANGE); } void loop() { // Основной код программы } void serialEvent() { if (Serial.available()) { char inChar = (char)Serial.read(); // Обработка полученного символа } } «`Буферизация данных
Для эффективной обработки больших объемов данных используйте буферизацию:
«`cpp const int BUFFER_SIZE = 64; char buffer[BUFFER_SIZE]; int bufferIndex = 0; void setup() { Serial.begin(9600); } void loop() { while (Serial.available() > 0) { char inChar = (char)Serial.read(); if (inChar == ‘\n’ || bufferIndex >= BUFFER_SIZE — 1) { buffer[bufferIndex] = ‘\0’; processBuffer(); bufferIndex = 0; } else { buffer[bufferIndex++] = inChar; } } } void processBuffer() { // Обработка данных в буфере Serial.println(buffer); } «`Заключение
Работа с COM-портом является важной частью разработки проектов на Arduino. Правильная настройка и использование COM-порта позволяет эффективно обмениваться данными между Arduino и компьютером, что открывает широкие возможности для создания интерактивных проектов и систем сбора данных.Освоив базовые принципы работы с COM-портом, вы сможете создавать более сложные и функциональные проекты на Arduino, взаимодействующие с компьютером и другими устройствами через последовательный интерфейс.
как с ним работать?. Блог Амперкот.ру
- Главная
- Блог
Serial-порт: как с ним работать?
29 декабря 2019
Очень часто при отладке различных программ на Arduino используется так называемый Serial-порт. Из него можно как считывать данные, так и отправлять команды на наше устройство.
Посмотрим, как работать с Serial, но не со стороны Arduino, а со стороны компьютера. Готовы? Поехали!
Вариант первый. Arduino IDE
Один из инструментов, входящих в состав Arduino IDE, носит гордое название — Монитор порта. Он может быть запущен только когда плата подключена к компьютеру. Есть возможность изменять скорость передачи данных, и символ окончания строки.
Если мы хотим работать только с текстом — рабочий вариант, но если при подключении открывается консоль(например в случае с Micropython), об удобстве можно забыть.
Вариант второй. Специализированное ПО
Поскольку интерфейс Serial-порта используется не только при разработке микроконтроллеров, но и в других областях IT были созданы специальные программы, для удобного взаимодействия или управления.
Одним из самых популярных решений для Windows — является программа PuTTY. Не смотря на то, что она заявлена как SSH клиент, её очень часто используют для подключения по COM-порту.
Для этого необходимо на основной вкладке среди способов подключения выбрать Serial
, ввести имя порта, скорость и нажать на Open
.
или программу с простым названием Serial, правда за её использование после пробного периода придётся отдать 30$.
Вариант третий. Программирование
Но в том случае, когда у вас уже готовое устройство и вам необходимо им управлять, каждый раз отправлять команду — очень не удобно. Гораздо проще автоматизировать это, написав свою программу.
Для того, что бы написать программу для управления устройством через Serial-порт на Python, необходимо использовать библиотеку PySerial
. Её можно установить через менеджер пакетов: pip install pyserial
.
Для создания подключения и отправки сообщения необходим следующий код:
my_serial = serial.Serial('/dev/ttyS1', 115200) my_serial.write(b'command_1') my_serial.close()
Он откроет подключение на порту /dev/ttyS1
, со скоростью 115200
, затем отправит на устройство байтовую строчку b'command_1'
, а после этого закроет подключение.
Подробнее об использовании библиотеки можно прочитать в этой статье.
Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.
Поделиться:
Как считать данные с com порта
Форум Список пользователей Все разделы прочитаны Справка Расширенный поиск. Страница 1 из 2 1 2 Последняя К странице: Показано с 1 по 10 из Опции темы Версия для печати Отправить по электронной почте…. В пересылаемых данных всегда присутствует «FF FF» остальные значения меняются. При помощи каких программных средств CoDeSys можно извлекать из этого пакета данных только «75 2А» и писать это значение в переменную.
Поиск данных по Вашему запросу:
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
Содержание:
- Подписаться на ленту
- COM порт Windows. SerialPort. C#.
- Serial Monitor. Общаемся с компьютером
- COM-порт. Опрос и вывод данных на JAVA. Шаг №46
- COM-порт в Windows (программирование)
- 2.5. Обмен данными через последовательный порт
- Чтение данных с COM порта в реальном времени
- Как считывать данные с com порта C++ VS2010?
- Передача данных в Excel из arduino
- Чтение из последовательного порта в С#
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Как вычислить номер COM-порта и скорость на навигаторе Windows CE (инструкция по PortTool)
youtube.com/embed/8YdBDiTmGYU» frameborder=»0″ allowfullscreen=»»/>Подписаться на ленту
Здравствуйте, я новичок. Такой вопрос: допустим, есть текстовый файл, в котором записана последовательность единиц и нулей. Как считать эту последовательность? Можно пример кода? Если нет возможности через текстовый файл, то как считать данные с COM-порта? Derton96 пишет: есть текстовый файл, в котором записана последовательность единиц и нулей.
Нужна библиотека для работы с устройством, поддерживающим файловую систему. У вас файл на каком носителе? Derton96 пишет: Если нет возможности через текстовый файл, то как считать данные с COM-порта?
Считывать побайтно, например при помощи класса Serial. Файл находиться на PC. Если он есть то где? На удалённом сервере? На Вашем компьютере? На Вашем телефоне? На СD, воткнутом в Вашу магнитолу? На флешке, которая лежит у Вас в заднем кармане? В закрытой сети Вашего Банка? В базе данных ФБР? Во всех перечисленных случаях читать его надо по-разному. Вам все коды нужны? Или Вы всё-таки определитесь, где он у Вас есть? Derton96 пишет: Файл находиться на PC.
О каком числе пишете? Derton96 пишет: или можно отправить все число сразу? Derton96 пишет: О каком числе пишете? Число это последовательность единиц и нулей, правда незнаю как лучше, ставить пробелы после каждого символа или подряд. Хотел бы уточнить: единицы и нули это по сути значения HIGH и LOW для светодиода, так как заранее длинна этой последовательности не известна, я думал записать в виде переменной типа char и уже с этим работать тут я разберусь , собственно проблема в том, как из текстового файла загрузить в переменную и возможно ли это вообще?
Derton96 пишет: проблема в том, как из текстового файла загрузить в переменную и возможно ли это вообще? А сами-то как думаете? Если не отправить данные в порт, то откуда ж они там возьмутся, чтобы их считать? Derton96 , ра всякий случай: Ардуина может получить данные из файла несколькими способами:. Необходимое оборудование: USB кабель. Если файл находится на удаленном компьютере, — передать по сети. Оборудование — Ethernet или WiFi Shield. Ели Апрдуина должна работать автономно, записать файл иа SD и считывать самой Ардуиной.
Оборудоваие — SD-модуль для Ардуино. Оборудоваие — SD-модуль для Ардуино я в соседней теме пытаюсь узнать хотя бы приблизительную скорость работы ардуины на чтение-запись с SD. И при заливке скетча в несколько систем надо каждый раз менять номер радиоканала и pipe в 3х скетчах. А где находиться каталог пользовательских библиотек? Обычно включаю в хидеры в каталоге проекта include «.. Есть ли возможность на этапе заливки скетча спрашивать какая система сейчас программируется?
А то у разных систем еще и разные коэффициенты нагревателя, чтобы все забить в файл а при заливке выбирать. У меня те же мысли появились, пока ждал ответ. Да и с момента перехода на Ардуино, после человеческого программирования, уже подзабыл все предпроцессорные директивы.
Благодарю за помощь. Что такое Ардуино? Войдите или зарегистрируйтесь , чтобы получить возможность отправлять комментарии 20 ответов [ Последнее сообщение ]. Зарегистрирован: Войдите или зарегистрируйтесь , чтобы получить возможность отправлять комментарии.
Derton96 пишет:. ЕвгенийП пишет:. Питер пишет:. Derton96 , ра всякий случай: Ардуина может получить данные из файла несколькими способами: 1. А если мне надо взять данные из файла при загрузке скетча, это возможно? У меня сейчас несколько систем из 3х устройств связанных по радиоканалу nRF Может есть возможность прописать это во внешнем файле и менять один раз?
Электропочта для связи:.
COM порт Windows. SerialPort. C#.
Close ;. Для передачи данных из одного приложения в другое можно использовать разные способы. Например, именованные каналы named pipes , сокеты sockets , и многие другие. Выбирать нужно в зависимости от условий: скорость передачи, лёгкость взаимодействия и прочее. Также можно использовать WCF — эта технология позволяет использовать внутри себя те же каналы, сокеты, MSMQ очередь сообщений , web-services и другое, при этом можно переключиться с одного способа на другой лишь изменив конфиг-файл. Дело в том, что serial port не является запоминающим устройством. Когда вы записали в него строку, то данные ушли, и если в данный момент какое-то устройство было подключено, то оно может их прочитать.
ComRead — программа временной развертки данных с помощью которых можно включить/выключить сигнал СОМ-порта RTS.
Serial Monitor. Общаемся с компьютером
Предыдущее посещение: Сегодня, Anarh 01 авг , TxN 01 авг , Tolking 01 авг , Anarh 02 авг , Anarh 20 авг , DbIMok 20 авг , TermenatorX 20 авг ,
COM-порт. Опрос и вывод данных на JAVA. Шаг №46
Всем привет. Итак как Вы помните в предыдущей статье мы разобрали создание простого оконного приложения на Java, а именно окно, кнопку и текстовое поле. Я использовал последнюю. Библиотека скачивается архивным файлом расширением.
Программа ComRead v. Программа предназначена для создания временной развертки данных передаваемых по последовательным каналам данных.
COM-порт в Windows (программирование)
Здравствуйте, гость Вход Регистрация. Форумы по кроссплатформенному программированию CrossPlatform. RU портал Документация. Помощь Поиск Пользователи Календарь Теги форума. Искать только в этом форуме? Дополнительные параметры.
2.5. Обмен данными через последовательный порт
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда — alarforum yandex. Обязательно пройдите активизацию e-mail. Чтение данных с COM-порта и вывод их в memo. Аналогичные проблемы множество раз уже обсуждались и не только тут, поэтому прошу прощения если повторяюсь. Старался использовать решения в старых постах, но к сожалению полностью решить стоящую передо мной задачу пока так и не смог. Имеется устройство работающее по COM-порту. Данные передаются в HEX формате и представляют из себя набор из 18 чисел, которые при каждой итерации обновляются. Необходимо считывать данные с этого устройства и заполнять ими memo.
У кого есть опыт работы по считыванию данных с СОМ-порта?Суть проблемы: на Задача — считать эти данные. Поиском кое-что.
Чтение данных с COM порта в реальном времени
Используя наш сайт, вы подтверждаете, что прочитали и поняли политику о куки , политику конфиденциальности и пользовательское соглашение. Stack Overflow на русском — это сайт вопросов и ответов для программистов. Регистрация займёт не больше минуты. Возникла необходимость получать данные с Arduino, к ней подключен RC и в мониторе порта выводится 1 строка чисел, мне хочется чтобы при считывании эта строка 1 выводилась на экран 2 записывалась в текстовик 3 Отправлялась на сервер Такое возможно?
Как считывать данные с com порта C++ VS2010?
ВИДЕО ПО ТЕМЕ: COM Порт
Данный порт и по сей день очень часто используется для передачи данных между внешними устройствами и ПК. Оперировать данными COM порта можно при помощи готовых программ. Однако они позволяют лишь читать или передавать данные при помощи порта. Обрабатывать данные, отображать их в удобном для пользователя виде они не могут, потому что это не их основная задача.
Чтобы просмотреть это видео, включите JavaScript и используйте веб-браузер, который поддерживает видео в формате HTML5. На протяжении тысячелетий люди усовершенствовали орудия труда, изучали силы природы и подчиняли их себе, использовали их энергию для работы машин, а в прошлом веке создали машины, которые могут управлять другими машинами.
Передача данных в Excel из arduino
Подскажите, пожалуйста, если не сложно. Нашел в сети пример работы скрипта с com-портом посредством pyserial. Отправляешь команду, возвращается ответ с порта. А как поступить если нужно периодически порт слушать? И как понять, что пришли новые данные? Данные — это строка в 25 символов. Спасибо за помощь!
Чтение из последовательного порта в С#
Она предназначена для обмена данными с помощью последовательного порта, чаще всего с Arduino. Так как в Arduino IDE нет встроенных средств для отладки прошивок, монитор порта является единственным доступным для этого средством. Утилита состоит из одного окна и одновременно может работать только с одним последовательным портом, номер которого был выбран в Arduino IDE.
Как изменить COM-порт Arduino
Arduino3 месяца назад
от Kashif
Arduino — это макетная плата, используемая студентами, инженерами и преподавателями в учебных целях. Для связи с Arduino нам нужна IDE, известная как Arduino IDE. Мы можем загружать скетчи на плату Arduino с помощью ПК или ноутбука. Для этой последовательной связи Arduino нужен COM-порт для загрузки в него кода. COM-порт широко известен как порт ввода-вывода для устройства, обычно ПК, который обеспечивает связь между Arduino и ПК. Иногда COM-порт не работает, и нам нужно изменить его на другой, поэтому вот краткое руководство по изменению COM-порта для Arduino.
Почему нам нужно изменить COM-порт в ArduinoИзменение COM-порта Arduino требуется, потому что некоторым пользователям нужен определенный порт для Arduino, что требует от них изменить установленный по умолчанию COM-порт на ПК для Arduino. ПК настраивают несколько последовательных портов в соответствии с подключенными устройствами, поэтому для подключения Arduino к определенному порту нам нужно сначала изменить его.
Еще одна причина, по которой нам необходимо обновить выбор COM-порта, заключается в том, что иногда Arduino автоматически меняет свои COM-порты или после каждого переподключения COM-порт обновляется, поэтому мы выбираем постоянный и стабильный COM-порт для платы Arduino. Выполните следующие шаги, чтобы обновить выбор COM-порта Arduino:
Как изменить COM-порт ArduinoCOM-порт является необходимым инструментом для последовательной связи между устройствами, и существует множество устройств, включая Arduino, которые поддерживают последовательную передачу данных через COM-порт. Вот несколько шагов, чтобы изменить COM-порт для платы Arduino.
Подключите плату Arduino к ПКСначала подключите плату Arduino, чтобы ПК мог настроить COM-порт по умолчанию для Arduino, позже мы изменим его на новый COM-порт.
Шаг 1: Откройте IDE Arduino. Его можно открыть с помощью ярлыка IDE или введя Arduino IDE в поле поиска окна.
Шаг 2: После того, как Arduino IDE откроется, здесь откроется новое окно с интерфейсом IDE, мы можем написать любой скетч, какой захотим. В настоящее время плата Arduino отключена, поэтому COM-порт не отображается.
Шаг 3: Подключите плату Arduino к любому аппаратному последовательному порту ПК с помощью кабеля USB B.
Шаг 4: После подключения платы Arduino среда разработки Arduino настроит COM-порт для платы Arduino. Некоторые старые версии IDE могут не делать этого самостоятельно, поэтому выбирать COM-порт вручную; перейдите по ссылке: Сервис>Порт>Последовательные порты>COM6.
Откройте диспетчер устройств и обновите драйверы COM-порта ArduinoЧтобы изменить COM-порт для платы Arduino, сначала мы должны обновить драйверы для портов, а для этого нам нужно открыть диспетчер устройств. Выполните следующие действия, чтобы завершить обновление драйверов.
Шаг 1: Arduino Uno подключен к COM-порту 6, теперь, чтобы изменить COM-порт, сначала нам нужно открыть диспетчер устройств. Введите Диспетчер устройств в поле поиска Windows, как показано на рисунке ниже:
Шаг 2: Диспетчер устройств откроет новое окно, где мы можем проверить порт, подключенный к нашей плате Arduino, в «COM & LPT» . раздел. Поскольку Arduino IDE показывает нам порт COM6 для платы Arduino, точно такой же порт также будет упомянут здесь в диспетчере устройств.
Шаг 3: Прежде чем мы сможем выбрать новый COM-порт для платы Arduino, рекомендуется обновить драйверы COM-порта для Arduino. Выберите COM-порт Arduino и щелкните его правой кнопкой мыши, откроется раскрывающееся меню, нажмите Обновить драйвер .
Шаг 4: Теперь откроется новое окно, в котором показаны два варианта обновления драйверов: либо мы можем обновить драйверы, используя локальные файлы, либо выбрать вариант автоматического обновления драйверов. Мы пойдем с автоматическим поиском варианта драйвера.
ПК будет искать обновленные драйверы COM-порта, если они уже установлены, он покажет сообщение, как показано на рисунке ниже:
Выберите новый COM-порт для платы Arduino перейдет к выбору нового COM-порта для платы Arduino.Шаг 1: Щелкните правой кнопкой мыши COM-порт Arduino и выберите Properties .
Шаг 2: Откроется новое окно, выберите Настройки порта опция.
Шаг 3: Теперь нажмите Дополнительно .
Шаг 4: Теперь появится новый раздел. Здесь в дополнительных настройках для COM-портов мы получили опцию «Номер COM-порта». Выберите номер COM-порта, и появится полный список всех доступных портов. Обычно в Windows доступно до 256 COM-портов. Все используемые COM-порты будут показывать (используемые) сообщения.
Здесь мы можем выбрать любой COM-порт для Arduino, который не используется ни на одном другом устройстве. В настоящее время плата Arduino подключена к COM-порту 6, мы выберем новый порт для Arduino. Выберите COM10 или любой другой порт и нажмите OK .
Шаг 5: Чтобы проверить, обновлен ли COM-порт или нет, откройте Arduino IDE и найдите COM-порт Arduino. Вы увидите, что плата Arduino обновила свой COM-порт до номера 10.
Мы успешно изменили COM-порт Arduino. Помните, что после выбора нового COM-порта повторно подключите плату Arduino к ПК перед загрузкой нового скетча, в противном случае успешная загрузка скетча невозможна.
ЗаключениеCOM-порт необходим для всех последовательных устройств, он обеспечивает простую и быструю связь между устройствами. Здесь мы обсудили, если Arduino не работает должным образом для определенного COM-порта, как мы можем обновить или заменить его на новый, чтобы обеспечить стабильную работу Arduino.
Об авторе
Кашиф
Я инженер-электрик. Я люблю писать об электронике. Мне нравится писать и делиться новыми идеями, связанными с новыми технологиями в области электроники.
Посмотреть все сообщения
usb — Как узнать, к какому последовательному порту подключен мой Arduino с помощью сценария оболочки?
спросил
Изменено 6 лет, 7 месяцев назад
Просмотрено 2к раз
Прямо сейчас я пишу небольшой скрипт, который отправляет некоторые данные в Arduino через скрипт оболочки bash. Команда, отправляющая данные, выглядит так:
псевдоним led_green="echo -e -n '\x10' > /dev/ttyACM1"
Как видите, я жестко запрограммировал /dev/ttyACM1 в программу. Это проблематично, потому что если я изменю порты USB, значение также изменится, и мой скрипт не будет работать. Мне интересно, есть ли способ программно определить, к какому порту подключена Arduino, чтобы скрипт всегда выполнялся, пока подключена Arduino.
- usb
- bash
- сценарии
- последовательный порт
- arduino
Я бы предложил переключиться с псевдонима на функцию, которая использует цикл для просмотра списка файлов устройства.
Предполагая, что других устройств нет, вы можете использовать цикл for, чтобы определить, какое устройство существует.
$ for i in $(seq 0 99) ; делать > [ -e "/dev/ttyACM$i" ] && перерыв > сделано
Если повторить значение $i
после выхода из цикла, это будет значение найденного устройства.
Однако, если, например, у вас есть устройства /dev/ttyACM0
и /dev/ttyACM1
, и они работают на разных скоростях передачи , вы можете просмотреть их и проверить на stty -a -F /dev/ ttyACM$i | grep $BAUD_RATE
Если оба устройства работают с одинаковой скоростью передачи данных, хорошо.