425
edits
No edit summary |
No edit summary |
||
Line 33: | Line 33: | ||
It converts digital data from the arduino (connected through SDI) over an external 12Bit DAC to 0-4V and scales the range over an OpAmp to 0-10V. This device is able to do this on 4 channels, for us 2 was enough, so we cutted away the half of the original circuit. Also we skipped the 4 Gate Outputs. So what we were having then was basically one 12Bit DAC (MCP4822), one OpAmp (TL072) and one DC-DC Converter (SIM 0512D) and the needed resitors and capacitors which can be seen in the original schematic. | It converts digital data from the arduino (connected through SDI) over an external 12Bit DAC to 0-4V and scales the range over an OpAmp to 0-10V. This device is able to do this on 4 channels, for us 2 was enough, so we cutted away the half of the original circuit. Also we skipped the 4 Gate Outputs. So what we were having then was basically one 12Bit DAC (MCP4822), one OpAmp (TL072) and one DC-DC Converter (SIM 0512D) and the needed resitors and capacitors which can be seen in the original schematic. | ||
The only thing that was missing for us in terms of Data Conversion was CV-Inputs. So an ADC was needed. As the resolution of the arduino 10Bit ADC's was to low for us, we buyed a 16Bit 4ch ADC. The ADS1115 Breakout Board by Adafruit. We connected this device also over SDI to the arduino. We installed 2 more Audio-Jacks for the input signals, set a little voltage divider with 100k resistors behind that Jack to scale the incoming Voltage to an acceptable Level for the ADC(max 5.5V). For sure this isn't the best way to do it, especially without an extra OpAmp as buffer and diode based protection circuit, but for this prototype it worked fine for us. | |||
So now, when we got the cv in- and outputs working it was time to get joystick and potentiometers. We just buyed a cheap Joystick and some 10k Potentiometers. In the first place we were disappointed by the Joystick. The accuracy was extremely low and the spring inside the joystick made it even worse for the usage of accurate voltage generation. So we decided to use 2 channels of the external 16 Bit ADC for the YX-Axis inputs for making the joystick more accurate. And we desoldered the Joystick Circuit, drilled a whole inside and took out the spring. Luckily we orded a 5-Pack of Joysticks instead of just one, because 2 Joysticks got broken in this procedure. The third one was working perfect. | |||
Then we decided to use the whole potential the arduino is giving us with its 6 internal ADC's and connected 4 Knob Potentiometers and 2 Slider Potentiometers to it. These should control different values of our functions on the arduino. | |||
Though we didn't had much functions written yet, we knew we would make different modes. So we got some LED's (1 blue, 3 red) for indicating different modes and also we took a switch button breakout board for changing modes. Another switch button we had available through the joystick itself, because this one had a push function. | |||
Hardware fully set up, now it's time for the digtal stuff. | |||
Our basic idea responds into the simple function to express the XY-Axis of the Joystick as 2 Values that are linearly mapped onto Out CV1 and Out CV2. So one axis gave us values between 0 and ~25000, which we simply mapped onto 0-10V. The following was to make a function which is summing the two axis into one value. We simply wrote a average function which, when activated, sums the the two Joystick values and maps them once again to 0-10V. We called this "Sum-Mode" and its accesible through pushing the joystick button one time. The State of these two Modes is indicated through the blue LED (on - SumMode [Out CV 1 = Out CV 2] , off - NormalMode [Out CV 1 = X-Axis ; Out CV2 = Y-Axis]). So the second CV Output becomes a copy of the first when the SumMode is active. So this Mode could also be used as a multiple. |
edits