...o como controlar un LED RGB con un teclado MIDI y un Arduino.

Este sencillo proyecto, ideado por mi amigo Esteban Colcombet (@QuinoNT), consiste en manipular LEDs mediante un Arduino en base a comandos enviados por un dispositivo MIDI, como un teclado o una baterí­a electrónica. Así­ para cada nota se prende un LED, cuya intensidad depende de la velocidad con que se presionó la tecla.

Para este prototipo utilizamos un LED RGB ya que es lo que teníamos a mano, sin embargo se puede utilizar un LED independiente para cada nota y con una simple modificación del sketch es posible ampliar la cantidad de notas (limitadas en principio por la cantidad de salidas de nuestro Arduino).

En mi caso tengo mi teclado no tiene la salida MIDI "tradicional" si no que funciona mediante USB. Utilizamos entonces un Arduino Mega ADK capaz de funcionar como USB Host. Para establecer la comunicación entre el teclado y el Arduino nos hicimos de las librerí­as USB Host Shield 2 para la utilización del USB y USBH MIDI para la interacción MIDI. A partir de las mismas todo lo que tenemos que hacer es pedir los comandos MIDI en un buffer de 3 bytes y procesarlos. Los pasos detallados pueden encontrarlos en el sketch más abajo. En el caso de tener un dispositivo con el enchufe MIDI común la cosa es más sencilla. La Arduino MIDI Library trae facilidades como el uso de callbacks para los comandos NoteOn y NoteOff, que hacen más sencillo el procesamiento.

Por si no entendieron en que consiste, un video de demostración:

Las conexiones necesarias son muy simples, simplemente cada LED conectado al pin de salida correspondiente mediante una resistencia de 10K.

Esquema de Conexión

Y para terminar, la parte más interesante donde la magia ocurre:

Esta fue una breve introducción, si quieren más información o tienen alguna duda no duden en consultarnos!