Hardware Debounced Rotary Encoder

The rotary encoder is a great user input device with a satisfying tactile feedback. A lot of user interfaces are slowly transitioning towards button-less devices, but when in need of a physical system, I always love to use encoders.

However if you have ever worked with one, you know they are not so easy to interface; and the culprit is input bounce.

 

Bounce coupled with fast changing signals is a nightmare. There are libraries out there that solve this issue in software but with a 8 bit micro-controller like the ATMEGA328 of Arduino fame, all the processing power will be lost in trying to get a clean signal. This can be solved with a few passive components.

 

Hardware Debounced Rotary Encoder

Rotary encoder module assembled
Rotary encoder module assembled
Back of the PCB revealing schmitt triggers.
Back of the PCB revealing schmitt triggers.

 

This module completely eliminates the need to filter anything in software. Signals coming through are clean, bounce free. Saves me future headaches.

 

Hardware debounced rotary encoder module schematics
Hardware debounced rotary encoder module schematics

Bonus: a clean, bounce free edge captured on a scope

Falling edge on the encoder module
Falling edge on the encoder module

Leave a comment

Your email address will not be published. Required fields are marked *

css.php