Принцип работы энкодера, как он устроен и как работает

Определение направления вращения в осциллограмме

Энкодер что это такое? Весьма часто в автомагнитоле, принтере, и других  электронных устройствах можно видеть такие электронные компоненты, как энкодер. Так что же это такое? Может  быть это переменный резистор? Вовсе нет.

Инкрементальный (или инкрементный, от англ. increment — «увеличение») энкодер (датчик угла поворота) — это электронно-механический компонент, который преобразовывает вращательное движение вала в пачки электрических импульсов, позволяющих определить направление и угол  вращения самого вала. Также, зная число импульсов в единицу времени, можно определить и скорость вращения. Основным отличием инкрементальных энкодеров от абсолютных является то, что они могут сообщать лишь о величине изменения их положения, а не об абсолютном своем состоянии. Самым популярным примером использования инкрементального энкодера в повседневной жизни, является ручка регулировки громкости современной автомобильной магнитолы с цифровым управлением.

Также энкодеры идеально подходят для реализации навигации по различным меню.

Инкрементальные энкодеры бывают оптическими, магнитными, контактными. Вне зависимости от принципа устройства все инкрементальные энкодеры на выходе генерируют 2 линии (A и B) с импульсами смещенными относительно друг друга. Именно по смещению импульсов можно судить о направлении вращения. А по количеству импульсов — об угле поворота.

Каждый инкрементальный энкодер имеет следующую основную характеристику — дискретность (количество шагов, положений между импульсами, на один оборот вала). Благодаря дискретности, можно вычислить угол единичного изменения положения. Например, энкодер Borns 3315-9 за полный оборот генерирует 30 импульсов. А это значит, что каждый шаг эквивалентен повороту на 12°. Помимо этого, вал энкодера фиксируется в каждом положении между каждой пачкой импульсов.

Классифицировать энкодеры можно распределив их по четырём большим группам:

  • контактные энкодеры
  • магнитные энкодеры
  • оптические энкодеры
  • энкодеры для аудиоаппаратуры

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

Магнитные энкодеры для своей работы используют эффект Холла, обеспечивающий изменение проводимости полупроводника в зависимости от значени индукции магнитного поля. Оптические или оптоэлектронные энкодеры содержат в себе миниатюрную оптопару, и крыльчатку обеспечивающую  преобразование угла поворота в пачки импульсов.

На иллюстрации изображена структура механического контактного энкодера:

Все больше и больше современных приводных систем, в том числе основанных на сервоприводах и шаговых двигателях, полагаются на обратную связь от энкодеров для точного управления скоростью и положением. Энкодеры преобразуют движение контролируемого объекта, например, вала двигателя, в цифровой сигнал. Их необходимо правильно выбрать в соответствии с потребностями приложения, чтобы обеспечить оптимальную эффективность.

При выборе подходящего преобразователя или датчика перемещения, рекомендуется учитывать несколько ключевых факторов. К ним относятся условия окружающей среды, включая температуру, влажность, вибрации, загрязнения и т. д. Также важно учитывать: тип движения (одно — или двустороннее, линейное или угловое); размер смещения (расстояние); чувствительность при возврате в исходное положение, механическая конструкция, разрешение, шаг и т. д.

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

Домены создают переменное магнитное поле. Их можно обнаружить с помощью различных технологий, включая простые магнитные датчики или магнитострикционные детекторы, которые обеспечивают более высокую скорость измерения. В качестве альтернативы можно использовать датчики Холла. Это преобразователи, которые изменяют свое выходное напряжение в результате изменения напряженности магнитного поля. Эти датчики используются в современных точных приложениях, а также для бесконтактного переключения, позиционирования и определения скорости. Они представляют собой надежное и экономичное решение, сочетающее высокую чувствительность и разрешение с более высокой устойчивостью к ударным нагрузкам.

Преимущество магнитных энкодеров в том, что они традиционно устойчивы к суровым условиям, что делает их пригодными для многих промышленных применений.

Датчики этого типа могут работать под водой, в пыли, а также в условиях сильной вибрации. Они также подходят для бюджетных приложений, так как относительно экономичны.

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

