Arduino personnalisé MIDI Controller (12 / 14 étapes)

Étape 12 : Programmation avec les encodeurs

Bibliothèques de l’encodeur

La meilleure façon d’utiliser les encodeurs dans votre programme doit utiliser une bibliothèque de codeurs. J’ai utilisé le bibliothèque de codeurs d’achetant.

Pour l’utiliser dans votre dessin, copie le dossier encoder dans votre dossier de « bibliothèques » Arduino, redémarrez l’IDE Arduino et inclure le fichier d’en-tête dans votre croquis, en ajoutant cette ligne en haut de votre fichier :

Plus d’infos sur les bibliothèques sur la Arduino site.

Ensuite il suffit de créer un membre de la classe de codeur :
Nom de l’encodeur (pin_1, pin_2) ; où nom est le nom que vous souhaitez donner à l’encodeur et pin_1 & pin_2 sont les broches où vous branchez l’encodeur.

C’est ça, pas de soucis avec les interruptions, la bibliothèque, elle gère tout pour vous.

Lorsque vous avez besoin de la valeur de l’encodeur, il suffit d’utiliser :
Name.Read() ; où nom correspond au nom vous lui avez donné plus tôt. La fonction de lecture retourne un long.

Si vous le souhaitez, vous pouvez prendre un coup d’oeil les exemples qui viennent avec la bibliothèque. (Fichier > exemples > encodeur)

Messages relatifs

La fonction de lecture retourne une valeur absolue pour le poste (qui se réinitialise chaque fois que vous coupez l’alimentation, toutefois, contrairement à un potentiomètre). C’est parfaitement bien pour la plupart des applications, mais MIDI est différent : il utilise des nombres relatifs pour les encodeurs rotatifs. Cela signifie, que le contrôleur envoie la différence entre la nouvelle et l’ancienne valeur du codeur, donc si par exemple la dernière valeur de la lecture de la fonction était de 96, et vous tournez le codeur pour le 1 étape, la nouvelle valeur sera 97 évidemment, mais l’Arduino ne devrait pas envoyer à 97. Au lieu de cela, il envoie la différence : 97-96 = + 1. Si vous avez activé 1 étape vers la gauche, il serait -1. Simple.

Qu’en est-il des étapes plus ? Si vous tournez le codeur rapidement pour, disons 4 étapes, il y a 2 choses qui peuvent arriver : un, l’Arduino envoie son MIDI assez vite pour lire l’encodeur au moins 4 fois pendant que vous l’éteigniez. Autrement dit, qu'il enverra des 4 messages avec "+ 1". Deux, si ce n’est pas assez rapide pour rafraîchir la fonction lecture 4 fois, elle va découvrir que la fonction de lecture a changé plus de 1 étape depuis la dernière fois. Par exemple, la dernière valeur de la lecture de la fonction était de 97, vous mettez 4 étapes et relisez. Cela vous donnera 101 : 101 - 97 = 4. Pas de problème, l’Arduino est juste envoyer 1 message avec "+ 4".

Il pourrait y avoir quelques problèmes de compatibilité, dû au fait que vous ne peut pas vraiment envoyer des nombres négatifs via MIDI. Il y a trois façons d’envoyer le signe d’un nombre.

  1. Ajouter 64. C’est probablement la plus simple. Elle correspond essentiellement 0 à 64 (ce qui est de 128/2). Par exemple, si je veux envoyer -1, j’ai ajouter 64, = 63 et je l’envoie. Si je veux envoyer + 1, j’ai également ajouter que 64 = 65. Si j’envoie juste 64, l’ordinateur ne fera rien, car il sait que c’est un déplacement de 0. (Du côté de l’ordinateur, ils juste soustraire 64, et vous pouvez utiliser le résultat comme rien n’est jamais arrivé).
  2. Bit de signe. Sur les ordinateurs, les valeurs signées sont surtout enregistrés avec un bit de signe. Le bit de signe est le bit le plus significatif. Quand il est 0, le nombre défini par les autres bits est positif, quand il est 1, le nombre est négatif. Dans un message MIDI, c’est de type bit 6 (le bit 7, puisqu’il est fondé de 0). Par exemple: + 4 serait 0b00000100, et -4 serait 0b01000100.
  3. Un troisième moyen est de qualifier 127 + 1 0 et -1. Nous pouvons continuer ce: + 2 = 1 et -2 = 126, etc. jusqu’en + 63 = 63 -63 = 65.

Donc, si votre encodeur fait des choses étranges dans votre logiciel particulier, comme sauter vraiment extrême, si vous tournez uniquement une seule étape, vous pouvez modifier cela dans votre programme.

Cependant, peut-être que vous ne devez vraiment écrire votre propre programme...

Articles Liés

Interface Arduino USB MIDI

Interface Arduino USB MIDI

Il y a quelques semaines j'ai commencé à travailler sur un contrôleur MIDI en utilisant Arduino et ATmega32. Je n'ai pas rempli prévu encore. Il est en cours d'élaboration.Vous pouvez lire l'ensemble histoire ici http://openhardware.ro/arduino-usb-mi
Arcade bouton MIDI Controller

