Stap 1: een beetje over rotary encoders
Waarom zijn rotary encoders zo cool?
- In tegenstelling tot een variabele weerstand/potentiometer hebben ze oneindig reizen in elke richting en omdat ze een digitale "grijze code produceren" kunt u hun lezingen naar welke bereik u wilt schalen.
- De dubbele richting maakt ze nuttig zijn voor het vergroten of verkleinen van een waarde binnen een variabele of navigeren.
- Ten slotte komen veel van deze rotary encoders met een centrum drukknop, die kan worden gebruikt om menuopdrachten selecteert, een teller instellen of doen wat die u maar die bedenken kunt misschien pak een kortstondige drukknop.
Voorwaarden
- PPR: pulsen per rotatie - meestal 12, 20 of 24. U ziet ook specificaties voor maximale rotatie in rpm enz. Dit is waarschijnlijk bepaald door het coderingsprogramma de neiging om te "bounce" contacten - zie hieronder.
- Detent: de kleine Klik voor de actie, zoals het veren voor een natuurlijke rust punt tussen pulsen. Kan er één detent per puls/cyclus (niet gelijk aan een draaiing van de schacht) of twee.
- Bounce: mechanische contacten binnen het coderingsprogramma letterlijk stuiteren genoeg om te gaan uit en weer aan een contactpersoon als roterende, potentieel leiden tot te veel lezingen toegeschreven aan deze fase van de reis tussen detents.
- Debounce: Dit kan worden gedaan in de hardware, misschien met een lage waarde keramische condensator tussen elke pin en de grond, of in de software, misschien met een vertraging. In beide gevallen is het doel het creëren van een systeem dat stuiterende contacten negeert.
Tips
- Kijk uit voor een schroefdraad sectie in de buurt van de base van de schacht en een passende moer als u wilt koppelen uw encoder in een deelvenster of de behuizing.
- Veel knoppen zijn beschikbaar voor rotary encoders, met de meest gemakkelijk beschikbaar komen in 6mm diameter assen.
- Aandacht besteden aan of uw encoder schacht gebruikmaakt van een platte gezicht of splines om een juiste pasvorm met de knop.
- Het lichaam van de roterende encoder kan ook komen met een verhoogde pin/stub, bestemd om te paren met een klein streepje/gat in uw paneel (waarschijnlijk verborgen door uw knop) en te voorkomen dat uw encoder gedraaid wanneer u draai de knop. Misschien vindt u dat u wilt dit verwijderen als u voldoende wrijving Voorkom encoder lichaam rotatie met behulp van de montage bout schroef van de encoder in het deelvenster of de behuizing kunt maken.
- Zorg ervoor dat u erachter te komen waar de detent staat voor uw encoder is en uw code dienovereenkomstig aanpassen. Mijn voorbeeld maakt gebruik van een encoder waarvan pinnen zijn beide losgekoppeld van grond en hoge worden getrokken door hun respectieve input pullup weerstanden. Dit drijft mijn selectie van een RISING-interrupt. Als beide pins verbonden waren om te aarden bij detent, zouden zij moeten code die was op zoek naar FALLING pin spanning.