Резольверы чрезвычайно прочные, но их часто сложно установить. Индуктивные энкодеры разработаны специально для устранения этого недостатка. Вместо обычных обмоток они имеют плоские элементы, литографически нанесенные на печатную плату. Все три обмотки находятся на одной печатной плате и крепятся к статору. Проводящий диск, установленный на роторе или валу, возбуждает катушки.

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

Абсолютные энкодеры устанавливают уникальную цифровую комбинацию символов для каждой угловой позиции. Поэтому по запросу датчик всегда может восстановить угловое положение измерительного прибора.

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

Чтобы определить разрешение, рекомендуется начать с определения минимального расстояния приращения, требуемого приложением. Выбор разрешения, которое примерно в четыре раза превышает минимальный шаг измерения, является подходящим соотношением. Для более чувствительных приложений его можно увеличить до 10 раз. Инвестиции в гораздо более высокое разрешение, чем это, скорее всего, будут оправданы только в ограниченном наборе высокоточных приложений. Поэтому распространенное мнение, что по умолчанию лучше всего просто выбрать решение с самым высоким разрешением, неверно. Даже в очень небольшом проценте приложений слишком высокое разрешение может вызвать проблемы.

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

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

Параллельная разводка: это пара проводов для каждого бита данных. Параллельная разводка отправляет каждый бит за раз, но для этого требуется больше проводов, что усложняет систему и требует дополнительных затрат;

Последовательные интерфейсы: они отправляют все биты информации через общий интерфейс, но последовательно, по одному. Это снижает количество необходимых проводов, стоимость, сложность и возможность ошибок;

Подключение к шине: полевые шины, такие как CAN, Profibus, Modbus и т. д., позволяют подключать несколько управляемых устройств по принципу Master / Slaves;

По этим показателям преобразователи можно разделить на датчики с цельным (сплошным) или полым валом. Муфты могут быть угловыми, линейными и компенсировать осевой зазор вала двигателя, уменьшая износ подшипников. Однако такая конфигурация может поставить под угрозу способность системы обеспечивать точную обратную связь.

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

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

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

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

Производители датчиков линейных и угловых перемещений предлагают различные варианты монтажа, включая передние фланцы, сервофланцы, квадратные фланцы для энкодеров с жестким валом и крепежные элементы для версий с полым валом. Внесение изменений в поле — подходящий метод для эффективной адаптации энкодера к конструкции системы привода. Однако такой подход может иметь обратный эффект. Многие пользователи думают, что достаточно просто просверлить соответствующие отверстия и установить энкодер, но упускают из виду, что установка должна быть чрезвычайно точной, чтобы гарантировать точность датчика, заявленную производителем. Ни при каких обстоятельствах не рекомендуется изменять заводскую монтажную конфигурацию.

Таким образом, правильный выбор кодировщика в соответствии с приложением — это вопрос оценки множества возможностей. Стоит отметить, что на рынке доступны как стандартные, так и специализированные кодировщики. Выбор наиболее подходящего решения может быть сделан только после сбора достаточной информации о приложении.

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

  • Цена: $3.18

