Buttons are fine for most projects — such as typing a blog post — but it’s hard to beat rotary inputs for some applications. Volume adjustment, or quickly changing the position of a CNC cutter come to mind, but there are all kinds of applications for this type of device that could be implemented. The question is, do you want to use an encoder or potentiometer? Let’s check out a few of the differences.
Potentiometers
Potentiometers work by changing a circuit’s resistance value as the knob is turned. The advantage of this component is that it is easily read by a microcontroller’s analog input, or can even control the speed of motors or intensity of lights directly. An important disadvantage of this component is the fact that you are limited to less than one turn of the dial to indicate the full range of input possibilities.
Encoders
Rotary encoders, though similar to potentiometers from the outside, work in a much different way. Instead of measuring resistance, they send signals to a microcontroller as they are turned, timed in such a way that the direction and speed — through the sequence of pulses detected — can be determined. The advantages of this component include precision, due to the binary nature of these pulses, and the fact that you can spin the knob more than a single turn.
On the other hand, setting one of these up is quite a bit more complicated, and requires some processing power to make sure you don’t skip steps. They can also be more expensive, especially if one has lots of steps per revolution.
A Big Rotary Encoder
If you would like to use an encoder in your project, this Big Rotary Encoder from Zachtek looks quite interesting. The assembly comes in a 600 or even 2000 pulses per revolution versions, and outputs position signals over I2C or UART via an onboard Arduino Pro Mini, meaning you don’t have to deal with pulses directly. It also features a ball bearing to help it spin, which would make it a great candidate for a custom MAME setup. Did someone say “Arkanoid?” “Tempest?”