I2C Rotary Encoder

Click on photos to enlarge

Stop caring how many I/O pins your Arduino or other micro-controller has. By using the I2C serial two-wire bus, you can have an LCD (or TFT or OLED) display, an Si5351 (or other generator chip), a number of other useful devices, and now a rotary encoder (or up to four of them), using the same two I/O pins.

The Mostly DIY RF I2C Rotary Encoder uses a PCF8574A remote 8-Bit I/O expander IC to take input from the A, B, and shaft button pins of the encoder and sends it over the I2C bus. You can use the recommended libraries/sketch/program (interrupt-based) in your project, or you can come up with your own.

Since the rotary encoder/button uses only 3-bits of the 8 bits on the PCF8574A, the I2C Rotary Encoder makes those available for additional encoders, or for general I/O purposes (switch position, LED activation, relay control, etc.). If you hate spaghetti wiring as much as I do, then you’ll love using I2C for as many things as you can. For hardware support to help in doing that, see also the UDVBM-1 available also from Mostly DIY RF


Schematic Diagram (PDF)

Github Repository

Fully assembled and tested $15.95 Buy on Tindie Soon on eBay