hi chuck,
Am Dienstag, 12. September 2006 00:05 schrieb Chuckk Hubbard: [...snip...]
Can anyone make any suggestions? How can one interface between Pd and control voltage? Could I jury-rig regular audio output to do it?
Thanks.
-Chuckk
a cheap solution is to use a parallel port, a bunch of latches with 3-state output (74hc 373, 573, etc....), a bcd-to-binary decoder or equivalent (like 74hc42, or 74hc259) and a pack of resistors to build a r-2r dac.
the idea is as follow: you connect the data inputs of all latches to the 8 data pins of the parport (in parallel, that is). from the 4 control output lines, you connect 3 to the decoder (so you can address 8 latches, = 4 outputs with 16 bits), and the fourth line as output-enable to the latches. combine two latches to have a 16 bit value (or 3 for 24 bits, etc...) at the output of the r-2r dac string, put a small hold capacitor. feed that into a opamp buffer or gain-stage.
to control: disable all latch outputs by toggling the single enable-line. select the latch to load the data into, apply the data byte. then select next latch, apply next data byte, and so .... when you loaded the last latch, toggle the enable line again to output the data into the dac's.
since the latch outputs are disabled (in open-state) during the loading, the capacitor will hold the previous voltage.
you can connect the same schema to an arduino as well, for example. that way you can even use a 4-to-16 binary decoder to control 16 different latches, and use an extra line for a dedicated load pulse (so you can share the 8 lines from the data bus with other peripherials, if you need to)
this solution should cost you below 4 dollars per 16 bits.
another way is to use some serial dac's, but they usually come in smd packagings only, making them harder to solder. you may check www.ti.com for dac's and request some free samples, so you can play around without paying anything for them ....
btw, you can connect such serial dac's to the parport as well. you can even connect 8 of them at once, each with a dedicated data line, but all with shared control lines. that way you can update 8 dac outputs at the same time, without any delay between them. if you get the dac's as samples, this solution will cost you virtually nothing ;)
greets,
chris