Принцип работы:
Инкрементный поворотный энкодер работает путем преобразования временной и фазовой корреляции своего углового кодированного диска через два внутренних фоточувствительных приемных компонента. Этот перевод облегчает определение изменений углового смещения, приводящих к положительным (инкрементным) или отрицательным (декрементным) изменениям.
Внутренний механизм (определение направления):
Фазовый энкодер AB содержит два набора фотоэлементов, которые генерируют две различные последовательности импульсов с разницей в фазе 90°. Опережение и запаздывание последовательности импульсов инвертируются при прямом или обратном вращении энкодера.
При прямом вращении полярность фазового импульса A противопоставляется полярности фазового импульса B именно в момент нарастания фронта фазового импульса B. При обратном вращении этот контраст полярности остается очевидным. Таким образом, использование AB-фазового энкодера позволяет программируемому логическому контроллеру (ПЛК) легко определить направление вращения вала. См. следующую схему:
Из приведенной выше таблицы можно сделать следующие выводы:
Фазовые коды AB различаются для прямого и обратного вращения. Знание текущего и последующего кодов фаз AB позволяет определить направление вращения энкодера.
Расчет расстояния:
Приобретенный энкодер имеет определенные параметры: разрешение энкодера (импульсы на оборот) и окружность (окружность одного оборота).
Расстояние, приходящееся на один импульс = разрешение энкодера / окружность.
Следовательно, расстояние вращения = количество импульсов * разрешение энкодера / окружность.
Для повышения точности и минимизации погрешности целесообразно использовать импульсы фиксированной длины:
Импульсы, необходимые для фиксированной длины = фиксированная длина * окружность / разрешение энкодера.
Подход к реализации (программирование STM32):
Эта концепция реализации требует знакомства с внешними прерываниями STM32 (прерывание по нарастающему или спадающему фронту).
1. Внешнее прерывание используется для захвата нарастающего (или спадающего) фронта фазы A или B. Это действие запускает прерывание, что приводит к входу в процедуру обслуживания прерывания.
2. Код программы обслуживания прерываний выполняет следующие действия: определяет уровень фазы B или A (используется для определения прямого или обратного вращения).
Иллюстративный пример:
В данном примере прерывание фиксирует нарастающий фронт фазы A.
Захватив нарастающий фронт фазы A, оценивается полярность фазы B (см. схему).
Низкая полярность фазы B означает вращение вперед (по часовой стрелке), а высокая полярность - вращение назад (против часовой стрелки).
После определения направления к соответствующей формуле импульса применяется инкрементная корректировка, что впоследствии позволяет вычислить расстояние.
Для расчета скорости рекомендуется включить таймер.
Этот сложный и комплексный подход обеспечивает точное измерение и анализ характеристик вращения инкрементального энкодера, позволяя осуществлять точный контроль и управление движением.