simple user question [rotary encoder]

hello all,

been asking some silly but also helpful questions, that had sooner or later come with helpful answers.
but this question is just a really simple one, more of a user question for everyone to have fun with.

i am looking at getting some rotary encoders, hopefully ones which have also a button inside as well. so you can push a button and turn amongst turning it normally. these wont be bought for a long time, so any answers and suggestions are welcome

and i just wanted to ask whether people have had good results from certain encoders, which ones they feel the best the best price. endless or ones that have an end, either way really. i am just interested in what people think about their experience and so forth.


lewis edwards

Well I played with rotary encoders some when I first got my Arduino. The first ones were the cheap $5 mechanical rotary switch contact type with a push to click switch included. It makes for a nice user interface in that the rotary part can be used to scroll through menu items and then push to select a item. However I wasn't to happy with it's performance. First there is a ton on contact bounce that you have to deal with either with external filtering components or with software debouncing functions. Also the mechanical detents in the rotary section didn't seem to 'align' with the contact action, a little hard to explain but the detent would not always fall in between state changes and could be 'teased' between steps without leaving the detent position, weird.

Then I cam across some really nice surplus optical rotary encoders. What a difference in performance. Smooth but precise stepping with a great 'feel' to it. There was no push switch contacts, just nice smooth action that required no debouncing and could directly wire to interrupt pins for fast operation if required. These were $50 units when new so I guess you get what you pay for in encoders.

Good luck and have fun. It did help me get a good start using the Arduino IDE and C/C++ language and to learn how the interrupt functions work.


thanks for that lefty, its always helpful getting as much info from other peoples experience.

i am looking at rotary encoders for a new project. not for some though. and the rotary encoders were something that have been on my mind, even when i started the project i am doing now. and now i am nearing the end of this current project, i am looking at the encoder prices.

and also in the end, you always get what you pay for. with anything that is, controllers, pots, wires, boards. if you spend a suitable amount it comes out on top

lewis edwards

The optical encoders are far superior to the mechanical ones.


The EM14 is a decent encoder. (but it costs nearly $15 more than a similar mechanical encoder) So maybe a little software is not so bad for debounce and sensing if cash is a concern.

woof, that is a pretty steep cost hehehe. but are obviously excellent.

aye, i am looking for encoders, but those, jesus, are just a little bit too expensive for my purposes hehehe.

i dont mid having cheaper encoders, more so as long as they can have buttons inside.

lewis edwards


You might find something interesting in this post that I started a while back ...


By the way, I don't want to open up my mouse now, but is the mouse-wheel a rotary encoder as well? If so, does it work optically or mechanically? Wheel-mice come very cheap and I've seen few with crappy wheels.

By the way, I don't want to open up my mouse now, but is the mouse-wheel a rotary encoder as well?

Yes it its, in fact it contains two rotary encoders for covering +/- X and Y movement. Some contain a third encoder for the finger operated scroll wheel

If so, does it work optically or mechanically?


Wheel-mice come very cheap and I've seen few with crappy wheels.

For use as a mouse the encoder wheels would have to be of good quality.


We had some really bad optical mice (well Tru64 didn't like them, and the software was setup for non intelligent mice) :'( , and I downloaded the IC datasheets. The mouse had two IC's. One IC received the x/y as quadrature (ie two x signals 90deg, and two y signals 90deg) along with a few pushbuttons and the wheel, and fed it out as a PS2/USB signal. The other was the optical detector which fed into the quadrature inputs, as if it were an IR detector (3 wires , one collector and two emitters).

I presume the dedicated IC did the debounce, along with the ability to set the resolution..... So if someone fed the rotary encoder into the x or the y, in theory they would get a scalable feed using only clock and data wires...

Maybe this is the way to use cheaper encoders without a lot of overhead in software...


The scroll wheel from the mouse is the easiest to use and given the price of a mouse you get 3 encoders for real cheap ;) plus a few nice tactile switches as well.