Как стать автором
Обновить

Подключение инкрементального механического энкодера к микроконтроллеру ATmega8

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров5.4K
Всего голосов 12: ↑8 и ↓4+10
Комментарии19

Комментарии 19

Всё жду статьи, как рассчитать номинал резистора для питания светодиода.

Бгг. Знали бы вы, как часто люди ошибаются в подобных расчётах. Особенно, когда нужно поставить несколько светодиодов разных цветов.

"несколько светодиодов разных цветов "

Скорее всего Вы имели ввиду "разного назначения": подсветка, индикация, передача информации и т.д.

У светодиодов разного свечения разное "рабочее напряжение" при одном и том же токе, видимо это имелось ввиду.

Смешно, но существуют и другие нюансы, например - одни светодиоды имеют больший "угол обзора", другие меньший. Светимость разного типа светодиодов при одном и том же токе может отличаться очень существенно. Применяя мощные светодиоды неообходимо позаботиться об их тепловом режиме, иначе они могут очень быстро деградировать и даже выйти из строя...

Достаточно часто начинающие схемотехники любители не обращают внимание на то, что светодиоды легко пробиваются даже небольшим обратным напряжением. Несколько лет назад мне встретился конкретный айтишник на фирме (не любитель, в штате), который умудрился подключить светодиод напрямую к порту микроконтроллера, без токоограничивающего резистора и долго после этого удивлялся почему у него выгорел порт микроконтроллера, хотя он изначально промоделировал схему на симуляторе и она там работала!

Возможно все-таки светодиод сгорел, а не порт? У современных контроллеров выходные транзисторы достаточно высокоомные и КЗ не приводит к выгоранию порта.

Порт спокойно мог сгореть, все зависит от микроконтроллера. Например я пару раз насиловал Атмегу и повышенным напряжением, и короткими замыканиями, ей все равно, она дубовая. А вот stm32L0 имеет очень слабые порты. Сжег порт потому что заряжал конденсатор в 0.1 мкФ без токоограничивающего резистора. Микроконтроллер не сгорел полностью, но стал потреблять 5 мА вместо 200 мкА

У stm8L тоже слабые порты

Нет, именно разных цветов. У них будет очень разное падение напряжения, и, скорее всего - разная светимость при одном и том же токе. Если воткнуть токоограничивающие резисторы, не задумываясь, яркость светодиодов будет очень сильно отличаться друг от друга. Поэтому расчёт резистора светодиода имеет некоторые подводные камни.

Для индикаторных светодиодов внутри помещения для уменьшения номенклатуры резисторов можно пренебречь небольшим отличием светимости, главное, что бы опознавалось нормально.

Расчет сопротивления: R=(Uпит.-Uпад.N)/Iпр. Где: Uпит. - напряжение питания; Uпад. - напряжение падения на светодиоде; N - количество светодиодов в последовательной цепи. Расчет рассеиваемой мощности на резисторе: P=I^2R. Где: I - прямой ток через резистор (цепь светодиодов); R - расчетное сопротивление. Полученный результат желательно умножить на 2.

Кстати можно пойти по другому пути, и мощность рассеивания на резисторе увеличить путем разделения резистора на несколько резисторов, дающие в сумме тоже самое расчетное сопротивление..

Скоро будет. "Тенденция, однако"© А пока отсается радоваться, что "инженеры", пишущие такие "статьи", хотя бы схемы рисуют, а не "fritzing'и на bredboard'е".

Понимаю Ваш юмор, но я бы рекомендовал статью про интегральный линейный источник постоянного тока (например, у Nexperia есть в корпусах SOT23 или TSOP6 с регулировкой тока).

  1. Вроде ж у атмеги встроенный триггер Шмитта был, зачем нужен внешний?

  2. Зачем второй инвертор? Во первых, проще инвертировать в прошивке. Во вторых, для инкрементального энкодера даже это не требуется. Инвертированный сигнал – просто сдвиг фазы на pi/2, ни на что не влияет.

Предположу, что автору некуда было деть неиспользованные триггеры Шмидта.

Все-таки — Шмитта.

Из рисунка 1 мы можем увидеть, что реальное время «дребезга» (примерно 0,16 мс) значительно отличается от максимального значения (2 мс) приведенного в datasheet на энкодер EC11E.

Из этого следует, что для устранения «дребезга» должно хватать конденсатора номиналом 10 нФ.

Но, в процессе эксплуатации конечного устройства, в следствии «сработки» контактов энкодера в результате интенсивных механических перемещений, данного номинала будет недостаточно.

Соответственно конденсатора номиналом 100 нФ вполне будет достаточно.

нет, не достаточно, должно быть расчётное значение на основе данных DS, то что вы намеряли может сильно отличаться от экземпляра к экземпляру...

Микросхема триггера без конденсаторов по питанию? Хоровиц Хила на вас нет.

Я сварщик ненастоящий, но нельзя ли использовать встроенные в MK pull-up резисторы, а дребезг подавить программно?

Встроенные резисторы, в зависимости от МК, могут оказаться довольно хилыми >50k, а дребезг у квадратурного энкодера подавлять вообще не особо надо, A/B никогда не дребезжат одновременно и ошибку копить не будут.

да, не будут. Но если энкодер завязан на прерывания, то определить направление вращения без аппаратного антидребезга не получится

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации