Paso 11: Todo sobre el código
Hice mi mejor absoluta para hacer el código fácil de usar. El código incluye muchos comentarios para ayudarle a entender lo que está sucediendo. No tienen que escribir código, para más, simplemente rellene los espacios en blanco. Fácil. Si desea agregar algunas características de LED necesita añadir algo de código básico. Hay un ejemplo de LED proporcionado el código para empezar.
Nunca me entrené como un codificador, pero considero que este código sea muy muy bueno! Gracias a mi hermano Neil por ayuda con algunas de las secciones más difíciles.
El código se divide en cinco secciones:
- Editar - la sección donde usted está obligado a hacer las ediciones adecuadas relacionadas con su controlador usando un método de llenar-en-el-espacios en blanco.
- Variables y funciones - contiene las variables y funciones utilizadas en el código.
- Configuración - esto es donde definimos a la configuración de pines, informando el Teensy que pin en una entrada y que es una salida.
- Lazo - el cerebro de la operación entera. Esta función coloca una y otra vez mientras está funcionando el Teensy.
- Funciones de comunicación - estas funciones gestionar nuestros mensajes.
Dentro de estas cinco secciones usted encontrará a menudo las subsecciones para pulsadores, LEDs, análogo en Teensy, análogo en multiplexor y codificadores.
Si no usas software de Traktor, probablemente deberás editar los mensajes de codificador rotatorio MIDI. Consulte la documentación de su software para entender el formato de mensaje esperado. Cuando usted averiguar por favor me mensaje por lo que puedo añadir a este Instructable.
Aunque no es imprescindible para entender todo el código, sólo quiero explicar un fragmento de código que te ayudarán a entender cómo funcionan los mensajes de control. El código siguiente envía mensajes analógicos para un potenciómetro. Hay tres modos (depuración, I2C y MIDI) que activar o desactivar en las ediciones. Si está habilitada la depuración, mensajes se enviarán a través de USB en el monitor serial para ayudar con la depuración. 'serialDebugOut' es una función muy básica que escribí que envía estos mensajes seriales y pueden verse en la parte inferior del código. Si I2C está activado, mensajes se enviarán a través de I2C con el módulo principal que luego envían los mensajes a través de USB. Si que MIDI está activaday, a continuación este controlador se envía mensajes MIDI directamente a través de USB al ordenador. 'usbMIDI.' es un mensaje específico utilizado por Teensy ++ para mensajes MIDI. Leer más sobre MIDI Teensy aquí. Tenga en cuenta que puede editar el código para enviar muchos tipos de mensajes: Teensy USB Serial, Teensy USB teclado, Teensy USB ratón, Teensy USB Joystick, Teensy USB MIDIy serie de Arduino.
if(enableDebug==1) {//SERIAL debug está en
serialDebugOut("Analog",i,tempAnalogInMap);
}
if(enableI2C==1) else {//I2C
serialI2COut('a',i,tempAnalogInMap,channelNumber);
}
Else {//MIDI
usbMIDI.sendControlChange(i,tempAnalogInMap,channelNumber);
}
Leer los comentarios de código una y otra vez, hacer tomar unas pocas repeticiones para envolver su cabeza alrededor. Usted puede aprender mucho del código. Constantemente referencia a la librería de Arduino para secciones que no entiendes.
El código del codificador rotatorio es una bestia repugnante. Si se siente ambicioso puede leer más sobre ello aquí.
** Es probable que algunas mejoras hará el código con el tiempo tan sigue Compruebe de nuevo de la última version.* *
Todo el código se puede encontrar aquí en GitHub. Para esta sección, utilice el código titulado 'Código de controlador'. Haga clic en 'Código postal' en la parte superior izquierda para descargar.