Мне нужно прочитать аналоговые значения до 50 аналоговых датчиков отражения света, которые используются для определения расстояния до определенного объекта с помощью микроконтроллера, совместимого с Arduino, например:
Но когда я обдумывал свою идею, у меня возникло несколько вопросов, на которые я сам не могу ответить:
Моя первая идея заключалась в том, чтобы использовать несколько ATSAMD21G18 для чтения связки из 6 аналоговых устройств. Но это приведет к тому, что у вас будет как минимум 9 ATSAMD21G18 и их нужно будет подключить с помощью SPI или I2C.
Поэтому я подумал об использовании нескольких аналоговых мультиплексоров/демультиплексоров, таких как 4067. Даже это закончилось бы несколькими модулями 4067, но я мог бы использовать один Arduino Due / Zero.
Однако меня беспокоит то, что 4067 не переключает аналоговые входы достаточно быстро для моих нужд. Я действительно хотел бы прочитать все эти аналоговые значения как можно быстрее. Насколько быстрым будет 4067 в этом приложении?
А также. Используя 4067, я должен использовать цифровые входы/выходы для установки входного канала 4067. Могу ли я соединить их параллельно, чтобы иметь возможность использовать цифровые входы/выходы для каждого отдельного 4067?
А также влияет ли длина схемы на показания при расстоянии между 4067 и Arduino около 50 см?
В общем, мультиплекс в цифре, а не в аналоге. Где-то у вас будет 50 отдельных сигналов. Независимо от того, входят ли они в группу аналоговых мультиплексоров, а затем в небольшое количество аналого-цифровых преобразователей, или в группу аналогово-цифровых преобразователей и небольшое количество цифровых портов, это не сильно меняет сложность.
Вам нужно правильно расставить приоритеты. Вы не делаете такие вещи, сначала выбирая микроконтроллер, а затем выясняя, как на него наложить кучу вещей, чтобы в конечном итоге делать то, что вы хотите, несмотря на микро. Вы начинаете с требований, затем выбираете подходящий микро.
Ваша логика отказа от одного цифрового мультиплексирования не имеет смысла:
Но это приведет к тому, что у вас будет как минимум 9 ATSAMD21G18 и их нужно будет подключить с помощью SPI или I2C.
Хм, хорошо, но в чем проблема? Опять же, у вас где-то будет 50 отдельных контактов. Использование этих входов для группы 8-канальных (или любых других) аналого-цифровых преобразователей звучит как разумный подход. Тогда использование SPI для мультиплексирования данных с этих чипов звучит вполне разумно. Помимо отклонения этого, вы на самом деле не дали никаких причин, почему это не разумный подход.
Алекс Форенчич
Саймон Кемпер
Энди ака
Воутер ван Оойен
Саймон Кемпер
пользователь_1818839
Воутер ван Оойен
Саймон Кемпер