Я уже знаю, как увеличить количество цифровых выводов на Arduino, используя мультиплексор.
Я хочу увеличить количество аналоговых входных каналов, которые у меня есть. Одним из решений является добавление еще одного Arduino в качестве раба.
Как бы я увеличил количество аналоговых входных каналов? (Я предполагаю, что некоторые MUXing и ADCs участвуют). Если написать ответ слишком сложно, общий план схемы / кода также подойдет.
Я также открыт для защиты предложений, хотя я бы предпочел, чтобы существовало не слишком сложное аппаратное решение.
Ответы:
Если вы уже знакомы с чипами цифрового мультиплексора, хорошие новости! Их можно использовать и для аналоговых сигналов.
http://playground.arduino.cc/Learning/4051
Основная предпосылка точно такая же, как при мультиплексировании цифрового сигнала. Вы используете чип 4051 в качестве «переключателя полосы» и считываете сигнал с любой полосы, на которую вы указываете чип переключаться. 4051 использует 3 цифровых контакта и 1 дополнительный аналоговый (или цифровой) вывод на Arduino для создания до 8 полос ввода. Некоторые мультиплексоры являются цепными, поэтому вы можете довольно легко добавить еще 8 сигналов, не отрывая их от самого Arduino.
Это похоже на технику, которую вы уже знаете для цифровых сигналов: просто подключите канал, с которого вы читаете, к аналоговому выводу вместо цифрового, затем переключайтесь между двоичными состояниями и считывайте аналоговые значения.
Я сделал анимированный GIF для вас.
источник
Может быть важно помнить, что сам чип ATmega от Arduino использует аналог MUX. Чипы на базе Uno (ATmega328) имеют только один АЦП. 6 аналоговых входов на самом деле MUX, который подключается к этому одному АЦП.
Вот почему вы можете одновременно читать только 1 аналоговый вход.
При расширении аналоговых входов может потребоваться учитывать, сколько времени требуется для выполнения всего этого MUXing, и необходимы ли в вашем приложении дополнительные внешние АЦП.
источник
Учтите это: добавьте ATtiny 85 с последовательной связью с Arduino, он использует 2 контакта для Rx, Tx, и у вас есть еще 3 контакта, которые можно использовать в качестве аналоговых. Таким образом, вы можете разработать свой собственный протокол, ATtiny может обработать алгоритм и отправить обработанную информацию в Arduino, это также очень дешево, я попробовал сам, это хорошая архитектура, я думаю.
Добрый день
источник