Несколько портов Software Serial

Я планирую использовать Arduino (в идеале Nano или другой) для отправки и получения информации от нескольких последовательных портов программного обеспечения на другие Arduino через доступные контакты, в идеале 8 портов.

Я мог понять асинхронную связь, имеющую один главный и 8 подчиненных, при этом ведущий обеспечивает связь с одного порта, получает данные с этого порта, а затем переходит к следующий порт в цикл выборки.

Библиотека SoftwareSerial позволяет настраивать контакты индивидуально и устанавливать порт listen() (спасибо Юраю).

Я прочитал дескриптор библиотеки AltSoftSerial некоторые ограничения библиотеки SoftwareSerial, но я только что понял, что контакты невозможно настроить (без... клонирования всей библиотеки?).

Вопрос:

  • Вариант 1. Стоит ли мне использовать библиотеку SoftwareSerial?,
  • Вариант 2: Стоит ли мне попробовать библиотеку AltSoftSerial и придумать, как ее продублировать (я думаю, это НЕТ)?
  • Вариант 3. Понимаете, что ни одна из этих библиотек к этому не готова, и ищете другую альтернативу?
  • Вариант 4. Бессмысленно иметь несколько последовательных каналов в Arduino, если одновременно будет работать только один, и, следовательно, следует попытаться организовать только один последовательный канал?

, 👍1

Обсуждение

вы должны установить, какой экземпляр должен прослушивать, с помощью listen(). только один может слушать, @Juraj

Возможно, вам будет лучше использовать многоточечную шину RS485., @Majenko


2 ответа


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

2

Я пытался использовать MIDI (который довольно медленный: 31 250 бит/с), и это не работало надежно с последовательным программным обеспечением на Arduino Uno. Поскольку мне нужно было несколько портов, я переключился на Arduino Mega, которая имеет ЧЕТЫРЕ последовательных порта. Я бы предложил это выше, используя такое количество программных последовательных портов; это также освободит ваш процессор от использования серийных номеров оборудования.

,

1

Вы можете использовать деталь с двумя аппаратными последовательными портами (Atmega1284P) и использовать простой мультиплексор для переключения между ведомыми устройствами, от которых ведущее устройство может получать сигналы, например DG406. https://www.digikey.com/products/en/ интегральные-схемы-ics/интерфейс-аналоговые-переключатели-мультиплексоры-демультиплексеры/747?k=dg406&k=&pkeyword=dg406&sv=0&pv1989=0&pv433=170&sf=0&quantity=& ColumnSort=0&page=1&stock=1&pageSize=25

Аппаратный последовательный порт также обеспечит более быструю связь по сравнению с программным последовательным портом. 1284P также совместим с Arduino.

,