Paso 5: Programación ARDUINO
Para la escritura de Arduino, asegúrese de que tienes las siguientes bibliotecas:
- MIDI.h
- STEPPER.h
Antes de mirar el código, ¿cuál es el punto de la secuencia de comandos?
Utiliza una técnica llamada callbacks de MIDI. Hay ejemplos documentados que vienen con la biblioteca, en palabras cortas, una devolución de llamada midi significa que en el void loop() es sólo esta función para ver el PIN Rx y ver si hay algún tipo de información de MIDI en. Nada más.
Hace el script como baja latencia posible, porque hay no hay otras cosas en el void loop() que potencia/tiempo de procesamiento.
Si hay un mensaje de midi que, llama al controlador midi para identificar el mensaje.
En nuestro script estamos buscando mensajes MIDI #CC en canal MIDI 1 y #CC número 20 y 21.
Un mensaje MIDI #CC puede ser un valor entre 0-127, y utilizamos el número 20 de giro y número 21 para conducir el carro.
No captura el guión entero, y al pegar en el texto no muestra me código formateado, por lo que captura en azulejos. Simplemente mira los números en el lado izquierdo para que encajen de nuevo juntos.
- Línea 1 -24
En esta parte definir las salidas de motor y un contador por motor, también ambas bibliotecas se incluyen y definen los Steppers. 4096 pasos es una revolución.
Tenga cuidado en el motor pernos, en lugar de 1_2_3_4 su sistema PINOUT es: 1_3_2_4
Por lo tanto los pernos en la secuencia de comandos 9_11_10_12 y 5_7_6_8.
- LÍNEA 24-80
Como estamos utilizando devoluciones de llamada midi, esta parte es donde las cosas va en eso que quieres hacer si es detectada una cierta entrada de MIDI.
En la línea 28 se ve si se envía el mensaje entrante de MIDI en el canal MIDI 1
En línea 30 mira si el número MIDI #CC es 20, y si su #CC20 de vueltas el motor por 20 pasos dependiendo de si su superior o inferior del mostrador.
En la línea 52 hace lo mismo para MIDI #CC21.
- LÍNEA 81-116
La última parte es el void setup() void loop()
Ajuste los pernos AmotA etc. a salidas y ajustar la velocidad de los motores PAP.
Como se mencionó anteriormente el void loop() sólo consiste en la MIDI.read().
He añadido un PIN llamado "pin" en el PIN 13 (pin LED) para ver si están llegando mensajes MIDI, pero no es necesario que se ejecute.