Mi 1er controlador MIDI Arduino

#1 por Keep el 28/09/2011
Os presento mis primeros pinitos con arduino, he construido este sencillisimo controlador midi a partir de la placa arduino UNO, con 5 potenciometros y basandome en un par de códigos (http://starfiretech.wordpress.com/2009/12/08/simple-arduino-midi-controler/) que encontré googleando.
me gusta como queda estéticamente
lafotoas.jpg
aquí dejo el código:
Alguien escribió:

void setup()
{
Serial.begin(31250); // Default speed of MIDI serial port
pinMode(13, OUTPUT); // Light LED on pin 13 to notify of readynes
digitalWrite(13, HIGH);
}

int iAn0Val=0;
int iAn1Val=0;
int iAn2Val=0;
int iAn3Val=0;
int iAn4Val=0;

void loop()
{

//1
int iAn0ValPrev = iAn0Val;
iAn0Val = analogRead(0)/8;
analogPinMidiTX(1,iAn0Val,iAn0ValPrev);

//2
int iAn1ValPrev = iAn1Val;
iAn1Val = analogRead(1)/8;
analogPinMidiTX(2,iAn1Val,iAn1ValPrev);

//3
int iAn2ValPrev = iAn2Val;
iAn2Val = analogRead(2)/8;
analogPinMidiTX(3,iAn2Val,iAn2ValPrev);

//4
int iAn3ValPrev = iAn3Val;
iAn3Val = analogRead(3)/8;
analogPinMidiTX(4,iAn3Val,iAn3ValPrev);

//5
int iAn4ValPrev = iAn4Val;
iAn4Val = analogRead(4)/8;
analogPinMidiTX(5,iAn4Val,iAn4ValPrev);

}

void analogPinMidiTX(int iChan, int iVal, int iValPrev)
{
//only TX the value over midi if it is changed, as to prevent spamming the midi port and thus confusing the receiving application in learning mode
if(iValPrev != iVal)
{
MidiTX(176,iChan,iVal);
}
}

void MidiTX(unsigned char MESSAGE, unsigned char CONTROL, unsigned char VALUE) //pass values out through standard Midi Command
{
Serial.print(MESSAGE);
Serial.print(CONTROL);
Serial.print(VALUE);
}


y aqui os dejo el esquema en el que me basé, es prácticamente igual, excepto porque el mio tiene un potenciometro menos
midicontrol.jpg?w=524&h=433

mi siguiente objetivo es aumentar el numero de entradas analogicas para añadir mas potenciometros, pero todabia estoy experimentando con el multiplexado...

un saludo!
Subir
1
--15336--
#2 por --15336-- el 28/09/2011
Estupendo!
Subir
#3 por G.Abellan el 04/10/2011
Mañana llega mi placa Arduino Mega, a ver que tal ......
Subir
#4 por modulay el 04/10/2011
Quizá sea buena idea que pongas otra resistencia de 220R entre la pata TX del micro y el pin 5 del conector MIDI OUT, como se ve en la imagen que adjunto, sacada de ucapps.
No sabría decirte ahora mismo cual es el cometido de dicha resistencia, pero si está ahí (a mi me funciona en dos diseños distintos) será por algo.
Enhorabuena por el cacharrete :)
Archivos adjuntos:
midi.JPG
BBCode:
Subir
1
#5 por Tolaemon el 05/10/2011
Felicidades por el invento. Yo también pongo la R en serie en el MIDI OUT en mis diseños, las pongo mas que nada porque se suele poner, y pienso que es como proteccion para limitar la corriente de salida del chip driver ( como driver uso unas simples puertas NOT 74LS04). Normalmente las entradas MIDI IN estan optoacopladas y antes del LED interno del opto deberia haber una R, pero si por un error de diseño, o por la razón que fuera esta no existiera, estariamos "sobrecargando" la salida de nuestro puerto MIDI. Poner esta R tambien evita que en caso de corto en el cable estemos cortocircuitando directamente la salida del chip. En fin que es una proteccion que no esta de mas poner.
Subir
#6 por jBetances el 06/10/2011
Me gusta. :)

Uniéndolo con este pequeño modulo de ucapps:

http://www.ucapps.de/mbhp_ain.html

Se podria tener 32 entradas midi, multiplexando las señales. Algunas pocas lineas mas de programación y listo. ;)

Saludos!

Sin firma, por ahora...

Subir
--15336--
#7 por --15336-- el 06/10/2011
Hay shields mux demux para arduino para comprar en kit directamente... no hace falta que sean ucapps.
Subir
#8 por Keep el 06/10/2011
Ya tengo claro como hacer el multiplexado con el multiplexor 4051, gracias a este tutorial: http://www.arduino.cc/es_old/Tutoriales/74HC4051
se cambian los LDR por unos potenciometros... y voila! jajaja
con respecto a lo de la resistencia de 220, cómo puedo saber cuál es la corriente con la que debería trabajar el conector 5 del conector midi? voy a ver si encuentro si encuentro info y hago unas medidas a ver si es necesario poner la resistencia..
un saludo!

edito: estoy releyéndolo y no tengo tan claro que pueda servir este codigo..
Subir
#9 por Keep el 06/10/2011
definitivamente si es válido, me he hecho un lio por un momento con el for y el switch
Subir
#10 por alejandro.rivera.cruz el 16/09/2013
Disculpa, cómo enviaste los datos MIDI a Pro Tools? Qué interfaz utilizaste?
Subir
#11 por tiestononstop el 13/10/2013
una consulta al cargar tu codigo a la placa verifique el el valor de la entrada anlaogiaca parce recibir muchos valores aleatorios, sunpongo que sera el ruido electrico q se mete por el pin , usas algun tipo de fuente especial o solo la del usb? le pones algun capacitor a massa para suprimir ese ruido?
me gustaria asaber ya q la placa es nueva y no se si realente el arduino detecta tanto ruido con el pin flotante o vino fallada . gracias
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo