A couple of posts ago, I talked about the difficulties I was having with the cheapy mechanical encoder as it wears out. There are software methods to prevent acceptance of bad encoder values but they only result in skipped steps, not correction of the issue that caused the skip. Besides, cheapy mechanical encoders typically only have a relatively small number of steps per revolution, requiring spinning like crazy to traverse the band. That’s how it wore out. Lastly, I prefer the silky smooth feel of the tuning knob on a high end rig. Today I started down a path to fix that using this optical encoder I purchased on EBay for about $15
It puts out 100 detented encoder values per revolution. As it is, the detents are pretty mild, but I opened it up and removed the detent mechanism, so now it is silky smooth. If you’re tuning at 100 hz/step, then this results in 10 khz per revolution, a very comfortable rate. However, due to the high rate of output changes per revolution, you can’t poll it in the code’s main loop. It just wouldn’t keep up. I’ll be using interrupts to process the output, which is what I’m doing with the present encoder.