Arcade bouton MIDI Controller

ayant une interface matérielle de votre musique préférée / DJ / logiciels VJ peut vraiment ouvrir portes dans votre créativité. La forme la plus répandue de contrôle matériel sur votre PC pour de telles applications est un MIDI controller.Un contrôle
Il dessiner vous-même - MIDI controller avec encre conductrice

Il dessiner vous-même - MIDI controller avec encre conductrice

'Draw It Yourself' est un contrôleur MIDI qui utilise une encre conductrice comme boutons. Il est basé sur l'Arduino et utilise un capteur capacitif (deux, en fait) pour déterminer si les boutons dessinés sont être touchés ou non.http://sanidanz.tumb
Arduino MIDI Controller

Arduino MIDI Controller

Un contrôleur MIDI est toute pièce d'équipement qui génère et transmet les données MIDI aux périphériques compatibles MIDI. En bref, si vous avez des boutons de votre contrôleur MIDI, vous pouvez programmer ces boutons à n'importe quel son que vous s
Construire une base Midi Controller partie 1 - 3 facile Pot (potentiomètre) Arduino Uno effets Midi Controller (série-USB)... Rapide, facile et bon marché !

Construire une base Midi Controller partie 1 - 3 facile Pot (potentiomètre) Arduino Uno effets Midi Controller (série-USB)... Rapide, facile et bon marché !

Bonjour à tous,Je suis relativement nouveau sur Arduino et donc ont dû faire face à ma façon de faire mes propres contrôleurs midi. Il y a une quantité énorme d'informations pointillées autour, mais je ne pouvais pas trouver un tutoriel simple pour u
SugarCube MIDI Controller

SugarCube MIDI Controller

Ce projet est un contrôleur MIDI portable, Arduino-powered, basé sur une grille qui démarre dans une variété d'applications à faire beaucoup de choses avec le son. Il a 16 boutons rétro-éclairés, utilisés comme les entrées et les sorties de donner au
Faire votre propre Arduino personnalisé compatible

Faire votre propre Arduino personnalisé compatible

j'aime Ardunio. J'aime les choses que les gens font avec eux et j'aime faire mes propres. En août dernier que j'ai publié une Instructable comment faire votre propre timbre-poste de taille compatible Arduino. Cet Instructable va vous montrer comment
Synthé bricolage + MIDI controller

Synthé bricolage + MIDI controller

Vous voulez être en mesure de contrôler votre Synthétiseur bricolage avec le MIDI ?Jouer avec un clavier ou de séquence il dans votre logiciel d'édition Audio préféré ?Étape 1: Ce que vous devezMatériel1 x Kit de bricolage synthé1 x Arduino Uno1 câbl
Shield Arduino personnalisé et capteurs

Shield Arduino personnalisé et capteurs

Vue d'ensemble :Cette instructable construira une série de modules de capteur personnalisé et un bouclier d'Arduino. Ces modules sont disponibles de nombreuses sources différentes, mais les fans du site Instructables trouverait probablement satisfact
Contrôle de Cubase avec Arduino basé à MIDI

Contrôle de Cubase avec Arduino basé à MIDI

Un de mes amis voulait contrôler Cubase, son logiciel d'enregistrement audio, avec un bouton poussoir afin qu'il puisse arrêter et démarrer des enregistrements à distance sans avoir à passer à l'ordinateur et tapez sur le clavier. Vous pouvez être ca
Arduino Wii Nunchuck controller

Arduino Wii Nunchuck controller

Comment faire pour commander 2 servos pensé le nunchuck wii.Étape 1: pièces Wii nunchuckArduino2 servoCarte de prototypageFils de raccordementÉtape 2: se connecter Brancher le nunchuck wii comme ce schéma.Étape 3: Télécharger le CodeÉtape 4: fait!!!
3 axe Arduino Based CNC Controller

3 axe Arduino Based CNC Controller

j'ai joué avec différentes conceptions CNC et des contrôleurs de moteurs pas à pas depuis de nombreuses années. J'ai commencé à construire des machines CNC il y a longtemps. Mon premier jet d'inspiration provenait d'eggbot de Bruce Shapiro. J'ai essa
Arduino personnalisé Micro Quadcopter Concept

Arduino personnalisé Micro Quadcopter Concept

modifier le 14 avril : Désolé les gars pour l'entrée tardive. vie a été très agitée ces derniers temps pour moi puisque nous avons dû remplacer un tuyau d'égout enterré dans notre maison est située sur la dalle de béton. Mais nous avons fait des prog
Arduino Bureau Fan Controller

Arduino Bureau Fan Controller

Quand j'ai changé récemment les rôles au sein de la société, je me suis déplacé à sites, passant de Bradford à notre siège social à Wakefield. Je l'ai dit au revoir à mon bureau vieux fidèle avec doit avoir ventilateur de bureau pour me garder cool a