Типовая схема подключения энкодера к микроконтроллеру ATmega8 представлена на рисунке 1. На схеме тактовые выводы A и B подтянуты с помощью резисторов R1 и R2 к питанию и дают низкий сигнал при срабатывании.
Из недостатков данного подключения является наличие «дребезга контактов».
Для подавления «дребезга» в схеме применяют RC-цепь (рисунок 2).
Произведем расчет номинала конденсатора и резисторов для схемы, показанной на рисунке 2.
Для расчета номинала конденсатора и резисторов схемы применяют закон изменения напряжения при разряде конденсатора RC цепи (1):
Отсюда время, в течение которого напряжение достигнет логического максимума:
Пример расчета
Для расчета номинала конденсатора и резисторов также применяют формулу (4), позволяющую определить постоянную времени RC-цепи:
Пример расчета
Реальная осциллограмма дребезга энкодера EC11E показана на рис. 3.
Из рисунка 1 мы можем увидеть, что реальное время «дребезга» (примерно 0,16 мс) значительно отличается от максимального значения (2 мс) приведенного в datasheet на энкодер EC11E.
Из этого следует, что для устранения «дребезга» должно хватать конденсатора номиналом 10 нФ.
Но, в процессе эксплуатации конечного устройства, в следствии «сработки» контактов энкодера в результате интенсивных механических перемещений, данного номинала будет недостаточно.
Соответственно конденсатора номиналом 100 нФ вполне будет достаточно.
Для повышения точности позиционирования, в схемах аппаратного подавления «дребезга», применяют триггеры Шмитта (рисунок 4, 5).
На рисунке 5 два крайних правых триггера применены для обратного инвертирования сигнала.
Инвертирующий триггер Шмитта SN74HC14N можно заменить отечественным аналогами.
Комментарии (18)
aamonster
05.04.2023 03:25+3Вроде ж у атмеги встроенный триггер Шмитта был, зачем нужен внешний?
Зачем второй инвертор? Во первых, проще инвертировать в прошивке. Во вторых, для инкрементального энкодера даже это не требуется. Инвертированный сигнал – просто сдвиг фазы на pi/2, ни на что не влияет.
mastergril
05.04.2023 03:25Из рисунка 1 мы можем увидеть, что реальное время «дребезга» (примерно 0,16 мс) значительно отличается от максимального значения (2 мс) приведенного в datasheet на энкодер EC11E.
Из этого следует, что для устранения «дребезга» должно хватать конденсатора номиналом 10 нФ.
Но, в процессе эксплуатации конечного устройства, в следствии «сработки» контактов энкодера в результате интенсивных механических перемещений, данного номинала будет недостаточно.
Соответственно конденсатора номиналом 100 нФ вполне будет достаточно.
нет, не достаточно, должно быть расчётное значение на основе данных DS, то что вы намеряли может сильно отличаться от экземпляра к экземпляру...
Микросхема триггера без конденсаторов по питанию? Хоровиц Хила на вас нет.
iig
05.04.2023 03:25Я сварщик ненастоящий, но нельзя ли использовать встроенные в MK pull-up резисторы, а дребезг подавить программно?pvvv
05.04.2023 03:25+8Встроенные резисторы, в зависимости от МК, могут оказаться довольно хилыми >50k, а дребезг у квадратурного энкодера подавлять вообще не особо надо, A/B никогда не дребезжат одновременно и ошибку копить не будут.
premierhr
05.04.2023 03:25да, не будут. Но если энкодер завязан на прерывания, то определить направление вращения без аппаратного антидребезга не получится
azudem
Всё жду статьи, как рассчитать номинал резистора для питания светодиода.
Hlad
Бгг. Знали бы вы, как часто люди ошибаются в подобных расчётах. Особенно, когда нужно поставить несколько светодиодов разных цветов.
vin2809
"несколько светодиодов разных цветов "
Скорее всего Вы имели ввиду "разного назначения": подсветка, индикация, передача информации и т.д.
progchip666
У светодиодов разного свечения разное "рабочее напряжение" при одном и том же токе, видимо это имелось ввиду.
Смешно, но существуют и другие нюансы, например - одни светодиоды имеют больший "угол обзора", другие меньший. Светимость разного типа светодиодов при одном и том же токе может отличаться очень существенно. Применяя мощные светодиоды неообходимо позаботиться об их тепловом режиме, иначе они могут очень быстро деградировать и даже выйти из строя...
Достаточно часто начинающие схемотехники любители не обращают внимание на то, что светодиоды легко пробиваются даже небольшим обратным напряжением. Несколько лет назад мне встретился конкретный айтишник на фирме (не любитель, в штате), который умудрился подключить светодиод напрямую к порту микроконтроллера, без токоограничивающего резистора и долго после этого удивлялся почему у него выгорел порт микроконтроллера, хотя он изначально промоделировал схему на симуляторе и она там работала!
zurabob
Возможно все-таки светодиод сгорел, а не порт? У современных контроллеров выходные транзисторы достаточно высокоомные и КЗ не приводит к выгоранию порта.
Kudriavyi
Порт спокойно мог сгореть, все зависит от микроконтроллера. Например я пару раз насиловал Атмегу и повышенным напряжением, и короткими замыканиями, ей все равно, она дубовая. А вот stm32L0 имеет очень слабые порты. Сжег порт потому что заряжал конденсатор в 0.1 мкФ без токоограничивающего резистора. Микроконтроллер не сгорел полностью, но стал потреблять 5 мА вместо 200 мкА
У stm8L тоже слабые порты
Hlad
Нет, именно разных цветов. У них будет очень разное падение напряжения, и, скорее всего - разная светимость при одном и том же токе. Если воткнуть токоограничивающие резисторы, не задумываясь, яркость светодиодов будет очень сильно отличаться друг от друга. Поэтому расчёт резистора светодиода имеет некоторые подводные камни.
devprodest
Для индикаторных светодиодов внутри помещения для уменьшения номенклатуры резисторов можно пренебречь небольшим отличием светимости, главное, что бы опознавалось нормально.
zhogar
Расчет сопротивления: R=(Uпит.-Uпад.N)/Iпр. Где: Uпит. - напряжение питания; Uпад. - напряжение падения на светодиоде; N - количество светодиодов в последовательной цепи. Расчет рассеиваемой мощности на резисторе: P=I^2R. Где: I - прямой ток через резистор (цепь светодиодов); R - расчетное сопротивление. Полученный результат желательно умножить на 2.
zhogar
Кстати можно пойти по другому пути, и мощность рассеивания на резисторе увеличить путем разделения резистора на несколько резисторов, дающие в сумме тоже самое расчетное сопротивление..
DvoiNic
Скоро будет. "Тенденция, однако"© А пока отсается радоваться, что "инженеры", пишущие такие "статьи", хотя бы схемы рисуют, а не "fritzing'и на bredboard'е".