Incremental rotary encoders (Part 7)

Part 1234567, 8, 9, 10

I received many requests and questions regarding the encoder posts. Here is some sort of a FAQ section related to the PlainENC library.

Q: Is PlainENC really working?
A: Yes it is! I tested it and I am actually using it routinely in various applications without the least problem

Q: Some encoder’s datasheets specify that a pair of anti-bouncing capacitors must be used. They are not mentionned in Arduinoos.
A: Correct, some vendors specify that bounces may be filtered by capacitors. But! Once I forgot them and I noticed that the encoder was still working like a charm. Then, I developped the booster algorithm and capacitors may degrade the performances of this nice feature. So you may skip the capacitors.

Q: Are encoders all the same?
A: No! PlainENC is designed for encoders which generate 1 pulse for 2 detents (Whatever the number of detents). The libray manages the axial pushbutton too, which is extremely convenient when the encoder is used for human interfaces.

A detent is the click that you feel while rotating the encoder. Encoder may have from 12 up to 30 detents per turn. Some have no detents! A pulse is a full electrical cycle, not only a raising or falling edge.

Here is a collection of screen captures from an Alps rotary encoder, 30 detents, 15 pulses per round.

CW rotation, one detent

CW rotation, next detent

CCW rotation, one detent

CCW rotation, next detent

CW rotation, multiple detents

Q: I do not have an oscilloscope. How can I diagnose my encoder?
A: The lastest version of PlainENC library contains some checking using a control led (The good ol’ builtin PINB5 led). The led toggles at each detent.

Q: Do you plan to develop PlainENC versions for other types of encoders?
A: No.

Q: Which is the references that you use?
A: ALPS, 11mm Diameter,  30 detents, 15 pulses per round, ref# EC11B15242AF sided pins arrangement, 1.5 mm travel switch.

Q: Is the latest revision of PlainENC available on request?
A: Yes.


  1. LeandroM says:

    Hello, how can I make the request for the library? have you put it on the arduino playground?
    pd. I’m still understanding what sets your library apart from others like the one from but I’m getting it slowly.
    Thanks for sharing

  2. LeandroM says:

    Sorry, I am right now sending the email for the request, hadnt see the way to do it.
    Please erase these two messages.

    Thanks again for sharing

    • Didier says:

      No worries Leandro,
      Well, I want to manage my communication my way. And will be happy to share this code as soon as I will back from my holiday trip in Germany.
      Many requests come from users who want to design their own human interface using a 2×16 LCD along with an incremental encoder. Would you help me defining which could be a minimal, simplistic application featuring both libraries, some sort of the human interface blink ! ;-). This would be the starting point for understanding the structure of the code before seigning much more complex applications … Any idea ?

      • LeandroM says:

        Oh,I’m very sorry you answered so fast and I didn’t 🙁 I was all waiting your answer by mail, so I didnt checked over here…
        But well, first, thanks for taki g ito account my opinion onthese matters 😀
        I was just wanting to see your posts on that subject o f the lcd nd the human interface, butwithout lookig ito them, I think about this:
        (In fact the guitar Im working on works with some of these but if you remember my email, I now have to re-connect everything)
        Having a buch of virtual encoders with just a click is great (Having the RGB and push encoders from sparkfun gets to be really important for this, because you know where you are)
        but it can be misleading so maybe it is better to be able to go up\down, left\right, and you could do that by reachinsomepoint onthe LCD or by the color on the encoder.
        I also work with a library that states double, triple, and double-hold and triple-hold clicks, so those can be very useful …
        But giving thoughts to the matter I believe it is very dependant on the task youneed to acomplish…
        It would be nice if youwant totalk some more about this… hope my ideas bring youto some points…
        About your trip, have you come home already?
        Thanks again!

      • LeandroM says:

        Didier, do you happen to speak spanish? just in case, because my french is really short…
        hope to see you writing soon!

Leave a Reply

You must be logged in to post a comment.