Советы, необходимые для подключения нескольких Arduinos в качестве раба к Raspberry Pi - PullRequest
0 голосов
/ 11 октября 2019

У меня есть проект, в котором мне нужно подключить 5 или более arduinos в качестве рабов к Raspberry Pi. Ячейки нагрузки, геркон, соленоидный замок будут подключены к каждому из Arduino. Arduinos должны отправлять показания веса, когда связь начинается с Raspberry Pi (мастер). Только один Arduino будет активирован за один раз. Arduinos будут размещены на расстоянии не более 6 футов от Raspberry Pi. Мне нужен совет относительно того, как установить эту связь. Я прочитал, что I2C нельзя использовать на больших расстояниях, поэтому я не уверен, что 6 футов - это большое расстояние для I2C. Далее я пытаюсь увидеть, подойдет ли USB для моего случая, но проблема в том, что у Pi всего 4 слота USB. Так можно ли использовать внешний USB-концентратор с внешним источником питания, подключить каждый из arduinos к USB-концентратору и обеспечить отдельный источник питания для arduinos? Будет ли это работать, или я должен смотреть на любой другой протокол, кроме I2C и USB? Любой совет по этому вопросу будет высоко ценится. Большое спасибо за ваше время.

1 Ответ

2 голосов
/ 11 октября 2019

Arduino (Nano, Uno, Mega и т. Д.) Может общаться через SPI, I2C или UART.

  • Короче говоря, SPI не подходит для вашего приложения. Он используется для быстрой передачи данных на короткие расстояния (обычно в миллиметрах или сантиметрах), поэтому, в основном, для связи между микросхемами, установленными на одной и той же печатной плате или близко расположенными печатными платами (например, экранами дисплея).
  • Использование I2C прекрасно (скажем, до 10 метров), и в вашем случае это путь. Максимально возможная длина зависит от скорости передачи, для 10 метров скорость 9600 бод будет в порядке. Большим преимуществом является то, что вам нужно только 2 провода для подключения всех Arduinos, недостатком является то, что только одно устройство может передавать данные одновременно - в вашем случае это не имеет значения.
  • UART используется для связи смножество внешних модулей (GSM, GPS, HMI, ...), а также в сочетании с чипом USB-TTL для связи через USB (виртуальный COM-порт). В вашем случае вы можете использовать UART, например, в сочетании с внешним модулем преобразователя UART-RS485, но в этом нет необходимости, поскольку вы можете использовать I2C.
...