Benutzerdefinierte Arduino MIDI-Controller (12 / 14 schritt)


Schritt 12: Programmierung mit den Encodern

Encoder-Bibliotheken

Encoder in Ihrem Programm verwenden Sie am einfachsten eine Encoder-Bibliothek verwenden. Früher habe ich die PJRC Encoder Bibliothek.

In Ihrer Skizze, Kopie verwenden der Encoder-Ordner in Ordner "Bibliotheken" Arduino Arduino IDE starten und gehören die Header-Datei in Ihrer Skizze durch Hinzufügen dieser Zeile am oberen Rand der Datei:

Mehr über Bibliotheken auf die Arduino Website.

Dann erstellen Sie einfach ein Mitglied der Encoder-Klasse:
Encoder-Namen (pin_1, pin_2); wo ist der Name, den Sie an den Encoder geben möchten, und pin_1 & pin_2 sind die Pins, wo Sie den Encoder anschließen.

Das ist es, ohne Ärger mit Interrupts, die Bibliothek übernimmt es alles für Sie.

Wenn Sie den Wert des Encoders benötigen, benutzen Sie einfach:
Name.read(); wobei Name der Name gab Sie es früher. Die read-Funktion gibt eine langezurück.

Wenn Sie möchten, nehmen Sie einen kurzen Blick auf die Beispiele, die mit der Bibliothek kommen. (Datei > Beispiele > Encoder)

Relative Nachrichten

Die read-Funktion gibt einen absoluten Wert für die Position (das zurückgesetzt wird, jedes Mal, wenn Sie die macht, aber im Gegensatz zu einem Potentiometer trennen) zurück. Dies ist für die meisten Anwendungen völlig in Ordnung, aber MIDI ist anders: es verwendet relative Zahlen für Drehgeber. Das heißt, dass die Steuerung sendet den Unterschied zwischen den neuen und den alten Wert des Gebers, also wenn zum Beispiel die read-Funktion letzte Wert 96 war, und Sie im Uhrzeigersinn des Encoders für 1 Schritt, der neue Wert wird 97 offensichtlich, aber sollte nicht die Arduino 97 senden. Stattdessen sendet den Unterschied: 97-96 = + 1. Wenn Sie 1 Schritt gegen den Uhrzeigersinn gedreht, wäre es -1. Einfach.

Was ist mit weiteren Schritten? Wenn Sie die Encoder für schnell, sagen 4 Schritte drehen, es gibt 2 Dinge, die passieren kann: eins, das Arduino sendet seine MIDI schnell genug den Encoder mindestens 4 Mal zu lesen, während Sie es aktivieren. Dies bedeutet, dass es 4 Nachrichten mit "+ 1" gesendet werden. Zwei, wenn es nicht schnell genug, um die read-Funktion 4 Mal aktualisieren, werden sie feststellen, dass read-Funktion mehr als 1 Schritt seit dem letzten Mal verändert hat. Zum Beispiel die read-Funktion letzte Wert war 97, 4 Schritten biegen Sie und lesen Sie noch einmal. Dadurch erhalten Sie 101: 101 - 97 = 4. Kein Problem, sendet der Arduino nur 1 Nachricht mit "+ 4".

Möglicherweise gibt es ein paar Probleme mit der Anwendungskompatibilität, da Sie keine wirklich negative Zahlen über MIDI senden können. Es gibt drei Möglichkeiten, die Vorzeichen einer Zahl zu senden.

  1. Fügen Sie 64. Dies ist wahrscheinlich die einfachste. Diese Karten im Grunde 0 bis 64 (das 128/2). Zum Beispiel wenn ich-1 senden möchten, fügen ich 64, = 63 und ich es schicken. Wenn ich + 1 senden möchten, ich auch hinzufügen, 64, 65 =. Wenn ich nur 64 schicken, der Computer wird nichts tun, weil es weiß, dass es eine Verschiebung von 0. (Auf der Computerseite, subtrahieren sie nur 64, und können Sie das Ergebnis, wie nichts passiert.)
  2. Vorzeichenbit. Signierte Werte werden auf Computern meist mit einem Vorzeichenbit gespeichert. Das Vorzeichenbit ist das höchstwertige Bit. Wenn es 0 ist, die Zahl, die durch die anderen Bits definiert ist positiv, wenn es 1, die Zahl ist negativ. In einer MIDI-Nachricht, das ist etwas 6 (7. Bit, denn es ist 0-basiert). Zum Beispiel: + 4 wäre 0b00000100, und-4 wäre 0b01000100.
  3. Ein Drittel geht um + 1, 0 und-1 als 127 zu definieren. Wir können dies weiter: + 2 = 1 und-2 = 126, etc. bis + 63 = 63 und-63 = 65.

Also, wenn Ihr Encoder seltsame Dinge in Ihre jeweilige Software tut, können wie ein Sprung wirklich weit, wenn Sie nur einen Schritt drehen Sie dies in Ihrem Programm ändern.

Aber vielleicht müssen wirklich Sie Ihr eigenes Programm schreiben...

In Verbindung stehende Artikel

Arduino MIDI-Controller mit einem ZX Distanz und Geste Sensor

Arduino MIDI-Controller mit einem ZX Distanz und Geste Sensor

Herzlich Willkommen Sie auf dieser instructable wie eine sehr einfache MIDI-Controller mit der SparkFun ZX Distanz und Geste Sensor bauen. Diese instructable ist Teil einer Schule-Zuordnung.Hinweis: Dies ist keine Codierung Tutorial. Der fertige Code
Arduino MIDI-Controller

