Типовая схема подключения энкодера к микроконтроллеру ATmega8 представлена на рисунке 1. На схеме тактовые выводы A и B подтянуты с помощью резисторов R1 и R2 к питанию и дают низкий сигнал при срабатывании.

Из недостатков данного подключения является наличие «дребезга контактов».
Для подавления «дребезга» в схеме применяют RC-цепь (рисунок 2).

Произведем расчет номинала конденсатора и резисторов для схемы, показанной на рисунке 2.
Для расчета номинала конденсатора и резисторов схемы применяют закон изменения напряжения при разряде конденсатора RC цепи (1):
Отсюда время, в течение которого напряжение достигнет логического максимума:
где: t – временя, в течение которого происходит изменение уровня с логического нуля на логическую единицу, с; U0 – напряжение, необходимое нашему устройству для установки «высокого уровня», В; U – напряжение, подключенное к подтягивающему резистору, В; R – величина сопротивления, Ом; C – величина ёмкости, Ф.
Пример расчета
Заданные условия:
- максимальное время скачка (bounce time) из datasheet на энкодер EC11E: 2 мс;
- типовое значение подтягивающего сопротивления R1: 10 кОм;
- напряжение, необходимое нашему устройству для установки «высокого уровня»: 2,38 В DC.
- напряжение питания: 5 В DC.
Зададим стандартное значение сопротивления R2: 10 кОм.
Таким образом, расчет дает следующее значение емкости:
Для расчета номинала конденсатора и резисторов также применяют формулу (4), позволяющую определить постоянную времени RC-цепи:
где: ꚍ – постоянная времени RC-цепи, с; R – величина сопротивления, Ом; C – величина ёмкости, Ф.
Пример расчета
Заданные условия:
- максимальное время дребезга (chattering time) из datasheet на энкодер EC11E: 3 мс;
- типовое значение подтягивающего сопротивления R1: 10 кОм;
- напряжение питания: 5 В DC.
Зададим стандартное значение сопротивления R2: 10 кОм.
Таким образом, расчет дает следующее значение емкости:
Реальная осциллограмма дребезга энкодера EC11E показана на рис. 3.

Из рисунка 1 мы можем увидеть, что реальное время «дребезга» (примерно 0,16 мс) значительно отличается от максимального значения (2 мс) приведенного в datasheet на энкодер EC11E.
Из этого следует, что для устранения «дребезга» должно хватать конденсатора номиналом 10 нФ.
Но, в процессе эксплуатации конечного устройства, в следствии «сработки» контактов энкодера в результате интенсивных механических перемещений, данного номинала будет недостаточно.
Соответственно конденсатора номиналом 100 нФ вполне будет достаточно.
Для повышения точности позиционирования, в схемах аппаратного подавления «дребезга», применяют триггеры Шмитта (рисунок 4, 5).


На рисунке 5 два крайних правых триггера применены для обратного инвертирования сигнала.
Инвертирующий триггер Шмитта SN74HC14N можно заменить отечественным аналогами.
См. также: Инкрементальный энкодер: подключение и обработка его с помощью AVR (ATmega8/16/32/168/328)