Рано или поздно в жизни каждого самоделкина возникает потребность в покупке чего-то такого этакого, что обычно само в голову не придет. Вот и я жил себе спокойно и об энкодерах даже не задумывался. Хотя должен признаться опыт работы с энкодерами имел. Как-то в одной и поделок использовал энкодер из принтера. В данной истории все приключилось внезапно. Ползая по своим хоббийным форумам натолкнулся на конкурс. Сайт (называть не буду, т.к. разговор не о нем) проводил видимо раскрутку посещаемости и плюс один из форумчан проводил раскрутку своих российского производства изделий. И разыгрывался комплект из 3 наборов для самостоятельной сборки сервоконтроллеров. Я зарегистрировался на этом форуме, подал заявку (вместе с 3 или 4-мя всего лишь участниками) и… выиграл. Так я стал обладателем 3-х наборов для сборки сервоконтроллеров. Далее мне потребовались энкодеры. Позволю себе объяснить для читателей не так глубоко погруженных в электронные компоненты, что такое сервоконтроллер, энкодер и с чем все это едят. Есть 2 основных способа управлять точным перемещением в изделиях с ЧПУ (числовое программное управление). Попробую объяснить максимально доступным языком, без сложных схем и терминов. Первый способ это шаговые двигатели. Шаговый двигатель имеет сложное устройство — несколько катушек, притягивающих сердечник в заданных положениях. Количество положений, в которых может быть зафиксирован сердечник называется шагами, промежуточные положения (регулируются различными промежуточными напряжениями и соответственно магнитными полями) называют микрошагами. Управляет шаговым двигателем драйвер — это плата управления, как правило с микропереключателями шагов и регулировкой тока, протекающего через двигатель. На вход драйвера подаются сигналы: Enable (разрешить работу шагового двигателя), DIR (направление вращения), STEP (количество шагов, на которое двигателю необходимо повернуть вал). И драйвер переводит команды в обороты вала двигателя. Очень простая и надежная конструкция. Из минусов — скорость вращения двигателя ограничена из-за его конструктива, и если двигатель пропустит по той или иной причине шаги, то управляющая программа об этом не узнает. Отсюда и область применения — низко и среднескоростные двигатели в заданной области нагрузок. Например 3Д принтер или хоббийные станки. Второй способ управлять перемещениями — сервомотор. Мотор сам по себе может быть любым, постоянного или переменного тока, без разницы. Единственное условие, его вал должен иметь энкодер. Энкодер — это устройство определения позиции вала в данный момент времени. Об энкодерах мы поговорим подробнее чуть позже. Сервоконтроллер имеет другой принцип работы, в отличии от драйвера шагового двигателя. Сервоконтроллер получает на входе те же самые сигналы Enable, STEP, DIR и подает на двигатель напряжение. Двигатель начинает вращаться в нужном направлении, энкодер возвращает данные о положении вала двигателя. Как нужное положение достигается, вал двигателя в нем фиксируется. Конечно это сильно упрощено, т.к. есть ускорение и торможение двигателя, управление током и напряжением, пропорционально-интегрально-дифференцирующий (ПИД) регулятор в контуре обратной связи,… но мы же договорились в этот раз не сильно лезть в теорию. Какие же плюсы серводвигателей: любая скорость вращения, отсутствие пропуска шагов, бесшумность (шаговый двигатель ощутимо громок в работе из-за своего конструктива). Но цена сервоконтроллеров выше и существенно драйверов шаговых двигателей. Поэтому основная ниша сервоконтроллеров — профессиональное применение. Для своего проекта я выбрал двигатели Динамо Сливен. Эти двигатели широко использовались в советское время в ЭВМ и их было какое-то нереально большое количество. Кажется, что практически любой хоббийщик или имеет такой двигатель или сталкивался с ним. На барахолках их до сих пор перепродают. Это двигатели постоянного тока с фантастическим неубиваемым ресурсом и устойчивостью к любым издевательствам. В качестве сервоконтроллера я использовал выигранную плату. Она представляет собой развитие open source сервоконтроллера, известного под устойчивым брендом «сервоконтроллер Чена» — по имени китайца, году так в 2004-м, если не ошибаюсь, предложившим данную схему. Теперь уже практически переходим сути обзора — к энкодерам. Выбор энкодера был осуществлен по характеристикам и цене. Какие бывают типы энкодеров. В основном это оптические и магнитные. Магнитные — когда на краях диска закреплены магниты, а возле них находится датчик Холла. Решение дорогое, промышленное, обладает повышенной надежностью. Цена не хоббийная ни разу. Оптические энкодеры. Самое распространенное решение. Есть в каждой мышке. Раньше отвечали за вращение шарика и колесика. Теперь шариков уже нет, а вот колесики остались. Принцип работы прост — прерывание светового пучка проходящим непрозрачным телом. Оптические энкодеры есть 2-х типов: инкрементальные и абсолютные. Инкрементальные делятся на 2 подтипа. Простейшие инкрементальные — такие как изображены на рисунке выше. Они определяют пересечение светового потока и на их основе можно построить, например, тахометр. Недостаток данного энкодера состоит в том, что при помощи него невозможно определить направление вращения диска. Инкрементальные 2-х канальные решают задачу определения направления вращения диска. Для этого используется не один фотодиод, а несколько, обычно 4. Они формируют 2 независимых канала передачи данных, и сравнивая сигналы с этих каналов можно однозначно сделать вывод о направлении вращения диска. Какие же недостатки есть у данного инкрементального энкодера? Недостаток один, но для ряда применений он критичный. При инициализации энкодера мы не знаем в каком положении находится диск. Т.е. мы можем узнать только направление и скорость вращения диска. Для получения полной информации, а именно — начальное положение диска, направление и скорость вращения используются абсолютные энкодеры. Абсолютные энкодеры используют диск со сложной системой кодировки положения. Наиболее распространен код Грея — двоичная кодировка с защитой от ошибок. Я остановил свой выбор на инкрементальном энкодере с контролем направления вращения, т.е. с двумя квадратурными каналами вывода информации. Разрешения в 100 линий на оборот диска мне было за глаза. Поэтому на Алиэкспрессе я нашел энкодеры за разумную цену и с нужными мне характеристиками. Вот фотка 3-х пришедших мне энкодеров. Дошли они недели за 3. У энкодеров 4 вывода, Красный — питание 5В, Черный — земля, Цветные — каналы А и В. Я быстренько выточил втулочку на вал двигателя под крепление диска, ввинтил туда стержень с резьбой. На 3Д принтере распечатал площадку под крепление датчика энкодера Собрал все вместе Подключил сервоконтроллер, и… тут бы был счастливый конец обзору, но нет. Ничего не заработало. Даже близко ничего не заработало. Подключил осциллограф и понял, что никаких квадратурных сигналов на выходе нет, только шумы, наводки и непонятные выплески. Грешил я на все на свете. И на требовательность к позиционированию, и на засветку, и на наводки электромагнитные. И часами аккуратно возюкал датчик в разных положениях, выключал свет и пытался проделать все тоже самое в темное. «Крокодил не ловится, не растет кокос.» Разумеется я перепробовал все 3 энкодера. Везде тоже самое. И тут меня дернуло поразглядывать датчик в микроскоп. То что я увидел повергло меня в изумление. Все 4 сенсора стояли в ряд по радиусу диска, т.е. засвечивались через прорезь диска одновременно. Разумеется ничего не работало. Датчики должны стоять перпендикулярно радиусу диска, и засвечиваться последовательно разными фронтами прорези диска. Я не мог поверить, что это так просто и так глупо. Китайцы поставили датчик с поворотом на 90 градусов. Я спросил на форуме у такого же как я покупателя таких же энкодеров как у него стоит датчик. И у него все было также неправильно и не работало. Почесав в затылке я решил попробовать это дело исправить. Энкодер разобрался легко, при помощи фена расплавил термоклей и достал внутренности. Поднес датчик к диску так чтобы сенсоры был поперек рисок. Конечно датчик корректно не встал, но на осциллографе начал появляться какой-то осмысленный сигнал. Дальше разрезал корпус энкодера сбоку, наростил проводочками расстояние между светодиодом и матрицей сенсоров и засунул все в корпус по-новому. На фото видно, что сенсоры стали перпендикулярно радиусу диска. Собрал, подключил к сервоконтроллеру и… Бинго, все заработало! Мотор встал в режим удержания позиции. Т.е. при попытке проворота вала двигателя, мотор упирается и если его все же провернуть, то возвращается в исходное положение. Ну а дальше двигатель займет свое место на фрезерном станке, но это уже совсем другая история…:-) Как резюме. Энкодер из коробки не работает. К покупке не рекомендую. Но в своей ценовой категории, если он был бы исправным, это хорошее бюджетное решение. Либо если переделка изделия в работающее не пугает, то можно брать и переделывать. У продавца куча положительных отзывов на такой энкодер. Либо это все липа, либо, что вероятнее, брак пошел массово совсем недавно. Я написал продавцу, он пока шлет мне тонну технических описаний и предлагает попробовать еще, и намекает, что это я не разобрался. Буду на него давить. Пусть хоть часть денег вернет. Я столько времени угрохал из-за их заводского разгильдяйства. Всем добра и удовольствия от хобби! Главная » Принцип работы энкодера, как о…

