Сколько датчиков может поддерживать ARDUINO UNO?

Я делаю проект, который требует, чтобы я использовал 4 различных датчика, а именно датчик нагрузки, датчик RFID-метки, 2 ИК-датчика и датчик эффекта Холла на одной плате Arduino Uno, а также щит расширения двигателя L293D. Возможно ли это? или с этим будет какая-то проблема?

, 👍1

Обсуждение

Скорее всего, ваша установка будет работать, хотя мы не можем быть уверены, не зная точного типа датчика. И когда вы интерпретируете титульный вопрос в целом, на него нельзя ответить, потому что это действительно зависит от датчиков и их интерфейсов. У вас есть только ограниченное количество контатков, каждый контакт имеет только ограниченный доступ к определенному внутреннему оборудованию. Важно, какие контакты уже используются и могут быть перемещены (например, с помощью экрана) и какие интерфейсы нужны датчикам., @chrisl


1 ответ


1

Теоретически arduino может использовать больше датчиков, чем у него есть бит памяти, основываясь на ваших низкоуровневых навыках программирования и алгоритмики. однако, поскольку большинство людей, как правило, используют только одно соединение на вывод arduino и в основном базовые инструкции c++ и arduino, это намного ниже. некоторые люди также используют сдвиговый регистр, чтобы легко увеличить объем порта.

для вашего проекта это зависит от того, что вы можете использовать свои ИК-датчики, используя по одному контакту для большинства ИК-датчиков. датчик нагрузки может быть использован на одном аналоговом выводе, если вы сделаете его самостоятельно, большинство предварительно купленных поддерживают ic2, что действительно отлично подходит для вашего случая, как я опишу позже, однако вам это может и не понадобиться. датчик эффекта Холла нуждается в одном выводе ввода-вывода, rfid shield, кажется, использует около 5 выводов ввода-вывода для среднего модуля, а моторный щит, который вы планируете использовать, модуль lose, который управляет 2 двигателями, использует до 6 выводов ввода-вывода, щит arduino может содержать больше, чем драйвер двигателя L293D таким образом, он может использовать больше контактов, кроме того, вы должны убедиться, что конкретная версия shield поддерживает подключение контактов к неиспользуемому вводу-выводу, который вам часто приходится паять самостоятельно. итак, предполагая, что вы используете все соединения ввода-вывода и нет ic2, где вы используете одну плату драйвера двигателя L293D, а не щит(или щит с перенаправлением контактов, который вам нужен):

14 контактов ввода-вывода, из которых от 1 до максимум 3 являются аналоговыми контактами(нагрузочные и ИК-контакты могут быть аналоговыми в зависимости от типа).

однако вы должны проверить порты и расположение вашего фактического оборудования, так как все это может отличаться в зависимости от того, какие типы вы используете.

возможно, некоторые из ваших датчиков используют ic2(у них есть sda и scl pin), чем вам нужно 2 контакта на вашем arduino для всех них вместе, если у них нет соответствующих идентификаторов. см.i2c как компьютерную сеть.

таким образом, вы должны иметь возможность использовать его без сдвигового регистра, так как arduino uno имеет 18 основных контактов ввода-вывода, предполагая, что вы не используете контакты 1 и 2 из-за помех последовательному порту. 6 из этих 18 контактов являются аналоговыми. аналоговые контакты можно использовать как обычные цифровые контакты. если вы используете i2c, вы также должны взять 2 контакта, чтобы у вас было 16 полезных контактов при использовании i2c и serial. теоретически вы можете использовать 20 контактов, но я бы рекомендовал не использовать контакты 0 и 1, так как они могут помешать вашей плате принять новую загрузку scetch, что может потребовать более сложных способов загрузки и проблем при использовании последовательного соединения.

,