Использовать аналоговый мультиплексор для работы с 9 датчиками последовательного входа?

У меня 9 датчиков, они будут отправлять строку данных на мой Arduino через Tx/Rx (каждые 3½ секунды, запрограммировано заранее). Единственная проблема в том, что на Arduino Uno только один порт Tx/Rx. Можно ли использовать аналоговый мультиплексор, чтобы «сделать» больше последовательных портов? Поскольку датчики отправляют что-то каждые 3½ секунды, нет необходимости быть быстрым.

EDIT: Это датчик температуры и относительной влажности

, 👍1

Обсуждение

какой датчик? можете добавить ссылку?, @Juraj

Не то чтобы это имело особое значение, но каждые 3-5 секунд или 3,5 секунды?, @Greenonline

Точную модель датчика пожалуйста, @Juraj


2 ответа


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

3

Нет. Нет, если только вы не сможете изменить свой протокол связи на протокол «вызова и ответа».

В принципе, проблема в следующем: когда переключаться на какое последовательное устройство? Если только все устройства не синхронизированы по времени, то узнать это невозможно — так как же управлять аналоговым мультиплексором в такой ситуации...? Невозможно.

Вам понадобится какой-то метод, с помощью которого мастер переключит мультиплексор на определенное периферийное устройство, а затем отправит этому периферийному устройству сообщение со словами «Отправьте мне ваши данные сейчас».

Вам лучше изучить другие платы с большим количеством портов UART, например, Mega2560, и иметь несколько плат.

У Mega2560 есть 4 порта UART. Вы можете иметь 4 датчика на плату (5, если вы хотите использовать SoftwareSerial или, лучше, AltSoftSerial), так что вы можете обойтись двумя платами.

Одна плата работает как обычно, обмениваясь данными через порты UART с 4 датчиками, а также выступает в качестве ведущего устройства I2C или SPI (выбор за вами). Вторая плата обменивается данными еще с 4 датчиками через UART и еще с одним с помощью AltSoftSerial и т. д. Она также выступает в качестве ведомого устройства I2C или SPI.

«Подчиненная» плата просто работает автономно, собирая данные с датчиков, к которым она напрямую подключена, и сохраняя эти значения. Затем «главная» плата периодически запрашивает у «подчиненной» платы последние данные.

,

1

Спасибо за ответ и приношу извинения за поздний ответ. Я только что попробовал мультиплексор, потому что некоторые люди сказали, что я буду работать. Я могу получать информацию со всех 9 датчиков. Датчик отправляет строку данных, и я фильтрую температуру и относительную влажность, а затем переключаюсь на следующий датчик. Он работает довольно хорошо, единственная проблема в том, что вы не можете запросить строку данных, поэтому вам следует подождать, пока строка данных будет отправлена

,