Encoders, with their infinite spinning action, are a lot of fun as a user interface. But they can be annoying to set up. Normally, your microcontroller has to recognize and interpret gray code — a sequence of on-off signals via two separate outputs, taking up valuable I/O as well as processing overhead. Add in another input for a button that many encoders include, and perhaps an LED for feedback, and you have 4 IO pins taken up by one little interface gadget. This is problematic if you’ve got limited I/O to work with, and if you’re using multiple knobs the wiring can quickly get ridiculous.
To help with this issue, Fattoresaimon came up with this I2C encoder board. It takes input from an encoder that you either supply or order as an accessory, and translates it into the near-ubiquitous I2C protocol. In addition to offloading processing tasks and simplifying wiring, this also allows several encoders to be chained together as needed, further untangling—both literally and figuratively—your user interface.
You might notice that the device has MAX and MIN thresholds, which can be useful if you want your encoder to act as a sort of settable potentiometer. If you’re worried about losing the continuous rotation potential of your device, it can be set to roll over to the minimum value when it reaches the max or vice versa.
If this looks familiar, I previously wrote about the Makernet Knob, which comes fully assembled with an RGB LED in the shaft. While more expensive, it looks like a good option if you want something ready to use. And if you need a refresher as to what the difference in an encoder and potentiometer is, check out this post.