[sdiy] Quantizer with Arduino, ADS1115 and MCP4725
Scott Bernardi
scottbernardi55 at gmail.com
Thu Jun 20 03:16:57 CEST 2024
I'm thinking of doing a quantizer with Arduino nano and external ADC using
ADS1115. With that I get 4 input channels at 16 bits.
My question is surrounding changing the reference voltage (which would have
to be the VDD of the ADS1115) to 5.3333v (instead of standard 5.0v so I can
get to the 1/12v for a semitone in 1v/octave (83.33mV) by a binary
divisible value. For example, 5.3333 / 64 = 83.33 mV which is our value
for a semitone.
For a 16 bit ADC, (ADS1115 is actually 15 bits with a sign bit for a total
count of 32,768) each semitone would then be represented by 512 bits.
Internally in the Arduino code I could represent the values for scales as
number of semitones. For example, a major scale would be
0 2 4 5 7 9 11 semitones.
Minor would be
0 2 3 5 7 9 10
The necessary binary counts would then be 512 times these.
Using the number of semitones for the scales is convenient, because then
for the 12 bit MCP4725 output, I would multiply by the bits per semitone
value of 32. Or another way to think of it is to throw away the 3 least
significant bits and the sign bit to go from 15 bits plus sign bit to 12
bits for the output.
I think running the ADS1115 at 5.3333v would be OK. The chip itself can
run up to a max of 7 volts. The inputs can accept a max of VDD + .3v and
-0.3 voltage; so using schottkys to clamp the inputs should be OK.
The MCP4725 can be run up to 5.5v so 5.333v should be OK.
Maybe use a single MCP4725 and some sample/holds to handle four outputs.
I am a rank beginner at Arduino programming but am a programmer by
profession and somewhat familiar with C++.
Does this sound feasible?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20240619/5b915758/attachment.htm>
More information about the Synth-diy
mailing list