Что это такое и где применяется

Энкодер (ДУП) – это специальное устройство, необходимое для точного измерения интересующих параметров движения детали цифровым способом (угол поворота/направление/скорость и позиция), к примеру, редуктора или вала на электродвигателе. Стоит отметить, что данное устройство может носить название преобразователя угловых помещений.

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

Принцип работы энкодера заключается в его передаче сигнала на вращающийся объект. При этом он позволяет увидеть такие данные как: угол поворота/направление/скорость и позиция.

Устройство и виды энкодеров

Рисунок 1. Энкодер с ручкой – самый простой вариант

Как вы уже узнали, энкодер – это поворотный датчик. Самый простой датчик оснащён ручкой, способной совершать поворот, как по стрелке часов, так и против неё. От поворотного угла и направления зависит выдаваемый цифровой сигнал, который информирует либо о том, какое положение приняла ручка, либо её стороне поворота. Обычно у таких энкодеров ручка применяется ещё в виде кнопки.

Датчики поворотного угла подразделяют по следующим критериям:

  • Принцип выдачи данных: инкрементный и абсолютный;
  • Принцип работы: оптический, магнитный и механический;

Инкрементальный энкодер принцип работы

Рисунок 2. Инкрементный энкодер

Имея более простую конструкцию, преобразователь формирует импульсы, благодаря которым устройство приёма информации определяет нынешнее положение объекта, подсчитывая счётчиком число импульсов. Сразу после приведения данного вида ДУПа в действие положение интересующего объекта (вала) неизвестно. Для подключения системы отсчёта непосредственно к отсчётному началу такие датчики оснащены нулевой меткой. Через них валу необходимо пройти после соответствующего включения устройства.

