Эффективный способ получить несколько аналоговых напряжений от Arduino?

В своих исследованиях я читал, что большинство микроконтроллеров не имеют выходов ЦАП, поскольку их включение в кремниевые чипы дорого. Кроме того, приложения, которым требуются аналоговые выходы, обычно требуют более высокого разрешения, чем это возможно на микроконтроллере, и, вероятно, в любом случае будут использовать выделенную ИС.

Я планирую построить аналоговый синтезатор с патч-памятью (хранение и вызов состояний напряжения). По-видимому, они функционировали путем считывания напряжения аналогового потенциометра с микроконтроллера и подачи управляющего напряжения на синтезатор с помощью ЦАП. Затем это состояние можно было сохранить и вызвать как «предустановки».


Я хотел бы знать подходящий способ управления несколькими аналоговыми выходами в цепи от Arduino. Аналоговые выходы в большинстве (если не во всех) платах Arduino на самом деле являются ШИМ, и я хочу выводить настоящий аналоговый сигнал.

В вашем последнем предложении, что вы подразумеваете под «контролем»? Arduino дает вам 6 аналоговых выходов, а также еще несколько цифровых ШИМ-выходов. (Все они на самом деле ШИМ). Вы просите «настоящий» аналоговый выход?
@Manishearth - Действительно ли было необходимо исправить аналог британского английского на аналог американского английского?
@MarkBooth: хм, не знал, что это BrE. По моему опыту, «аналог» означает только «нечто, имеющее аналогию с чем-то другим». Но ты прав, да ладно.
В любом случае, никакого вреда в редактировании нет, так как он изначально был на вершине. Плюс я сделал ретэг сейчас :)
@Manishearth - Arduino Uno не имеет аналоговых выходов, только ШИМ, который можно отфильтровать до постоянного напряжения. «Управление» относится к необходимости для Arduino выводить несколько аналоговых напряжений в различные точки синтезатора.
@JackDamery: так и думал (что я имел в виду под «настоящим» аналогом). Я отредактирую это, чтобы уточнить :)
Arduino Due — единственный из известных мне, который содержит 2 аналоговых ЦАП на борту, 12-битный, настоящий аналоговый выход.

Ответы (1)

Due — единственная плата Arduino со встроенным ЦАП. (Два из них.) Если вам нужно более двух выходов или вы хотите использовать такую ​​плату, как Uno, вам нужно подумать о создании ЦАП.

Вариант 1: ШИМ Используя RC-фильтр, вы можете создать фильтр нижних частот, который позволит вам создавать истинные аналоговые напряжения с вывода ШИМ. Этот метод может быть трудным для калибровки или может не работать в зависимости от импеданса цепи, которой вы управляете.

Вариант 2: R-2R Наиболее распространенный метод — это лестница R-2R, описание которой можно найти здесь: http://en.wikipedia.org/wiki/Resistor_ladder .

Вариант 3: микросхема ЦАП Наиболее эффективным, но и самым дорогим методом является использование внешней микросхемы ЦАП. Вы можете выбрать тот, который разработан специально для необходимых вам напряжений, и потенциально найти вариант с несколькими выходами. Несмотря на это, большинство микросхем ЦАП имеют интерфейс SPI или I2C, поэтому вы можете подключить несколько микросхем к одному Arduino.

Maxim MAX5214 является примером ЦАП высокого разрешения (14 бит) с одним выходом и интерфейсом SPI. http://www.maximintegrated.com/datasheet/index.mvp/id/7119

С тех пор я обнаружил (примерно в 1979 году) идею, используемую в синтезаторах, использовать один ЦАП и мультиплексировать его на несколько ячеек выборки и хранения.