hi to all,
after so many of my posts and the help given me on this forum I managed to connect:
152 potentiometers on 9 multiplexer
The problem is that the potentiometers tremble and the value in ableton is constantly changing even if i touch anything the flicker oscillates between + 2 / -2
here is the code:
#include <MIDI_Controller.h> // Include the library
// Create 2 instances of 'AnalogMultiplex' with the output pins of the multiplexers connected to
// analog input pin A0 and A1 respectively, and the address pins connected to pins 2, 3 and 4.
AnalogMultiplex multiplexers[] = {
{A0, { 2, 3, 4, 5 } },
{A1, { 2, 3, 4, 5 } },
{A2, { 2, 3, 4, 5 } },
{A3, { 2, 3, 4, 5 } },
{A4, { 2, 3, 4, 5 } },
{A5, { 2, 3, 4, 5 } },
{A6, { 2, 3, 4, 5 } },
{A7, { 2, 3, 4, 5 } },
{A8, { 2, 3, 4, 5 } },
{A9, { 2, 3, 4, 5 } },
{A10, { 2, 3, 4, 5 } },
};
// Create 16 new instances of the class 'Analog', on the 16 pins of the multiplexers,
// that send MIDI messages with controller 7 (channel volume) on channels 1 - 16
Analog potentiometers[] = {
{multiplexers[0].pin(0), MIDI_CC::Channel_Volume, 1},
{multiplexers[0].pin(1), MIDI_CC::Channel_Volume, 2},
{multiplexers[0].pin(2), MIDI_CC::Channel_Volume, 3},
{multiplexers[0].pin(3), MIDI_CC::Channel_Volume, 4},
{multiplexers[0].pin(4), MIDI_CC::Channel_Volume, 5},
{multiplexers[0].pin(5), MIDI_CC::Channel_Volume, 6},
{multiplexers[0].pin(6), MIDI_CC::Channel_Volume, 7},
{multiplexers[0].pin(7), MIDI_CC::Channel_Volume, 8},
{multiplexers[0].pin(8), MIDI_CC::Channel_Volume, 9},
{multiplexers[0].pin(9), MIDI_CC::Channel_Volume, 10},
{multiplexers[0].pin(10), MIDI_CC::Channel_Volume, 11},
{multiplexers[0].pin(11), MIDI_CC::Channel_Volume, 12},
{multiplexers[0].pin(12), MIDI_CC::Channel_Volume, 13},
{multiplexers[0].pin(13), MIDI_CC::Channel_Volume, 14},
{multiplexers[0].pin(14), MIDI_CC::Channel_Volume, 15},
{multiplexers[0].pin(15), MIDI_CC::Channel_Volume, 16},
{multiplexers[1].pin(0), MIDI_CC::General_Purpose_Controller_1, 1},
{multiplexers[1].pin(1), MIDI_CC::General_Purpose_Controller_1, 2},
{multiplexers[1].pin(2), MIDI_CC::General_Purpose_Controller_1, 3},
{multiplexers[1].pin(3), MIDI_CC::General_Purpose_Controller_1, 4},
{multiplexers[1].pin(4), MIDI_CC::General_Purpose_Controller_1, 5},
{multiplexers[1].pin(5), MIDI_CC::General_Purpose_Controller_1, 6},
{multiplexers[1].pin(6), MIDI_CC::General_Purpose_Controller_1, 7},
{multiplexers[1].pin(7), MIDI_CC::General_Purpose_Controller_1, 8},
{multiplexers[1].pin(8), MIDI_CC::General_Purpose_Controller_1, 9},
{multiplexers[1].pin(9), MIDI_CC::General_Purpose_Controller_1, 10},
{multiplexers[1].pin(10), MIDI_CC::General_Purpose_Controller_1, 11},
{multiplexers[1].pin(11), MIDI_CC::General_Purpose_Controller_1, 12},
{multiplexers[1].pin(12), MIDI_CC::General_Purpose_Controller_1, 13},
{multiplexers[1].pin(13), MIDI_CC::General_Purpose_Controller_1, 14},
{multiplexers[1].pin(14), MIDI_CC::General_Purpose_Controller_1, 15},
{multiplexers[1].pin(15), MIDI_CC::General_Purpose_Controller_1, 16},
{multiplexers[2].pin(0), MIDI_CC::General_Purpose_Controller_2, 1},
{multiplexers[2].pin(1), MIDI_CC::General_Purpose_Controller_2, 2},
{multiplexers[2].pin(2), MIDI_CC::General_Purpose_Controller_2, 3},
{multiplexers[2].pin(3), MIDI_CC::General_Purpose_Controller_2, 4},
...........
{multiplexers[3].pin(0), MIDI_CC::General_Purpose_Controller_3, 1},
{multiplexers[3].pin(1), MIDI_CC::General_Purpose_Controller_3, 2},
{multiplexers[3].pin(2), MIDI_CC::General_Purpose_Controller_3, 3},
{multiplexers[3].pin(3), MIDI_CC::General_Purpose_Controller_3, 4},
.......
{multiplexers[4].pin(0), MIDI_CC::General_Purpose_Controller_4, 1},
{multiplexers[4].pin(1), MIDI_CC::General_Purpose_Controller_4, 2},
{multiplexers[4].pin(2), MIDI_CC::General_Purpose_Controller_4, 3},
{multiplexers[4].pin(3), MIDI_CC::General_Purpose_Controller_4, 4},
........
{multiplexers[5].pin(0), MIDI_CC::General_Purpose_Controller_1_LSB, 1},
{multiplexers[5].pin(1), MIDI_CC::General_Purpose_Controller_1_LSB, 2},
{multiplexers[5].pin(2), MIDI_CC::General_Purpose_Controller_1_LSB, 3},
{multiplexers[5].pin(3), MIDI_CC::General_Purpose_Controller_1_LSB, 4},
........
{multiplexers[6].pin(0), MIDI_CC::General_Purpose_Controller_2_LSB, 1},
{multiplexers[6].pin(1), MIDI_CC::General_Purpose_Controller_2_LSB, 2},
{multiplexers[6].pin(2), MIDI_CC::General_Purpose_Controller_2_LSB, 3},
{multiplexers[6].pin(3), MIDI_CC::General_Purpose_Controller_2_LSB, 4},
............
{multiplexers[7].pin(0), MIDI_CC::General_Purpose_Controller_3_LSB, 1},
{multiplexers[7].pin(1), MIDI_CC::General_Purpose_Controller_3_LSB, 2},
{multiplexers[7].pin(2), MIDI_CC::General_Purpose_Controller_3_LSB, 3},
{multiplexers[7].pin(3), MIDI_CC::General_Purpose_Controller_3_LSB, 4},
............
{multiplexers[8].pin(0), MIDI_CC::Sound_Controller_1, 1},
{multiplexers[8].pin(1), MIDI_CC::Sound_Controller_1, 2},
{multiplexers[8].pin(2), MIDI_CC::Sound_Controller_1, 3},
{multiplexers[8].pin(3), MIDI_CC::Sound_Controller_1, 4},
..........
{multiplexers[9].pin(0), MIDI_CC::Sound_Controller_2, 1},
{multiplexers[9].pin(1), MIDI_CC::Sound_Controller_2, 2},
{multiplexers[9].pin(2), MIDI_CC::Sound_Controller_2, 3},
{multiplexers[9].pin(3), MIDI_CC::Sound_Controller_2, 4},
..........
};
void setup() {}
void loop() {
// Refresh the MIDI controller (check whether the potentiometer's input has changed since last time, if so, send the new value over MIDI)
MIDI_Controller.refresh();
}
Is there any code or way to solve this problem?
thank you