Из недостатков данного вида датчиков можно выделить то, что определить пропуск импульсов от преобразователя не представляется возможным. Это соответственно является причиной накопления ошибки при выявлении поворотного угла объекта (пока он не пройдёт нуль-метку). Для выявления направления поворота используется пара измерительных каналов – косинусный и синусный. В них одинаковые импульсные последовательности перемещены ровно на 90 градусов относительно обоих каналов.

Абсолютный энкодер устройство

Рисунок 3. Абсолютный энкодер

У этого типа ДУПа его поворотный круг поделён на определённые пронумерованные сектора, обычно идентичного размера. Во время работы он выдаёт конкретный секторный номер, в котором он непосредственно и находится. Именно поэтому данное устройство называют абсолютным. Благодаря его устройству можно легко определить угол/положение/направление энкодера относительно начального (нулевого) сектора.

Помимо этого абсолютный датчик угла не требует присоединения систем отсчёта к какому-нибудь нулевому значению. В нём используется специальный код Грея, позволяющий не допустить ошибки при работе. Из недостатков можно выделить только то, что микроконтроллер будет вынужден постоянно его переводить в двоичный код, чтобы выяснить положение ДУПа.

Оптические ДУПы

Они отличаются наличием диска из стекла с оптическим растром, закреплённого на валу. Во время вращения вала создаётся поток света, который впоследствии принимается фотодатчиком.

Абсолютный оптический датчик – это ДУП, в котором каждое положение вала имеет свой выходной цифровой код. Этот код является одним из основных параметров устройства. Данный датчик, как и инкрементный, вычисляет и закрепляет параметр движения оптического диска.

Магнитные

Магнитный энкодер регистрирует передвижение движущегося магнитного элемента, а именно его магнитных полюсов рядом с чувствительным элементом, переводя полученные данные в определённый сигнал.

Механические

Отличаются наличием диска, материал которого представлен диэлектриком, с нанесённым на него выпуклым или непрозрачным участком. В механической системе абсолютный угол считывается с помощью линейки переключателей/контактов, а в оптической с помощью линейки оптронов. Выходной сигнал представлен кодом Грея, позволяющим убрать неоднозначность интерпретируемого сигнала.

