Aangepaste Arduino MIDI Controller (12 / 14 stap)

Stap 12: Programmeren met de encoders

Encoder bibliotheken

De eenvoudigste manier om encoders gebruiken in uw programma is het gebruik van een encoder bibliotheek. Ik gebruikte de PJRC encoder bibliotheek.

Om het te gebruiken in uw tekening kopiëren de encoder omslag in uw omslag van de "bibliotheken" Arduino, herstart de Arduino IDE, en omvatten het headerbestand in uw tekening door toevoeging van deze lijn aan de bovenkant van uw dossier:

Meer over bibliotheken op de website van Arduino.

Maak gewoon een lid van de klasse van het coderingsprogramma:
Naam van de encoder (pin_1, pin_2); waar is de naam die u wilt geven met het coderingsprogramma en pin_1 & pin_2 zijn de pennen waar u verbinding met het coderingsprogramma.

Thats it, geen gedoe met interrupts, de library regelt het allemaal voor u.

Als u de waarde van het coderingsprogramma nodig hebt, gebruik:
name.Read(); waar de naam die is gaf je eerder. De Lees-functie retourneert een lange.

Als u wilt, kun je een snelle blik op de voorbeelden die worden geleverd bij de bibliotheek. (Bestand > voorbeelden > Encoder)

Relatieve berichten

De Lees-functie retourneert een absolute waarde voor de positie (die terugstelt telkens als u de verbinding de macht, echter, in tegenstelling tot een potentiometer verbreekt). Dit is perfect in orde voor de meeste toepassingen, maar MIDI is anders: het maakt gebruik van relatieve getallen voor rotary encoders. Wat dit betekent is dat de controller stuurt het verschil tussen de nieuwe en de oude waarde van de encoder, dus als bijvoorbeeld de Lees functie van de laatste waarde 96 was en u draai het coderingsprogramma voor 1 stap, de nieuwe waarde 97 uiteraard zullen, maar de Arduino 97 niet mag verzenden. In plaats daarvan stuurt het het verschil: 97-96 = + 1. Als u 1 stap tegen de klok in gedraaid, zou het -1. Eenvoudig.

Hoe zit het met meer stappen? Als u de encoder snel voor, zeg 4 stappen draait, er zijn 2 dingen die kunnen gebeuren: een, de Arduino stuurt zijn MIDI snel genoeg om te lezen het coderingsprogramma minstens 4 keer terwijl u zwenking op. Dit betekent dat het zal 4 berichten verzenden met '+ 1'. Twee, als het niet snel genoeg om te vernieuwen de Lees functie 4 keer, het zal ontdekken dat de Lees functie meer dan 1 stap is veranderd sinds de laatste keer. Bijvoorbeeld, de laatste waarde van de functie van de Lees was 97, u zet 4 stappen en nogmaals door te lezen. Hiermee krijgt u 101: 101 - 97 = 4. Geen probleem, de Arduino stuurt slechts 1 bericht met '+ 4'.

Er misschien wel een paar compatibiliteitsproblemen, wijten aan het feit dat u niet echt negatieve getallen via MIDI verzenden. Er zijn drie manieren om het verzenden van het teken van een getal.

  1. Toevoegen van 64. Dit is waarschijnlijk de eenvoudigste. Dit wijst eigenlijk 0 tot 64 (oftewel 128/2). Bijvoorbeeld, als ik wil verzenden -1, voeg ik 64, = 63 en ik stuur het. Als ik wil verzenden + 1, ik ook toevoegen 64, 65 =. Als ik stuur 64, zal de computer niets doen, omdat het weet dat er een waterverplaatsing van 0. (Aan de kant van de computer, ze gewoon aftrekken 64, en u kunt het resultaat gebruiken als niets ooit gebeurde.)
  2. Teken-bit. Op computers, worden ondertekende waarden meestal opgeslagen met een teken-bit. De teken-bit is de meest significante bit. Wanneer er 0, het getal gedefinieerd door de andere bits positief is, wanneer het is 1, het aantal is negatief. In een MIDI-bericht, dit is beetje 6 (de 7e bit, want het is 0 gebaseerd). Bijvoorbeeld: + 4 zou 0b00000100 en -4 zou 0b01000100.
  3. Een derde is manier het definiëren van + 1 als 0 en -1 127. Kunnen we dit blijven: + 2 = 1 en -2 = 126, etc. tot +63 = 63, en-63 = 65.

Dus, als uw encoder vreemde dingen in uw bepaalde software doet, zoals springen echt ver als u slechts één stap roteert, kunt u dit in uw programma.

Echter, misschien je echt niet nodig om uw eigen programma te schrijven...

Gerelateerde Artikelen

Arduino Midi-controller met een ZX afstand en gebaar Sensor

Arduino Midi-controller met een ZX afstand en gebaar Sensor

Welkom bij dit instructable over het bouwen van een zeer basic Midi-Controller met de SparkFun ZX afstand en gebaar Sensor. Dit instructable is onderdeel van een schoolwerk.Opmerking: Dit is geen codering tutorial. De definitieve code zal worden opge
Arduino MIDI Controller

