title image

Rotary Encoders op Arduino  

Youtube

Een rotary encoder is, simpel gezegd, een draaiknop die pulsen afgeeft. Het is dus een digitaal component.
Ik kocht deze goedkope rotary encoders op Ebay

   ** De informatie op deze pagina is van toepassing op deze encoder, het zou kunnen dat het niet van toepassing is op andere types/merken **

displays

Werking

De rotary encoder wordt zo aangesloten. Let op, dit is een vereenvoudigde weergave, in realiteit hebben we nog wat weerstanden en condensators nodig om de contacten van de encoder te ontdenderen. (zie mijn video over contactdender [link])
De pull up weerstanden kunnen zich ook in de microcontroller bevinden.

SPI bus
Als we aan de encoder draaien ziet de micro controller de volgende pulsen op zich af komen:
SPI bus
Als we rechtsom draaien (met de klok mee), lopen de pulsen op lijn A voor op lijn B.
Als we linksom draaien is het juist andersom
Met die informatie kun je uitvinden welke kant de encoder op draait. We maken een interrupt op de opgaande flank van lijn A en bekijken daarin de status van lijn B.
De regel is dan:
- Als A van laag naar hoog gaat en B is op dat moment LAAG, draait de encoder rechtsom.
- Als A van laag naar hoog gaat en B is op dat moment HOOG, draait de encoder linksom.



Aansluiten op Arduino


SPI bus


Arduino Sketch

In mijn video op youtube schrijf ik de waarde van rotaryCount naar een LCD schermpje, het voorbeeld hieronder is iets eenvoudiger, het schrijft de waarde weg naar de seriële poort.


Bekijk de video