Недостаток механического энкодера представляет собой дребезжание контактов, зачастую приводящий к неверному подсчёту и выявлению направления движения. Оптический и магнитный энкодеры не имеют этой особенности.

Параметры

Первоначальный параметр любого ДУПа представлен числом импульсов, получаемых за совершение одного оборота (разрешение/разрядность). Зачастую этот параметр равен 1024 за один оборот.

Из других критериев можно выделить:

  • Напряжение – от пяти до 24В;
  • Вид вала – пустой, сплошной;
  • Размер вала/отверстия;
  • Вид выхода – транзисторный и другие;
  • Размер корпуса;
  • Вид крепления.

Рисунок 4. Абсолютный оптический датчик

Установка

Энкодер устанавливают соответственно на валу, информацию которого необходимо получить. Для установки требуется специальная переходная муфта, с помощью которой можно скомпенсировать возможную разность в размерах с валом энкодера. Важно! Корпус ДУПа должен быть крепко зафиксирован.

Для монтажных работ преобразователя с полым валом необходим другой способ. В таком варианте вал, информацию которого нужно получить, включён внутрь ДУПа и закрепляется в пустой втулке. Стоит учитывать, что у такого типа ДУП корпус не закрепляется.

Подключение

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

Однако обычно преобразователь используют вместе с контроллером. К нему присоединяют интересующие выходы. Далее программа определяет положение/скорость/ускорение объекта. К примеру, устройство установлено на электродвигательном валу, перемещающем один элемент в сторону другого. После вычислений на устройстве вывода виден зазор между элементами, при достижении которого движение элементов останавливается, для обеспечения их сохранности.

Понравилась статья? Расскажите друзьям: Оцените статью, для нас это очень важно:

Полезные сервисы:

Опрос: Насколько Вам помогла информация на нашем сайте? (Кол-во голосов: 1831) Чтобы проголосовать, кликните на нужный вариант ответа. Результаты Сегодня я хочу рассказать об энкодерах вращения, какие они бывают, как работают и где применяются. И для примера рассмотрим подключение модуля KY-040 к Ардуино. А пока начнем с теории. image

Что такое энкодер вращения

Принцип работы

Работу энкодера вращения проще всего объяснить на примере оптического энкодера. Представьте себе вал электродвигателя, на котором закреплен диск с прорезями. С одной стороны диска расположен светоизлучающий элемент, луч света проходит через прорези и регистрируется фотоэлементом, расположенным с другой стороны (устройство, состоящее из спаренных светоизлучающего и принимающего элементов, называется фотопрерыватель). При вращении диска луч прерывается, в результате чего на выходе фотоэлемента мы получим меандр – сигнал прямоугольный формы. И частота меандра будет пропорциональна скорости вращения диска. Таким образом можно судить о скорости вращения вала электродвигателя. image Однако работающее по описанному принципу устройство не способно определить направление вращения. Чтобы исправить это добавим в него второй фотопрерыватель и расположим с некоторым смещением относительно первого. В зависимости от направления вращения диска сигнал на выходе первого фотопрерывателя будет меняться раньше или позже чем сигнал на выходе второго. А значит, анализируя как меняются эти два сигнала, мы можем определить направление вращения. image На практике смещения сигналов добиваются не за счет особого расположения фотопрерывателей, а путем добавления второй полосы с прорезями или прозрачными и непрозрачными участками. Участки на двух полосах расположены так чтобы обеспечить сдвиг сигнала по фазе на 90 градусов, поэтому работающие по такому принципу энкодеры называются квадратурными. На этом же принципе основаны механические энкодеры, только вместо фотопрерывателей в них используются скользящие контакты. Основным недостатком таких энкодеров является дребезг контактов, который может приводить к неправильному подсчету сигналов. Кроме того скользящие контакты подвержены износу. Все это ограничивает область применения механических энкодеров. Магнитные энкодеры строятся на базе магниточувствительных элементов, таких как датчики Холла или магниторезистивные датчики. Они просты в изготовлении, лишены недостатков контактных энкодеров и мало чувствительны к внешним факторам. Но все же проигрывают в точности емкостным, индуктивным и оптическим энкодерам. Емкостные энкодеры имеют в своем составе диск асиметричной формы, который при вращении изменяет емкость между двумя электродами. Это изменение регистрируется и используется для определения углового положения. Емкостные энкодеры так же просты в изготовлении и надежны в эксплуатации, из внешних факторов чувствительны только к изменению влажности. Индуктивные энкодеры работают в магнитном поле и используют явление электромагнитной индукции. Благодаря устойчивости к внешним факторам подходят для использования в неблагоприятной среде, когда другие энкодеры могут оказаться ненадежными. Резистивный энкодер работает по тому же принципу что и обычный потенциометр: электрический сигнал на его выходе пропорционален положению ручки энкодера. Собственно и сами потенциометры могут использоваться для отслеживания углового положения, например, их можно увидеть в сервомашинках: image

