Инкрементный энкодер виды, устройство и принцип работы.
Инкрементальные энкодеры предназначены для контроля угловых и линейных перемещений, соответственно разделяются на два основных вида:
-поворотные, измерения угла поворота;
-линейные, измерения расстояния.
Все они могут быть механическими, оптическими и магнитными, принцип работы которых одинаков.
Механические энкодеры сбор информации происходит с помощью контактов которые вращаются по металлическому диску с прорезями или наоборот, замыкая, размыкая информационные выводы которые маркируются символами A и B с третьим выводом, который должен быть подключён к земле.
Из за формирования сигнала механическим путём в нём возникает дребезг, который приводит к нарушению счёта и является основным недостатком данных энкодеров. Для подавления или исключения дребезга используют цифровой фильтр, который должен пропускать сигнал не меньше определённой продолжительности, исключая короткие всплески дребезга. Такой фильтр обычно предусмотрен в принимающей микросхеме.
К недостаткам можно также отнести малое разрешение энкодера и недолговечность.
Схема подключения.
Оптические энкодеры у них контроль поворота или смещения(линейный энкодер) происходит совсем иначе, светодиод пропускает свет через диск или ленту с прозрачными и затемняющими рисками, на обратной стороне напротив находятся два фотодатчика, которые фиксируют смещение рисок. Данные энкодеры обладают самым большим разрешением и у них отсутствует дребезг, они долговечны.
Вращая энкодер риски на диске перемещаются и закрывают или открывают фотодатчики, тем самым формируя на информационных выводах A и B сигнал, похожий на квадратурный но с не ровными фронтами(края) подъёма и спада, чем медленней вращение тем больше закругление фронтов. Для получения сигнала квадратурной формы, сигналы с выводов A и B нужно пропустить через микросхему с функцией триггера Шмитта например SN74HC14N.
Схема подключения.
Если используются вот такие оптические энкодеры, то выходной сигнал на выводах A и B будет квадратурным за счёт встроенных дополнительных транзисторов. У некоторых, в зависимости от модификации имеются внутренние подтягивающие резисторы, смотрите документацию на конкретный энкодер.
Магнитные энкодеры по принципу работы похожи на оптические только в место диска с рисками магнитный и вместо фотодатчиков датчики магнитного поля или холла. Достоинства такие же как у оптических, за исключение разрешение, у них оно не большое.
Ниже схема с сенсорами A3141 или A3144, которые имеют встроенные триггеры Шмитта.
Если в вашем сенсоре его нет то пропускать сигналы A и B придется через внешний триггер потому, что на выходе будет синусоидальный сигнал, схему можно взять с оптического энкодера.
Принцип работы энкодеров.
Повторюсь принцип работы механических, оптических и магнитных инкрементных энкодеров одинаков только по считыванию информации они различаются.
На работе оптического энкодера я попытаюсь объяснить как они работают и почему разрешение энкодера например 100 рисок на оборот а контроллер считает в четыре или в два раза больше.
Дело в том, что контроллер или его аппаратная часть(какой ни будь таймер с интерфейсом энкодера) воспринимает или реагирует на события с выводов A и B энкодера, то есть спад или подъём напряжения. После чего контроллер с помощью логики по комбинации кода Грея определяет куда было смешение рисок и в соответствии прибавляет или уменьшает счётчик. Если возникнет комбинация порядок которой не предусмотрен то контролер зафиксирует с помощью своих регистров ошибку.
Прохождение одной затемняющей и одной прозрачной риски является периодом, за один период возникает четыре события, соответственно четыре прибавления или уменьшения счётчика. В контроллерах имеются настройки с помощью которых события могут фиксировать только с вывода A или B, тогда счёт за период будет прибавляться на два а не на четыре.
Для корректной работы энкодера затемняющие и прозрачные риски в месте считывания фотодатчиком должны быть одинаковы, фотодатчики смещены друг от друга на 90 градусов или четверть периода.
И на последок, многие пытаются контролировать энкодер с помощью программного кода, что является не правильно так как контроллер будет сильно нагружен и не сможет отследить все события с выводов A и B энкодера или отфильтровать их от ложных срабатываний(помех), что приводит к не правильному счёту. Я такой метод считаю неприемлемый и рекомендую использовать в крайнем случае.
Для правильного использования энкодера во многих контроллерах есть уже готовый аппаратный интерфейс который реализован в специальных таймерах(смотрите документацию), вам остаётся его правильно настроить и просто контролировать счётчик, что практически не нагружает котроллер во время выполнения основной программы. Также в этих таймерах предусмотрены входные цифровые фильтра которые корректно отслеживают все события и отсеивают все ложные срабатывания с выводов энкодера.
В следующих статья я выложу примеры программ для подключения энкодера к контроллерам STM8S и STM32F с помощью таймеров.