Arduino MIDI-Controller

Ein MIDI-Controller ist irgendein Stück Ausrüstung, die erzeugt und überträgt MIDI-Daten an MIDI-fähigen Geräten. Kurz gesagt, wenn Sie Tasten auf Ihrem MIDI-Controller haben, können Sie diese Tasten, um keinen Ton durch musikalische Software soll pr
Arduino MIDI-Controller - laufenTechshop mit Scarff Boarduino

Arduino MIDI-Controller - laufenTechshop mit Scarff Boarduino

ich habe an einer Reihe von verschiedenen Arduino Lösungen für MIDI umsah. Mein Projektkonzept beinhaltet mehr als 100 Analogeingänge, dass jeder Geschwindigkeit spüren und MIDI-Ausgang bieten.   Verwenden die Hintergrund-Infos habe ich von laufenTec
Arduino-Midi-Controller e-Licktronic

Arduino-Midi-Controller e-Licktronic

E-Licktronic erstellen Sie 3 verschiedene Blocks, Ihrer MIDI-Hardware zu bauenWeitere Informationen http://www.e-licktronic.com/en/
Gebäudeteil eine grundlegende Midi Controller 1 - einfache 3 Effekte Topf (Potentiometer) Arduino Uno MIDI-Controller (seriell-USB)... Schnell, einfach und billig!

Gebäudeteil eine grundlegende Midi Controller 1 - einfache 3 Effekte Topf (Potentiometer) Arduino Uno MIDI-Controller (seriell-USB)... Schnell, einfach und billig!

Hallo an alle,Ich bin relativ neu in Arduino und so haben meinen Weg zu meinem eigenen MIDI-Controllern gekämpft. Es gibt eine riesige Menge an Informationen verstreut, aber ich konnte ein einfaches Tutorial für ein einfaches Gerät finden; so, hier g
Benutzerdefinierte MIDI-Controller

Benutzerdefinierte MIDI-Controller

Dieses Tutorial zeigt Ihnen, wie einen benutzerdefinierte MIDI-Controller zu machen. (setzt Erfahrung mit MIDI-Controllern, einfache Schaltungen, einfache c coding)Schritt 1: Finden Sie heraus, welche Kontrolle Sie wollen auf Ihrem controllerWie viel
Teensy Monster v1. 0 / / DIY-MIDI-Controller

Teensy Monster v1. 0 / / DIY-MIDI-Controller

Willkommen bei den Instructable Teensy Monster!Diese Instructable hilft Ihnen Ihre Teensy Monster montieren, verstehen, wie man programmieren sie, und geben viele Tipps für den Aufbau eines großen DIY-Controllers.teensymonster.CCKaufen Sie Ihre Teens
Arcade-Taste MIDI-Controller

Arcade-Taste MIDI-Controller

, die eine Hardware-Schnittstelle zu Ihrer Lieblingsmusik / DJ / VJ-Software kann wirklich öffnen Türen in Ihrer Kreativität. Die am weitesten verbreitete Form der Hardwaresteuerung auf Ihren PC für solche Anwendungen ist eine MIDI Controller.Ein MID
Umwandlung von geretteten Spielzeug in einem MIDI-Controller

Umwandlung von geretteten Spielzeug in einem MIDI-Controller

In dieser Instructable, ich werde gehen Sie durch den Prozess der Umwandlung von geretteten Lärm machen Kinderspielzeug in eine wirklich nützliche Musikinstrument mit MIDI! Werft einen Blick auf nur einen Blick über den Titel der Schritte in diesem I
MIDI-Controller mit Tastaturen

MIDI-Controller mit Tastaturen

Heute bauen wir die 400 Schlüssel MIDI-Controller mit einem Arduino und Computer-Tastaturen!Für die Budget bewusste Musik-Produzenten gibt ist dieses Projekt eine gute Möglichkeit, eine kostengünstige Steuerkarte für Ihre digitale audio-Workstation z
Makey Makey MIDI-Controller

Makey Makey MIDI-Controller

Makey makey ist ein Mikrocontroller, der als eine Tastatur fungiert, wenn es an Ihrem Computer angeschlossen ist. Ich umprogrammiert es, so dass es MIDI-Noten sendet. Warum? Da bei der Verwendung einer Tastatur Dinge zu kontrollieren hat das Fenster,
Arcade-Stil DJ-Midi-Controller

Arcade-Stil DJ-Midi-Controller

>>> Dies ist noch nicht ganz fertig, wie ich ein bisschen der Schaltung oben gespannt. Ich werde die instructable zu aktualisieren und ein Video hochladen, wenn es sortiert <<<Ich bin seit ca. 10 Jahren als DJ, und für den letzten habe i
Sugarcube MIDI Controller

Sugarcube MIDI Controller

Dieses Projekt ist eine tragbare, Arduino powered, Grid-basierte MIDI-Controller, der in eine Vielzahl von apps, viele Dinge mit Klang zu tun hochfährt. Es hat 16 beleuchtete Tasten, als ein- und Ausgänge verwendet, um dem Controller visuelles Feedba
Ziehen Sie es selbst - MIDI-Controller mit Leitlack

Ziehen Sie es selbst - MIDI-Controller mit Leitlack

"Draw-It-Yourself" ist ein MIDI-Controller, der Leitlack als Taster verwendet. Es basiert auf Arduino und nutzt einen kapazitiven Sensor (zwei, eigentlich) um festzustellen, ob die gezeichneten Tasten oder nicht berührt werden.http://sanidanz.tu