Абсолютные и инкрементные энкодеры

Приведенный выше пример оптического энкодера вращения генерирует на выходе импульсы, по которым принимающее устройство определяет текущее положение вала путём подсчёта числа импульсов счётчиком. Такие энкодеры называют инкрементными или накапливающими. Сразу же после включения инкрементного энкодера положение вала неизвестно. Для привязки системы отсчёта к началу отсчёта инкрементные энкодеры могут иметь нулевые (референтные) метки, через которые нужно пройти после включения оборудования. К недостаткам также относится то, что невозможно определить пропуск импульсов от энкодера по каким-либо причинам. Это приводит к накоплению ошибки определения угла поворота вала до тех пор, пока не будет пройдена нуль-метка. Этих недостатков лишены абсолютные энкодеры. Они выдают на выходе сигналы, которые можно однозначно интерпретировать как угол поворота. Как и в приведенной выше схеме инкрементного энкодера, абсолютный оптический энкодер содержит светоизлучающий и принимающий элементы. Существенное отличие в используемом диске: он имеет прозрачные и непрозрачные участки на нескольких радиусах. Световые лучи, проходя через диск, засвечивают те или иные участки фоточувствительного элемента, который в свою очередь формирует на выходе соответствующие сигналы, уникальные для каждого положения диска. Для кодирования углового положения абсолютные энкодеры используют диски с двоичными кодами и кодами Грея. Двоичный код удобен тем, что не требует дополнительных преобразований. В целом же использование кода Грея предпочтительнее т.к. он более устойчив к ошибкам чтения за счет того, что каждое следующее значение отличается от предыдущего только в одном разряде. При этом вероятность считывания совершенно неверного значения полностью исключена. Более подробно о коде Грея можно почитать в Википедии. На следующем изображении приведены примеры дисков для инкрементного квадратурного и абсолютного энкодеров. image Этот пример наглядно иллюстрирует принцип кодирования углового положения на диске абсолютного энкодера. Для каждого положения вала формируется свой уникальный код. В данном случае для кодирования 16 положений потребовалось 4 концентрических дорожки. При увеличении разрешения абсолютного энкодера возрастает число дорожек и разрядность считываемого значения. Поэтому наряду с параллельным интерфейсом в абсолютных энкодерах широко применяются последовательные интерфейсы, такие как Profibus, CANopen, SSI, BiSS, ISI, Profinet, PWM, Ethernet Powerlink, EtherNet TCP/IP, Modbus, DeviceNet, EtherCAT. Также существуют энкодеры, возвращающие значение углового положения в виде аналогового сигнала. Абсолютные энкодеры могут быть однооборотными и многооборотными. Если однооборотные способны только выдавать значение угла поворота, то многооборотные позволяют также определять количество оборотов. Это возможно за счет наличия в их составе редуктора и дополнительного диска, который изменяет свое положение при каждом полном обороте вала энкодера.

Подключение инкрементного энкодера к Ардуино

