Можно ли подключить много (20+) датчиков SPI к Arduino Mega?

Я делаю систему для измерения наличия вакуума в больших стальных контейнерах. Они располагаются на расстоянии до 100 метров от шкафа управления.

Вопрос в том, сколько датчиков SPI я могу успешно использовать одновременно с Arduino Mega?

У меня есть две основные проблемы, и, вероятно, есть еще вещи, о которых я не подумал.

Мощность сигнала Общие линии для CLK, MOSI и MISO необходимо разделить на несколько распределительных коробок и провести к разным датчикам. Поскольку напряжение на выходе Arduino фиксированное, я опасаюсь нестабильности, потому что для некоторых датчиков сигнал слабее, кто-то делал что-то подобное? Какова максимальная допустимая потеря напряжения на этих линиях для обычного датчика?

Обработка Справится ли библиотека SPI с таким количеством датчиков?

Частоту обновления можно установить очень низкой, например, 0,3 Гц.

Альтернативой всему этому является использование датчиков на 4–20 мА и схемы преобразователя 0–5 В для каждого датчика рядом с контроллером.

Мы будем очень признательны за любой вклад!

, 👍1

Обсуждение

Шина spi предназначена для использования на той же плате или на очень коротком расстоянии. Шина i2c также предназначена для коротких расстояний (из-за ее слабых подтягивающих сигналов). RS485 предназначен для дальних поездок. Какую плату использовать? Arduino mega 2560 отличается от esp8266. Датчики 4-20 мА будут работать, но когда такие длинные кабели подключены к Arduino, это может повредить Arduino. Используете ли вы экранированные кабели? Возможно есть модуль на несколько изолированных входов 4-20мА и с цифровым интерфейсом к ардуино., @Jot

Я думаю об использовании Arduino Mega 2560 для приема и преобразования всех сигналов, а затем передачи линий данных на ESP8266 ESP07, который отправляет все данные через MQTT через Wi-Fi. Я еще не купил кабели, но я думал использовать индивидуально экранированные кабели, да. Поставщик говорит, что датчики 4-20 мА будут работать на расстоянии 100 м. На самом деле Arduino — это цифровой интерфейс, если есть что-то другое, более подходящее, дайте мне знать. Я хотел бы использовать Arduino IDE для программирования, потому что я уже хорошо ее знаю., @Vincent Vega

пользователь заявил, что его больше не интересует вопрос, и не проголосовал ни за один из ответов. это примечательная тема, которая должна привлечь внимание сообщества в любом случае., @tony gil


3 ответа


1

Вы можете управлять таким количеством устройств SPI, для которых вы можете настроить линию CS. Вы даже можете управлять всеми линиями CS с устройства SPI. В этом очень поможет реестр SIPO.

Однако вам, вероятно, лучше использовать прокси-плату для фактического подключения к датчикам, а затем подключить mega к прокси-серверу для передачи измерений, используя соединение, которое более надежно на больших расстояниях.

,

Так как Arduino Mega 2560 имеет много входов/выходов, я хотел, чтобы он управлял многими линиями CS. Я новичок в SIPO, это хорошее решение для связи по нескольким кабелям? Прокси-плата может быть решением, провода нужно прокладывать в любом случае... но я, конечно, хотел бы, чтобы сложность была как можно меньше. Какая плата подойдет для этого, другая ардуино и какой кабель между ними?, @Vincent Vega

Соответствующее предложение, ПОДТВЕРЖДЕНО. :), @tony gil


0

Я бы рекомендовал использовать мультиплексор(ы) для этой задачи.

Источник из этого руководства.

Или это руководство от Sparkfun

,

1

Вам необходимо провести SCK, MOSI и 20 линий выбора микросхем на большое расстояние, а затем получить обратно MISO на большое расстояние.

Число 20 для рабов не проблема. Большие расстояния и поддержание целостности сигнала будут проблемой.

Я бы предложил использовать шину newtwork и отправлять последовательные данные на/от 20 ведомых устройств (например, ProMini), позволяя ведомым устройствам собирать данные SPI, а затем передавать эти данные обратно на Master Mega в режиме опроса: # 1 отправьте свой данные, № 1 здесь. #2 пришлите свои данные, #2 вот они. И т. д. Затем вам просто нужно подключить 3-проводную шину (RS485+, RS485-, Gnd) от устройства к устройству с согласующими резисторами в конце цепи. Включите питание каждого устройства отдельно, а не рабочее питание для всех из них. У Максима есть несколько хороших руководств по подключению RS485.

,

Привет и спасибо за ваш ответ, однако это было полгода назад, и с тех пор я завершил проект, используя датчики 4-20 мА с отдельными проводами. Это оказалось гибким и надежным способом сделать это, несмотря на использование большого количества кабелей., @Vincent Vega