Arduino MIDI Controller

Een MIDI-controller is een stuk van apparatuur die genereert en stuurt MIDI-data naar MIDI-apparaten. Kortom, hebt u knoppen op uw MIDI-controller, kun je deze knoppen om elk geluid dat je door muzieksoftware wilt programmeren (ex.: Ableton, Garage B
Arduino MIDI-controller - techshop met scarff boarduino

Arduino MIDI-controller - techshop met scarff boarduino

ik heb gekeken rond een aantal verschillende arduino oplossingen voor MIDI. Mijn project concept omvat meer dan 100 analoge ingangen dat elk gevoel van snelheid en voorzien van MIDI-uitgang.   Met behulp van de achtergrondinfo die ik kreeg van techsh
Aangepaste gebouwd MIDI Controller

Aangepaste gebouwd MIDI Controller

Im het aangaan van deze jnstructable de wedstrijd van muziekinstrumenten, als je het gelieve stemming voor mij cos ik graag een nieuwe synth! Als een elektronische muziek producent/performer, heb ik heel wat verschillende MIDI-controllers verzameld d
Arduino Midi-controller voor e-licktronic

Arduino Midi-controller voor e-licktronic

E-licktronic maken 3 verschillende blok te bouwen uw MIDI hardwaremeer informatie http://www.e-licktronic.com/en/
Bouwen van een Basic Midi Controller deel 1 - eenvoudig 3 effecten Pot (Potentiometer) Arduino Uno Midi-Controller (Serial-USB)... Snel, gemakkelijk en goedkoop!

Bouwen van een Basic Midi Controller deel 1 - eenvoudig 3 effecten Pot (Potentiometer) Arduino Uno Midi-Controller (Serial-USB)... Snel, gemakkelijk en goedkoop!

Hallo iedereen,Ik ben relatief nieuw voor de Arduino en zo hebben te kampen met mijn manier om mijn eigen midi-controllers. Er is een enorme hoeveelheid informatie verspreid over maar ik kon het niet vinden een eenvoudige tutorial voor zulk een eenvo
Aangepaste Midi Controller

Aangepaste Midi Controller

Deze tutorial toont je hoe maak je een aangepaste midi-controller. (ervaring met midi-controllers, eenvoudige schakelingen, veronderstelt eenvoudige c codage)Stap 1: Uitzoeken wat regelt u wilt op uw domeincontrollerHoe veel/wat onderdelen wilt u op
BeatSauce - een Laptop Midi Controller hybride

BeatSauce - een Laptop Midi Controller hybride

Voor een lange tijd heb ik gezocht om te bouwen van een aangepaste Midi-controller, en hoewel dit niet precies een nieuwe controller deed ik adem nieuw leven in sommige oude hardware.Met behulp van sommige delen die ik had opgelopen en minimale geld
Maak uw eigen goedkope USB MIDI-Controller of toetsenbord

Maak uw eigen goedkope USB MIDI-Controller of toetsenbord

Ik was op zoek naar een USB MIDI controller-apparaat (of interface) voor muziek toepassingen zoals piano of orgel toetsenbord of pedalboard. Na wat onderzoek wilde ik gaan naar een meer "zelfgemaakte" oplossing. Mijn keuze is tenslotte gericht o
Sugarcube MIDI Controller

Sugarcube MIDI Controller

Dit project is een draagbare, Arduino aangedreven, grid-gebaseerde MIDI controller die zelfstart opwaarts in allerlei apps te doen veel dingen met geluid. Het heeft 16 verlichte knoppen, gebruikt als zowel in- en uitgangen te geven van de controller
Knop MIDI-Controller Arcade

Knop MIDI-Controller Arcade

met een hardware-interface naar uw favoriete muziek / DJ / VJ-software kan echt open deuren in uw creativiteit. De meest voorkomende vorm van controle van de hardware op uw PC voor dergelijke toepassingen is dat een MIDI-gebaseerde controller.Een MID
Teensy Monster v1.0 / / DIY MIDI Controller

Teensy Monster v1.0 / / DIY MIDI Controller

Welkom op de Instructable Teensy Monster!Dit Instructable zal u helpen monteren uw Teensy Monster, begrijpen hoe te programmeren, en bieden veel tips voor het bouwen van een grote DIY controller.teensymonster.CCKoop uw Teensy Monster hier.https://git
Tekenen-het-zelf - MIDI controller met de geleidende inkt

Tekenen-het-zelf - MIDI controller met de geleidende inkt

'Draw It Yourself' is een MIDI-controller met de geleidende inkt als drukknoppen. Het is gebaseerd op de Arduino, en maakt gebruik van een capacitieve sensor (twee, eigenlijk) om te bepalen of de getekende knoppen zijn geraakt of niet.http://sanidanz
MIDI-Controller met toetsenborden

MIDI-Controller met toetsenborden

We bouwen vandaag de 400 sleutel MIDI-controller met behulp van een Arduino en computer toetsenborden!Voor de budget bewuste muziekproducenten daar is dit project een geweldige manier om het bouwen van een goedkope control board voor uw digitale audi