Можно ли подключить много (20+) датчиков SPI к Arduino Mega?
Я делаю систему для измерения наличия вакуума в больших стальных контейнерах. Они располагаются на расстоянии до 100 метров от шкафа управления.
Вопрос в том, сколько датчиков SPI я могу успешно использовать одновременно с Arduino Mega?
У меня есть две основные проблемы, и, вероятно, есть еще вещи, о которых я не подумал.
Мощность сигнала Общие линии для CLK, MOSI и MISO необходимо разделить на несколько распределительных коробок и провести к разным датчикам. Поскольку напряжение на выходе Arduino фиксированное, я опасаюсь нестабильности, потому что для некоторых датчиков сигнал слабее, кто-то делал что-то подобное? Какова максимальная допустимая потеря напряжения на этих линиях для обычного датчика?
Обработка Справится ли библиотека SPI с таким количеством датчиков?
Частоту обновления можно установить очень низкой, например, 0,3 Гц.
Альтернативой всему этому является использование датчиков на 4–20 мА и схемы преобразователя 0–5 В для каждого датчика рядом с контроллером.
Мы будем очень признательны за любой вклад!
@Vincent Vega, 👍1
Обсуждение3 ответа
Вы можете управлять таким количеством устройств SPI, для которых вы можете настроить линию CS. Вы даже можете управлять всеми линиями CS с устройства SPI. В этом очень поможет реестр SIPO.
Однако вам, вероятно, лучше использовать прокси-плату для фактического подключения к датчикам, а затем подключить mega к прокси-серверу для передачи измерений, используя соединение, которое более надежно на больших расстояниях.
Так как Arduino Mega 2560 имеет много входов/выходов, я хотел, чтобы он управлял многими линиями CS. Я новичок в SIPO, это хорошее решение для связи по нескольким кабелям? Прокси-плата может быть решением, провода нужно прокладывать в любом случае... но я, конечно, хотел бы, чтобы сложность была как можно меньше. Какая плата подойдет для этого, другая ардуино и какой кабель между ними?, @Vincent Vega
Соответствующее предложение, ПОДТВЕРЖДЕНО. :), @tony gil
Я бы рекомендовал использовать мультиплексор(ы) для этой задачи.
Источник из этого руководства.
Или это руководство от Sparkfun
Вам необходимо провести SCK, MOSI и 20 линий выбора микросхем на большое расстояние, а затем получить обратно MISO на большое расстояние.
Число 20 для рабов не проблема. Большие расстояния и поддержание целостности сигнала будут проблемой.
Я бы предложил использовать шину newtwork и отправлять последовательные данные на/от 20 ведомых устройств (например, ProMini), позволяя ведомым устройствам собирать данные SPI, а затем передавать эти данные обратно на Master Mega в режиме опроса: # 1 отправьте свой данные, № 1 здесь. #2 пришлите свои данные, #2 вот они. И т. д. Затем вам просто нужно подключить 3-проводную шину (RS485+, RS485-, Gnd) от устройства к устройству с согласующими резисторами в конце цепи. Включите питание каждого устройства отдельно, а не рабочее питание для всех из них. У Максима есть несколько хороших руководств по подключению RS485.
Привет и спасибо за ваш ответ, однако это было полгода назад, и с тех пор я завершил проект, используя датчики 4-20 мА с отдельными проводами. Это оказалось гибким и надежным способом сделать это, несмотря на использование большого количества кабелей., @Vincent Vega
- Как использовать SPI на Arduino?
- Путаница между SPI и I2C для SSD1306 OLED
- Неправильная документация для выводов Mega2560 SPI?
- Загрузка кода Arduino, OTA, через подключенный ESP8266-12E с запущенным Esp-Link
- Проблема с WiFi на Mega + WiFi R3 ATmega2560 + ESP8266
- Взаимодействие с датчиком SSI?
- Может ли ESP-1 использовать SPI для связи с датчиками?
- Последовательная связь arduino mega и D1 Wemos Mini
Шина 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