Aangepaste Arduino MIDI Controller (10 / 14 stap)

Stap 10: Hey, hoe zit het met rotary encoders?


Over rotary encoders

Potentiometers en faders zijn groot voor het beheersen van de volumes en frequenties, maar soms je merkt dat je behoefte aan iets dat voor altijd, veranderen kan zodat u door uw afspeellijsten bladeren kunt, of misschien u een DJ bent en u wilt toevoegen van de jog-wielen aan de controller te krabben. Dat is wanneer rotary encoders komen in.

Ze kunnen lijken op een potentiometer, maar er zijn 3 belangrijke verschillen:

  1. Een roterende encoder annuleertekenzwenking voor altijd, terwijl een potentiometer heeft een vaste bereik (meestal ongeveer 270°).
  2. Een roterende encoder stuurt digitale signalen, terwijl een potentiometer '' analoge spanningen output.
  3. Een roterende encoder stuurt relatieve berichten, terwijl een potentiometer zijn absolute hoek rapporten.

Decodering van een roterende encoder

Voordat we gebruiken kunnen, moeten we eerst begrijpen hoe ze werken. Er is een lang document in de Arduino Playground, maar ik zal proberen om een snelle uitleg te geven.

Een roterende encoder bestaat in principe uit twee switches. Wanneer deze ingeschakeld, zal de twee pinnen van deze schakelopties (A & B) worden aangesloten en losgekoppeld van de gemeenschappelijke pin (C). (Zie afbeelding 1, credit: RobotRoom)
Dit resulteert in twee vierkante golven. Deze vierkante golven zijn identiek, maar de timing is anders. We zeggen dat ze 90° uit fase: de tweede golf begint de cyclus wanneer de eerste golf op 1/4 van de cyclus is. (90° is 1/4 van een volledige 360°, vandaar de "90° uit van fase". A & B worden ook genoemd 'quadrature uitgangen', omdat ze een 'kwartaal' uit fase.)

Neem een kijkje op de tweede afbeelding (Bron: Arduino Playground). Laten we aannemen dat we weer het coderingsprogramma rechtsom (CW op de afbeelding). Elke keer als het signaal A stijgt, (rode verticale lijn) het signaal B is hoog, en elke keer als het A-signaal valt (groene lijn), de B-signaal is laag. Veronderstel nu draaien tegen de klok in (Linksom). Nu elke keer als het signaal A stijgt (groene lijn), de B-signaal is laag, en elke keer als het A-signaal valt (rode lijn), de B-signaal is hoog. Dus de B door waarde te controleren wanneer de waarde van A wordt gewijzigd, we welke richting weten gaat de schacht. Dit geldt ook voor de wijzigingen van het B-kanaal. Door het tellen van de pulsen, weten we hoeveel we draaien.

Omdat controle pin A en B in de lus van onze schets zou te traag als er andere alles zo soepel, en we willen niet te missen elke wijziging van hen, gebruiken we interrupts. Hier zijn sommige grote pagina's over interrupts: de Arduino verwijzing, Nick Gammon de site, en hoofdstuk 11 in de Atmel Datasheet (Uno of Leonardo).

Interrupts zijn, simpel gezegd, delen van uw code die alleen uitvoeren wanneer iets wordt geactiveerd, als een pin wijzigen. De hoofdlus wordt onderbroken, en de ISR of Interrupt Service Routine is aangeroepen. Het is veel complexer dan dit, maar het is onmogelijk om uit te leggen in een Instructable. Hoe dan ook, als we een interrupt aan de pinnen van de roterende encoder koppelt, kunnen we zeker missen we niet elke wijziging van de pin, ongeacht wat is in de andere delen van onze code gaande er. U kunt meer lezen over dit in de vorige links, maar wij zullen niet verontrustend te veel over interrupts, aangezien we gebruiken PJRC de encoder bibliotheek, die dit voor ons regelt.

Er zijn twee soorten van rotary encoders: mechanische en optische. Het eerste beeld is een mechanische: er is een statische en een bewegende stuk metaal, en ze maken of rem verbindingen. Het tweede type is een optische encoder: er zijn twee balken van (meestal) infraroodlicht, en een draaiende schijf met tanden onderbreekt de schijf. Als de afstand tussen de balken de juiste verhouding ten opzichte van de breedte van de tanden is, zullen hun vierkante golven 90° uit fase. Er is een voorbeeld in afbeelding 3 (Bron: Kawasaki Heavy Industries). Het is ook mogelijk dat twee ringen van spleten, die al in de juiste fase op de schijf.

Er is een probleem met mechanische encoders, en thats wijten aan het feit dat de verbinding is nooit perfect. Je hebt kleine pieken bij aansluiten en loskoppelen en de Arduino zal ook te ontdekken die, en geven ons verkeerde lezingen. Een eenvoudige oplossing is het toevoegen van twee 100nF condensatoren tussen onze A en B uitgangen en de grond.

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