Étape 5: Kamel código y conectar - Télécharger code et connecter
El código aucune octave incluye de funciones de le las des aún vers le haut, vers le bas de la courbe de pitch y (espero incorporarlas en el futuro pŕóximo). Pero permite tocar las notas de la octava médias para probar que todo funcione correctamente. Tampoco hay funciones asignadas por código a los dos potes (otra promesa un futuro). El croquis hace uso de la librería MIDI y está basado fr ONU ejemplo extraído de la página de Adafruit
PRINCIPIO DEL CÓDIGO
/*
Cette esquisse est basée sur l’exemple de code de ADAFRUIT
http://www.Adafruit.com/blog/2009/10/20/example-code-for-Multi-Button-Checker-with-debouncing/
et utilisations MIDI bibliothèque :
http://sourceforge.net/projects/arduinomidilib/
*/
#include < MIDI.h >
#define DEBOUNCE 10 / / bouton debouncer, ms combien debounce, 5 + ms est généralement beaucoup
Voici où nous définissons les boutons que nous allons utiliser. bouton « 1 » est le premier, touche « 6 » est le 6ème, etc.
boutons de Byte [] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} ; l’analogique 0-5 broches sont également connu sous le nom de 14-19
Cette macro pratique nous permet de déterminer comment le tableau vers le haut au-dessus est grande, en vérifiant la taille
#define NUMBUTTONS sizeof(buttons)
nous permettra de suivre si un bouton est juste pressé, vient de sortir ou "actuellement enfoncé"
octet appuyé sur [NUMBUTTONS], justpressed [NUMBUTTONS], justreleased [NUMBUTTONS] ;
void setup() {}
MIDI.begin(1) ; Lancer le MIDI avec les options par défaut
octet i ;
pin13 LED
pinMode (13, sortie) ;
Faire entrée et activez les résistances de pull-up sur les broches commutateur
pour (i = 0; i < NUMBUTTONS; i ++) {}
pinMode (boutons [i], entrée) ;
digitalWrite (boutons [i], HIGH) ;
}
}
Sub check_switches()
{
previousstate static ubyte [NUMBUTTONS] ;
currentstate static ubyte [NUMBUTTONS] ;
public static long lasttime ;
index de l’octet ;
Si (millis() < lasttime) {}
nous entoure, permet juste essayer encore une fois
LastTime = millis() ;
}
Si ((lasttime + DEBOUNCE) > {millis())}
pas assez de temps a passé pour debounce
retour ;
}
OK nous avons attendu DEBOUNCE millisecondes, permet de réinitialiser la minuterie
LastTime = millis() ;
pour (indice = 0; index < NUMBUTTONS ; index ++) {}
justpressed [index] = 0 ; Quand nous partons, nous vider les indicateurs « juste »
justreleased [index] = 0 ;
CurrentState [index] = digitalRead(buttons[index]) ; lire le bouton
Si (currentstate [index] == {previousstate[index])}
Si ((pressé [index] == faible) & & (currentstate [index] == faible)) {}
juste pressé
justpressed [index] = 1 ;
}
ElseIf ((pressé [index] == HIGH) & & (currentstate [index] == HIGH)) {}
vient de paraître
justreleased [index] = 1 ;
}
appuie sur [index] =! currentstate [index] ; n’oubliez pas, digital haute signifie ne pas pressé
}
Serial.println (pressé [index], DEC) ;
previousState [index] = currentstate [index] ; garder une fiche de contrôle des boutons
}
}
void loop() {}
check_switches() ; Lorsque nous vérifions les interrupteurs, nous allons obtenir l’état actuel
pour (octet j’ai = 0; i < NUMBUTTONS; i ++) {}
Si (justpressed[i]) {}
MIDI.sendNoteOn(44+i,127,1) ;
}
Si (justreleased[i]) {}
MIDI.sendNoteOff(44+i,127,1) ;
}
}
}
FINAL DEL CÓDIGO
La placa puede alimentarse directamente del puerto USB o por el conector de alimentación (7 un 15 Volt / positivo al medio). El Wahnelt (cavalier o) ubicado a la derecha (cerca del conector de 6 pins) debe estar en la posición que corresponda a cada caso. Recordá capturar cualquier dispositivo MIDI de la placa para cargar el código ya que utiliza los mismos puertos de comunicación fr ambos casos. ESO es todo ! Solo resta conectar un câble MIDI entre el teclado y ONU dispositivo con po MIDI espero que lo disfrutes. Si hacés algo con él, mostrame ! Rercordá que podés hackear cualquier dispositivo con botones para transformarlo en un dispositivo MIDI con esta placa. Gracias po tu atención !
Jorge (Laboratorio de Juguete)
---------------------------------------------------------------------
Vous pouvez programmer ce clavier à l’aide de IDE Arduino. Il existe deux façons de télécharger le code. On utilise un USB typique pour adaptateur série comme celles de Adafruit, Arduino ou Sparkfun (autres adaptateurs peuvent ne pas avoir le même brochage, mais vous pouvez les rediriger, il suffit de regarder les balises sur le connecteur à 6 broches sur l’image ci-dessous). Si vous avez un de ceux, juste connecter au Conseil d’administration. N’oubliez pas de choisir le Conseil même du bootloader que votre atmega a à l’intérieur. Si vous n’avez pas de ces adaptateurs vous pouvez d’aussi programmer la puce sur votre carte arduino, puis tirez une put dans la prise de clavier.
Le code est très basique encore et n’a pas octave Up / Down fonctions ou pitchbend (espoir pour les ajouter dans un proche avenir). Ni thei ont asigned de code pour les deux potentiomètres (A4 et A5). croquis utilise la Bibliothèque MIDI et est basé sur un exemple de page Adafruit.
Le Conseil d’administration peut être powerd via adaptateur USB ou sa fiche d’alimentation (7 à 15 volts - positive vers le centre). Interrupteur (ou cavalier) sur le coin supérieur droit du Conseil d’administration doit être tourné à l’un de ces choix. N’oubliez pas de débrancher tout appareil midi connecté à la carte lorsque vous essayez de code ulpload car il utilise le même port pour les communications. C’est tout. N’oubliez pas que vous pouvez utiliser cette carte pour pirater n’importe quel appareil avec les boutons et le transformer en un contrôleur MIDI. Pendant ce temps, juste connecter la carte à l’aide d’un câble midi à un module sonore ou le clavier avec prise MIDI IN et profitez ! Merci pour votre attention !
Jorge (Laboratorio de juguete)