Many electronics projects need some kind of user input. For those where you need scrolling functionality, in a menu for example, or enter numerical values like a timeout, rotary encoders are very convenient. They are cheap, easy to use and require minimal to none additional components. However, interfacing them requires little more work on the software side than with regular buttons. In this tutorial I present everything needed to use a rotary encoder with a microcontroller. While I used an ATmega uC it should be easily portable to other platforms
In this small tutorial I will show you how to start programming Atmel microcontrollers under GNU/Linux, Debian in particular. It covers all steps starting with the software prerequisites, setting up a minimal circuit to actually flashing the microcontroller with the obligatory “Hello, World!” program. There are a few stumbling blocks that I hit along the way and I will explicitly point them out and show what to do about them. Hopefully this will save you some frustration.