Теперь после небольшой теоретической части можно перейти к практике. Попробуем подключить к Ардуино инкрементный энкодер вращения. У меня в распоряжении имеется модуль KY-040 (вроде того, что изображен на фото в начале этой статьи), который представляет из себя энкодер с разрешением 20 шагов на оборот со встроенной кнопкой, распаянный на плату с подтягивающими резисторами. Это идеальный компонент для организации меню: вращение вала энкодера можно интерпретировать как перемещение курсора по элементам меню, а нажатие кнопки – выбор конкретного элемента. Позже я приведу пример создания такого меню, а сейчас разберемся с подключением энкодера к Ардуино. image Модуль имеет 5 контактов, это:

  • CLK и DT – выводы энкодера, они подтянуты к линии питания резисторами 10кОм;
  • SW – вывод кнопки, при нажатии вывод замыкается на землю;
  • + и GND – линии питания и земли. Данный энкодер является механическим, питание для него не требуется, линии нужны для цепи с подтягивающими резисторами.

image Существует 2 способа работы с энкодером: с использованием прерываний и путем опроса выводов энкодера в теле программы. Первый способ требует четкий сигнал на выводах энкодера, без помех. Поскольку данный энкодер является механическим, сигнал на его выходах искажен дребезгом контактов и не может быть использован для генерации прерываний (по крайней мере без дополнительных средств для восстановления сигнала, о чем будет рассказано позже). Поэтому сейчас реализуем второй способ и бороться с дребезгом будем программно. Загрузим в Ардуино нижеприведенный код, ссылка для скачивания.

 unsigned long CurrentTime, LastTime; enum eEncoderState {eNone, eLeft, eRight, eButton}; uint8_t EncoderA, EncoderB, EncoderAPrev; int8_t counter; bool ButtonPrev;  eEncoderState GetEncoderState() {      eEncoderState Result = eNone;   CurrentTime = millis();   if (CurrentTime - LastTime >= 5) {          LastTime = CurrentTime;     if (digitalRead(pin_Btn) == LOW ) {       if (ButtonPrev) {         Result = eButton;          ButtonPrev =  ;       }     }     else {       ButtonPrev = 1;       EncoderA = digitalRead(pin_DT);       EncoderB = digitalRead(pin_CLK);       if ((!EncoderA) && (EncoderAPrev)) {          if (EncoderB) Result = eRight;              else          Result = eLeft;             }       EncoderAPrev = EncoderA;      }   }   return Result; }  void setup() {   pinMode(pin_DT,  INPUT);   pinMode(pin_CLK, INPUT);   pinMode(pin_Btn, INPUT_PULLUP);    Serial.begin(9600);   counter =  ; }  void loop() {   switch (GetEncoderState()) {     case eNone: return;     case eLeft: {            counter--;         break;       }     case eRight: {           counter++;         break;       }     case eButton: {          counter =  ;         break;       }   }   Serial.println(counter); }

Для удобства работы код опроса энкодера помещен в отдельную функцию. В таком виде я использую ее в большинстве проектов с энкодером, достаточно скопировать функцию с переменными в новый скетч и в цикле опрашивать состояние энкодера. Подавление дребезга реализовано за счет добавления в функцию условия, которое обеспечивает опрос энкодера не чаще 1 раза в 5мс. Подобный код можно увидеть на различных сайтах, и везде говорится что вывод CLK – это сигнал A, а вывод DT – это B. Почему-то на моих энкодерах это не так и сигналы поменяны местами. Этот момент учтен в функции при чтении значений с контактов. И если вдруг у Вас окажется, что при вращении вала энкодера по часовой стрелке значение переменной counter будет уменьшаться, то замените в функции строки чтения значений с выводов pin_CLK и pin_DT на следующие:

EncoderA = digitalRead(pin_CLK); EncoderB = digitalRead(pin_DT);

Итак, прошиваем код в Ардуино, запускаем монитор порта и вращаем ручку энкодера. Должно получиться что-то вроде этого: image Но такой результат будет при не слишком быстром вращении, все-таки работаем с дешевым энкодером. В любом случае этого вполне достаточно для многих проектов на Ардуино. В следующий раз попробуем избавиться от контактного дребезга и задействовать прерывания для подсчета импульсов энкодера.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий