Несколько портов Software Serial
Я планирую использовать Arduino (в идеале Nano или другой) для отправки и получения информации от нескольких последовательных портов программного обеспечения на другие Arduino через доступные контакты, в идеале 8 портов.
Я мог понять асинхронную связь, имеющую один главный и 8 подчиненных, при этом ведущий обеспечивает связь с одного порта, получает данные с этого порта, а затем переходит к следующий порт в цикл выборки.
Библиотека SoftwareSerial
позволяет настраивать контакты индивидуально и устанавливать порт listen()
(спасибо Юраю).
Я прочитал дескриптор библиотеки AltSoftSerial
некоторые ограничения библиотеки SoftwareSerial
, но я только что понял, что контакты невозможно настроить (без... клонирования всей библиотеки?).
Вопрос:
- Вариант 1. Стоит ли мне использовать библиотеку
SoftwareSerial
?, - Вариант 2: Стоит ли мне попробовать библиотеку
AltSoftSerial
и придумать, как ее продублировать (я думаю, это НЕТ)? - Вариант 3. Понимаете, что ни одна из этих библиотек к этому не готова, и ищете другую альтернативу?
- Вариант 4. Бессмысленно иметь несколько последовательных каналов в Arduino, если одновременно будет работать только один, и, следовательно, следует попытаться организовать только один последовательный канал?
@Brethlosze, 👍1
Обсуждение2 ответа
Лучший ответ:
Я пытался использовать MIDI (который довольно медленный: 31 250 бит/с), и это не работало надежно с последовательным программным обеспечением на Arduino Uno. Поскольку мне нужно было несколько портов, я переключился на Arduino Mega, которая имеет ЧЕТЫРЕ последовательных порта. Я бы предложил это выше, используя такое количество программных последовательных портов; это также освободит ваш процессор от использования серийных номеров оборудования.
Вы можете использовать деталь с двумя аппаратными последовательными портами (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.
- AT-команда не отвечает на последовательный монитор
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Как остановить SoftwareSerial от получения данных и повторно включить его в какой-то другой момент?
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Не нашел датчик отпечатков пальцев :( Arduino Mega 2560 Adafruit Fingerprint Sensor
- Чтение SMS с помощью Arduino Uno и SIM800L и печать на LCD (16x2 буквенно-цифровых) с использованием последовательного соединения
- Как работает последовательная связь на Arduino?
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
вы должны установить, какой экземпляр должен прослушивать, с помощью
listen()
. только один может слушать, @JurajВозможно, вам будет лучше использовать многоточечную шину RS485., @Majenko