Debouncing a Rotary Encoder

N5IB reports, “ALPS, a maker of rotary encoders, recommends 10K pullup to Vcc, then 10K in series with 0.01 uF to ground. The internal pullup in the ATMega is loosely specified – somewhere in the tens of K, max 50K.

Jim Sheldon W0EB responded with, “This settled the really cheap and modified (to take the detents out) encoder on the test set right down. Tuning is extremely smooth and I don’t notice ANY digits showing up and then backing up again as it did before.

“I can highly recommend adding a 10K external pullup to both the encoder A and B inputs as well as an additional 10K in series with .1uF capacitor to ground on both the A and B inputs to the Raduino card.

“It was a nice surprise addition and I won’t leave them out again.”

Hans G0UPL responds, “Debouncing and pullups are also possible in the firmware. This is the method I use in the QRP Labs kits like QCX http://qrp-labs.com/qcx – look at the schematic: no pull-ups, no RC-debounce. Saves 6 components (4 resistors, 2 capacitors). It’s not important in a one-off build or modification but in a kit where you are trying to optimise cost, every resistor helps! The firmware method also gives you more control over how you do your debounce. I prefer the state-machine approach to rotary encoder handling, it implicitly debounces without involving any time constants.”

Reference