Hola a todos.
Soy nuevo en arduino!
Estoy en un proyecto de una pedalera MIDI con función de botones toggle
He bajado un código y funciona perfecto, de a poco lo voy entendiendo!!
Cuando se presiona un botón envía un mensaje MIDI CC con valor 127 y cuando se presiona otra vez el botón envía un mensaje CC con valor 0.
La idea mia es ponerle leds. Que cuando presione el botón 1 y envíe CC con valor 127 se prenda el led 1
y cuando nuevamente se presione el botón 1 y envíe CC con valor 0 se apague el led. Y así con todos los botones: Botón 2 - Led 2, Botón 3 - Led 3, etc.
El problema mio es que el código tiene los botones como array, entonces no sé como insertar los leds. Si con array también o de otra forma.
La parte del código que me interesa es esta: (case 2)
void updateButtons() {
// Cycle through Button array
for (int i = 0; i < NUMBER_BUTTONS; i = i + 1) {
byte message = BUTTONS[i]->getValue();
// Button is pressed
if (message == 0) {
switch (BUTTONS[i]->Bcommand) {
case 0: //Note
MIDI.sendNoteOn(BUTTONS[i]->Bvalue, 127, BUTTONS[i]->Bchannel);
break;
case 1: //CC
MIDI.sendControlChange(BUTTONS[i]->Bvalue, 127, BUTTONS[i]->Bchannel);
break;
case 2: //Toggle
if (BUTTONS[i]->Btoggle == 0) {
MIDI.sendControlChange(BUTTONS[i]->Bvalue, 127, BUTTONS[i]->Bchannel);
BUTTONS[i]->Btoggle = 1;
}
else if (BUTTONS[i]->Btoggle == 1) {
MIDI.sendControlChange(BUTTONS[i]->Bvalue, 0, BUTTONS[i]->Bchannel);
BUTTONS[i]->Btoggle = 0;
}
break;
}
}
// Button is not pressed
if (message == 1) {
switch (BUTTONS[i]->Bcommand) {
case 0:
MIDI.sendNoteOff(BUTTONS[i]->Bvalue, 0, BUTTONS[i]->Bchannel);
break;
case 1:
MIDI.sendControlChange(BUTTONS[i]->Bvalue, 0, BUTTONS[i]->Bchannel);
break;
}
}
}
}
Adjunto los archivos! para ver las otras configuraciones.
No sé si me expliqué bien o si falta información. Es mi primer posteo, así que disculpen.
Muchas gracias y saludos!
Controller.h (689 Bytes)
Controller.cpp (1.72 KB)
Prueba_controlador_midi_con_leds.ino (2.51 KB)