6
\$\begingroup\$

I've read in my research that most microcontrollers are not built with DAC outputs as they are expensive to include on silicon chips. Also applications that require analogue outputs typically need a higher resolution than is feasible on a microcontroller and would probably use a dedicated IC anyway.

I am planning to build an analogue synthesizer with patch memory (storage and recall of voltage states). Apparently these functioned by reading the voltage of an analogue potentiometer into a microcontroller and applying a control voltage to the synthesizer using a DAC. This state could then be saved and recalled as 'presets'.


I would like to know a suitable way to control multiple analogue outputs to a circuit from an Arduino. The analogue outputs in most (if not all) Arduino boards are actually PWM, and I want to output a true analog signal.

asked Apr 15, 2013 at 15:09
\$\endgroup\$
7
  • \$\begingroup\$ In your last sentence, what do you mean by "control"? The Arduino gives you 6 analog outputs, as well as a few more digital-PWM ones. (All of them are actually PWM). Are you asking for a "true" analog output? \$\endgroup\$ Commented Apr 15, 2013 at 15:51
  • 1
    \$\begingroup\$ @Manishearth - Was it really necessary to correct the British English Analogue to American English Analog? \$\endgroup\$ Commented Apr 15, 2013 at 15:56
  • \$\begingroup\$ @MarkBooth: hm, didn't know that it was BrE. In my experience, "Analogue" means "Something that bears an analogy to something else" only. But you're right, oh well. \$\endgroup\$ Commented Apr 15, 2013 at 15:59
  • \$\begingroup\$ Anyway, no harm in editing since it was on the top in the first place. Plus I did a retag now :) \$\endgroup\$ Commented Apr 15, 2013 at 16:00
  • \$\begingroup\$ @Manishearth - The Arduino Uno does not provide analogue outputs, only PWM that can be filtered down to a DC voltage. The 'control' refers to the need for the Arduino to output multiple analogue voltages to various points in the synthesizer. \$\endgroup\$ Commented Apr 15, 2013 at 16:08

1 Answer 1

9
\$\begingroup\$

The Due is the only Arduino board with a built in DAC. (Two of them.) If you need more than two outputs or want to use a board such as the Uno, then you need to consider building a DAC.

Option 1: PWM Using a RC-filter you can create a low-pass filter that allows you to create true analog voltages from a PWM pin. This method could be difficult to calibrate or may not work depending on the impedance of the circuit you are driving.

Option 2: R-2R The most common method is a R-2R ladder, explained here: http://en.wikipedia.org/wiki/Resistor_ladder

Option 3: DAC Chip The most efficient, but most expensive, method would be to use an external DAC chip. You can pick one that is designed specifically for the voltages you need and potentially find one with multiple outputs. Regardless, most DAC chips feature a SPI or I2C interface, so you can chain multiple chips to a single Arduino.

The Maxim MAX5214 is an example of a high resolution (14bit) single output DAC, with a SPI interface. http://www.maximintegrated.com/datasheet/index.mvp/id/7119

answered Apr 15, 2013 at 16:15
\$\endgroup\$
1
  • \$\begingroup\$ I've since discovered the (circa 1979) idea used in synthesizers of using one DAC and multiplexing it to several sample and hold cells. \$\endgroup\$ Commented Dec 1, 2013 at 16:43

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.