Инкрементальный энкодер: подключение и обработка его с помощью AVR (ATmega8/16/32/168/328)
В данной статье расскажу об энкодерах и попытаюсь объяснить, как их подключать и обрабатывать правильным способом с помощью микроконтроллера AVR (в примерах я использую ATmega8A-PU, но это должно работать на любом другом микроконтроллере, например, на ATmega32 или совместимом с Arduino ATmega168/328).
Немного теории
Инкрементальные энкодеры имеют два выхода, назовем их A и B. Когда мы вращаем ручку, на выходах A и B мы получаем фазовый сдвиг квадратичного сигнала. Этот сигнал представляет собой ничто иное, как двухбитный код Грея. На изображении ниже я нарисовал это в более читабельном виде.
Как мы видим на изображении, если энкодер поворачивается по часовой стрелке, то код Грея на выходах будет следующим: 2->3->1->0->2 и так далее. Если мы начнем поворачивать против часовой стрелки, мы получим следующую последовательность кода Грея на выходе: 3->2->0->1. Зная эту последовательность, мы можем определить направление вращения ручки. Это один из двух способов чтения направления энкодера.
Второй метод основан на обнаружении фронта спадающего сигнала на одном из выходов и проверки текущего состояния на другом выходе.
У этого метода есть одна очень важная проблема. Мы теряем половину точности вращательного энкодера, потому что мы обнаруживаем только каждый второй фронт сигнала. Это можно исправить, подключив второй выход энкодера к другому прерыванию в процессоре и обнаруживая противоположный фронт сигнала. Таким образом, если мы обнаруживаем спадающий фронт на выходе A, нам нужно обнаружить нарастающий фронт на выходе B.
Сделав это, мы восстановили нашу полную точность, но потеряли два прерывания в нашем микроконтроллере. Обычно нам не нужна такая высокая точность, и первое решение с использованием только одного прерывания на микроконтроллере достаточно хорошо.
Подключение к микроконтроллеру
Если вы используете дорогой оптический энкодер, то этот пункт не очень важен, потому что этот тип энкодеров обеспечивает очень чистый сигнал на выходах, и нет необходимости его фильтровать или подавлять дребезг. К сожалению, когда мы используем дешевые механические энкодеры, ситуация сильно отличается. Внутренние контакты этих маленьких устройств генерируют много помех и шумов, и когда мы превышаем их максимальные параметры, что может быть очень плохо (например, максимальная скорость вращения), мы начинаем получать случайные сигналы на выходах.
Когда я подключаю один из этих энкодеров к микроконтроллеру, я всегда использую аппаратное подавление дребезга, потому что программное подавление дребезга может быть очень сложным и зависит от некоторых параметров, таких как текущая скорость вращения вала и т.д. Мое подавление дребезга — это простой RC-фильтр низкой частоты, как показано на рисунке ниже.
На схеме выше резистор и конденсатор, подключенные параллельно, создают фильтр низких частот с частотой среза, рассчитанной по следующей формуле: fg = 1 / 2*pi*R*C. Таким образом, если мы используем значения из схемы, мы получим:
fg = 1 / 2*3.1415*10000*0.0000001 ~= 159.2Hz
Решение на основе прерываний (пример на основе ATmega8)
Первый пример — это решение на основе прерываний, в котором мы обнаруживаем падающий и/или нарастающий фронт, и в зависимости от текущего состояния на втором пине мы определяем направление вращения вала.
Если мы подключим выходы A и B энкодера к пинам PD2 и PD3 микроконтроллера, нам нужно установить PD2 и PD3 как входы:
/* set PD2 and PD3 as input */ DDRD &=~ (1
Затем мы включаем обработчик прерываний. Для этого нам нужно записать следующие биты в регистры GICR и MCUCR:
GICR |= (1<
И мы также должны включить прерывания:
/* enable interrupts */ sei();
Теперь мы должны написать некоторый код в наших обработчиках прерываний:
//INT0 interrupt ISR(INT0_vect ) < if(!bit_is_clear(PIND, PD3)) < UART_putchar(*PSTR("+")); >else < UART_putchar(*PSTR("-")); >> //INT1 interrupt ISR(INT1_vect ) < if(!bit_is_clear(PIND, PD2)) < UART_putchar(*PSTR("+")); >else < UART_putchar(*PSTR("-")); >>
Код для обработчика INT0 и INT1 очень похож. После возникновения прерывания, мы проверяем состояние второго входа, и это определяет текущее направление вала. В приведенном выше примере, если вал энкодера был повернут в правую сторону, отправляется символ "+", а если нет, то символ "-". Если мы удалим одно прерывание (INT0 или INT1 - это не имеет значения), следующий код все еще будет функциональным, но мы потеряем половину точности энкодера. Весь код выглядит следующим образом:
#define F_CPU 8000000 #define UART_BAUD 9600 /* serial transmission speed */ #define UART_CONST F_CPU/16/UART_BAUD-1 #include #include #include #include #include #include "uart.h" //INT0 interrupt ISR(INT0_vect ) < if(!bit_is_clear(PIND, PD3)) < UART_putchar(*PSTR("+")); >else < UART_putchar(*PSTR("-")); >> //INT1 interrupt ISR(INT1_vect ) < if(!bit_is_clear(PIND, PD2)) < UART_putchar(*PSTR("+")); >else < UART_putchar(*PSTR("-")); >> int main(void) < /* init uart */ UART_init(UART_CONST); /* set PD2 and PD3 as input */ DDRD &=~ (1 return 0; >
Этот пример и все соответствующие файлы (makefile, исходный код и заголовочные файлы) свободно доступны в репозитории на GitHub здесь: https://github.com/leuconoeSH/avr-examples/tree/master/rotary-encoder/interrupt. В репозитории также содержатся процедуры для обработки передачи UART.
Метод кода Грея
Второй метод использует код Грея. В этом случае нам не нужны никакие прерывания вообще.
Давайте начнем с процедуры, которая преобразует два состояния на входах A и B (пин PD2 и пин PD3) в двоичное значение из 2 битов, где значение с PD2 будет первым старшим битом, а значение с PD3 будет нулевым старшим битом.
uint8_t read_gray_code_from_encoder(void )
В коде выше мы объявляем 8-битную беззнаковую переменную с начальным значением 0 (00000000b), затем проверяем, есть ли высокий логический уровень на пине PD2, и если есть, то ставим двоичную 1 на бит, который первый справа. Таким образом, мы получаем это значение: 00000010b. Затем мы делаем то же самое со вторым входным пином PD3, единственное отличие состоит в том, что теперь мы устанавливаем значение на позиции 0. Это дает нам 2-битовый код Грея, соответствующий состояниям на входах PD2 и PD3, в переменной val. Это значение может быть равно 0 (00b), 1 (01b), 2(10b) или 3 (11b).
Затем нам просто нужно записать это значение как начальное, и проверить, соответствует ли новое значение последовательности 2->3->1->0 или последовательности 3->2->0->1, после чего мы узнаем, в каком направлении повернулся вал нашего энкодера.
/* ready start value */ val = read_gray_code_from_encoder(); while(1) < val_tmp = read_gray_code_from_encoder(); if(val != val_tmp) < if( /*(val==2 && val_tmp==3) ||*/ (val==3 && val_tmp==1) || /*(val==1 && val_tmp==0) ||*/ (val==0 && val_tmp==2) ) < UART_putchar(*PSTR("+")); >else if( /*(val==3 && val_tmp==2) ||*/ (val==2 && val_tmp==0) || /*(val==0 && val_tmp==1) ||*/ (val==1 && val_tmp==3) ) < UART_putchar(*PSTR("-")); >val = val_tmp; > _delay_ms(1); >
Используя код выше, последовательности 2->3, 1->0, 3->2 и 0->1 были закомментированы, потому что они соответствуют переходному состоянию энкодера, и если бы мы оставили их раскомментированными, то каждый отдельный "клик" энкодера генерировал бы два импульса.
Если мы не хотим включать процедуры энкодера в основной цикл нашей программы, мы можем использовать внутренний таймер/счётчик, чтобы запускать эту процедуру в прерывании каждый раз, когда счётчик переполняется. Весь код будет выглядеть так:
#define F_CPU 8000000 /* crystal f */ #define UART_BAUD 9600 /* serial transmission speed */ #define UART_CONST F_CPU/16/UART_BAUD-1 #include #include #include #include #include #include "uart.h" uint8_t read_gray_code_from_encoder(void ) < uint8_t val=0; if(!bit_is_clear(PIND, PD2)) val |= (1<<1); if(!bit_is_clear(PIND, PD3)) val |= (1<<0); return val; >int main(void) < uint8_t val=0, val_tmp =0; /* init UART */ UART_init(UART_CONST); /* set PD2 and PD3 as input */ DDRD &=~ (1 else if( /*(val==3 && val_tmp==2) ||*/ (val==2 && val_tmp==0) || /*(val==0 && val_tmp==1) ||*/ (val==1 && val_tmp==3) ) < UART_putchar(*PSTR("-")); >val = val_tmp; > _delay_ms(1); > return 0; >
Весь код (включая makefile, исходный код и заголовочные файлы), а также uart.h и соответствующий uart.c, можно найти в репозитории GitHub здесь: https://github.com/leuconoeSH/avr-examples/tree/master/rotary-encoder/normal.
Заключение
Как вы можете видеть, обработка вращающегося инкрементального энкодера на самом деле очень проста, и большой проблемой является качество самого энкодера и его дребезг. Решением является использование оптического энкодера, но это очень дорогое решение. Например, оптический энкодер может стоить около 100 евро (~140 долларов США), в то время как дешевый механический стоит всего несколько центов. Так что не остается ничего другого, кроме как пожелать вам, мои дорогие читатели, множество успешных экспериментов и проектов с энкодерами!
Принцип работы инкрементального энкодера
Инкрементальные энкодеры, в отличие от абсолютных, выдают информацию о положении относительно положения в предыдущий момент времени. После включения питания вся информация о предыдущих перемещениях пропадает и положение вала становится неопределённым. Как правило в таком случае механизм приходится перемещать в некоторое известное положение для того чтобы информация о положении снова стала актуальной.
Применяемые технологии
Работа современных энкодеров базируется на использовании определенных физических принципов, основными из которых являются магнитный, ёмкостной и оптический. Для определения положения объекта ёмкостной принцип предполагает использование изменений электрического поля, магнитный – изменений магнитного поля, оптический – изменений пучков света.
Оптические
Оптические датчики угла поворота используют изменения световых пучков, происходящие во время кругового движения кодового диска, с которым взаимодействуют пучки света. Работа оптических энкодеров основана на двух схемах: пропускательной и отражательной.
В случае пропускательной схемы световые пучки попадают на фотоприемники после прохождения через узкие отверстия в кодовом диске.
При отражательной схеме на кодовом диске происходит чередование зеркальных и рассеивающих участков. Отражающийся от зеркальных участков свет, попадает в приёмник оптического излучения.
Кодовый диск инкрементного энкодера (слева) и абсолютного энкодера (справа)
Магнитные
Магнитные энкодеры для работы используют изменения магнитного поля, которые происходят во время кругового движения кодового диска. В зависимости от способа измерения изменений, магнитные датчики углов поворота делятся на следующие виды:
- индуктивные – изменения, происходящие с магнитным полем, измеряются по изменениям взаимной индуктивности обмоток, находящихся на неподвижной и вращающейся части энкодера;
- магнитно-резистивные – в таких датчиках в качестве чувствительного элемента используются материалы, которые в магнитном поле изменяют свое сопротивление;
- на датчиках Холла – изменения магнитного поля оцениваются с помощью датчиков на эффекте Холла.
Ёмкостные
Принцип действия базируется на оценке изменений электрического поля, которые происходят при круговом движении кодового диска специальной конфигурации. Изменения емкости конденсатора, образованные вращающимся кодовым диском и обкладками на неподвижной части энкодера, является основанием для оценки электрического поля.
Выходной сигнал
Выходной сигнал инкрементального энкодера чаще всего представляет собой 2 импульсных сигнала со скважностью 50% сдвинутых относительно друг друга на 90°. Сигналы с этих двух каналов (квадратура выхода (обычно A и B)) позволяют определить направление вращения энкодера и величину углового перемещения. Направление вращения определяется опережением или отставанием импульсов одного из каналов относительно второго канала. Величина перемещения определяется по количеству импульсов на этих двух каналах. Для обработки выходного сигнала применяются специализированные счётчики импульсов, либо отдельно стоящие либо интегрированные в микропроцессоры , микроконтроллеры или ПЛК. В зависимости от способа обработки сигнала с энкодера можно получать информацию о положении или о скорости. Такая гибкость позволяет широко применять энкодеры в современных системах автоматического управления в качестве датчиков обратной связи по обоим этим величинам.
В ряде случаев энкодер оснащается третьим каналом – индексным (обозначают I или Z). Импульс на нём появляется один раз за полный оборот энкодера. Этот импульс позволяет контролировать показания с каналов A и B, а также облегчает привязку показаний инкрементального энкодера к реальному положению механизма.
Основные параметры
Разрешение
Разрешение инкрементального энкодера определяет какое минимальное перемещение вала датчика приводит к изменению сигнала на выходе датчика. У всех инкрементальных энкодеров разрешение приводится в полных циклах на один оборот. Под одним полным циклом подразумевается полный цикл измерения сигналов на двух основных каналах энкодера (A и B). При обработке сигнала инкрементального энкодера часто пользуются подсчётом импульсов «с учетверением». В этом случае подсчитывается каждый фронт (передний и задний) по обоим основным каналам энкодера A и B. Легко видеть что за время полного цикла таких фронтов будет 4 – 2 по каналу A и 2 по каналу B. Таким образом при такой обработке количество отсчётов на один оборот энкодера будет в 4 раза больше чем разрешение указанное в полных циклах.
Интерфейс
Все инкрементальные энкодеры имеют интерфейс в виде двух импульсных сигналов, а некоторые имеют и дополнительный индексный канал. Отличия могут заключаться в напряжении импульсных сигналов и в наличии дифференциального выхода (драйвера линии).
Импульсный сигнал формируемый на выходе инкрементального энкодера принимает 2 значения – максимальное и минимальное. Минимальное значение в большинстве случаев соответствует нулю. Максимальное значение может быть или фиксированным (напр. 3,3 В, 5 В) так и зависеть от напряжения питания поданного на энкодер (например на 1В или на 2 В меньше напряжения питания).
По способу формирования выходного сигнала можно выделить энкодеры:
- с несимметричным выходом
- с дифференциальным выходом (с драйвером линии).
В случае несимметричного выхода сигналы всех трёх импульсных каналов формируются относительно общей точки источника питания (0 источника питания). Такой сигнал достаточно прост при использовании и экономичен с точки зрения числа подключаемых проводов, однако уязвим для электромагнитных помех в случае передачи по проводам значительной длины. Сигнал энкодеров с дифференциальным выходом лишён этого недостатка. Для каждого канала при помощи специального формирователя вместо одного сигнала формируется пара сигналов – нормальный и логически инверсный, а соответствующий приёмник принимает сигнал по разности этой пары сигналов. Это позволяет устойчиво передавать сигнал по длинным проводам (десятки и сотни метров) даже при наличии помех.
Скорость вращения
Важным параметром о котором не следует забывать является максимальная скорость вращения при которой происходит корректная выдача выходного сигнала. Именно от него зависит можно ли будет установить инкрементальный энкодер на валу скоростных бесколлекторных двигателей или же его можно будет использовать только на выходе мотор-редукторов и сравнительно медленных моментных двигателей.
Когда применяют инкрементальные энкодеры
Вопрос о том какие энкодеры предпочтительней применить в той или иной системе неразрывно связан с требованиями, предъявляемыми к ней. Если сразу после подачи питания на систему датчик должен выдавать правильное положение, то тогда лучше применить абсолютный энкодер. А если после старта допускается период подготовки системы к работе когда можно провести вывод механизма в нулевое положение, то тогда можно применять инкрементальный энкодер.
Инкрементные энкодеры имеют более простую конструкцию, поэтому среди них можно найти модели очень компактных размеров, недостижимых для абсолютных датчиков. Этим определяется применение инкрементных энкодеров в малогабаритных системах.
Если энкодер используется только для определения скорости вращения механизма, то для выполнения этой функции достаточно инкрементного энкодера.
Области применения
Инкрементальные энкодеры являются одним из самых распространённых датчиков в современных сложных технических системах. Вот лишь некоторые примеры:
- Медицинская техника
- Автоматизированное тестовое и диагностическое оборудование
- Самодвижущиеся роботоподобные устройства
- Системы контроля доступа
Принцип работы инкрементального энкодера
Описание работы инкрементального энкодера, квадратура выходных сигналов, особенности механического сопряжения, особенности оптической и магнитной технологии.
Что такое инкрементальный энкодер?
Импульсный (пошаговый) энкодер относится к типу энкодеров, которые предназначены для указания направления движения и/или углового перемещения внешнего механизма. Пошаговый (также именуемый инкрементный или инкрементальный) энкодер формирует импульсы, количество которых соответствует повороту вала на определенный угол. Этот тип энкодеров, в отличие от абсолютных, не формирует код положения вала, когда вал находится в покое.
Пошаговый энкодер связан со счетным устройством, это необходимо для подсчета импульсов и преобразования их в меру перемещения вала.
Конструкция инкрементального энкодера
Инкрементальный энкодер (он же пошаговый энкодер) состоит из следующих компонентов: источника света, диска с метками, фототранзисторной сборки и схемы обработки сигнала. Диск пошагового энкодера подразделен на точно позиционированные отметки. Количество отметок определяет количество импульсов за один оборот. К примеру, если диск поделен на 1000 меток, тогда за 250 импульсов вал должен повернуться на 90 градусов.
Технология (оптическая и магнитная)
В настоящее время широко распространены две технологии исполнения — оптическая и магнитная.
1. В оптическом энкодере первичным датчиком сигнала является оптический диск (как на картинке выше). Количество черных/прозрачных секторов на диске определяет разрешение оптического инкрементального энкодера, также именуемое как количество меток в обороте.
2. В настоящее время становятся очень популярными магнитные энкодеры. В магнитном энкодере сигнал положения вала формируется датчиком Холла. Данная технология открывает новые возможности, например, программируемое количество импульсов в обороте, причем некоторые производители энкодеров предоставляют такую возможность (программирования) самому Заказчику, что значительно облегчает подбор энкодера для своей конкретной задачи. Так, например, стало простой задачей заменить в оборудовании вышедший из строя энкодер с «экзотическим» числом импульсов в обороте, например, 1234 вместо более привычных 1024. В оптическом энкодере такое разрешение, как упоминалось выше, возможно только при «физическом» наличии нанесенных на диск меток.
Квадратура выхода (выходы А и В)
Для квадратуры выхода энкодера используются два выходных канала, для того чтобы определить — вращается вал по часовой стрелке или против часовой стрелки, основанное на сдвиге фазы 90°±0° , допуск ±45° — приемлемый для спецификации сдвига фазы. Энкодер с единственным выходом (A) более известен как тахометр.
Максимальная частота ответа
Максимальная частота ответа является частотой, при которой вращающийся энкодер может дать электрический ответ. Такая частота имеет отношение к количеству выходных импульсов, на которые энкодер реагирует в секунду. Следовательно, энкодер пошагового типа должен удовлетворить следующее отношение:
(rpm/60) x (разрешение) ≤ максимальной частоты ответа.
Указатель нулевой отметки / импульс полного оборота (выход N)
В энкодере, имеющем этот выход, импульс на этом выходе появляется в каждом обороте вала. Функция показателя нуля может использоваться для сброса внешне связанного счетчика или для регистрации начальной (нулевой) позиции.
Функция оповещения Light reserve warning
Опциональная функция оповещения о снижении интенсивности (старении) светодиода подсветки считывающей матрицы энкодера.
В таких энкодерах имеется специальный выход (ножка разъема) именуемая «Light reserve warning» (в англ. документации) или «Frühwarnausgang» (в нем. документации). При снижении яркости свечения до критического уровня (когда возникает вероятность сбоя в работе энкодера) на этом выходе появляется предупреждающий положительный потенциал (например, +5V). Это позволяет своевременно принять меры и подумать о замене энкодера. Однако эта опция очень редко используется клиентами. К тому же параметры долговечности / стабильности светоизлучения светодиодов последние годы значительно улучшились в связи с чем данная опция вообще потеряла актуальность и практически больше не предлагается производителями энкодеров.
Разрешение
— это количество выходных импульсов за вращение вала.
Соединительный вал
Для механического соединения вала датчика с внешним механизмом следует использовать специальный гибкий соединитель (эластичную муфту), который предназначен для компенсации возможного биения валов, как в радиальном, так и в осевом направлении. Это позволяет резко снизить вероятность преждевременного износа подшипников вала датчика. Уже незначительный, возникший в осевом направлении вала, люфт может привести к полному электрическому отказу энкодера. Это связано с тем, что для достижения высокого разрешения, оптический диск и считывающая матрица располагаются в непосредственной близости друг от друга и минимальное осевое биение вала может привести к их механическому контакту, что в последствии приведет к разрушению нанесенных на диск меток.
Сопутствующие товары и статьи
Кодировка наименования инкрементального энкодера Wachendorff
Принцип формирования заказного кода в зависимости от требований к уровню и формату сигналов на выходе и др. параметров заказываемого энкодера Wachendorff.
Инкрементальные энкодеры с полым валом
Инкрементальные энкодеры с полым валом, отличающиеся высокой надежностью, высоким классом защиты, широким диапазоном рабочих температур, простотой монтажа, а также высоким, до 25000 импульсов на оборот, разрешением.
Аксессуары для энкодеров вращения и линейного перемещения
Соединительные эластичные муфты, переходники, фланцы, мерные колеса, специальные монтажные компоненты и пр. аксессуары для абсолютных и инкрементных энкодеров..
Инкрементальные энкодеры с цельным валом
Инкрементальные энкодеры с цельным валом, отличающиеся высокой устойчивостью к механическими нагрузками и воздействиям окружающей среды, разнообразием исполнений кабелей и разъемов для их подключения, а также высоким, до 25000 импульсов на один оборот, разрешением.
Инкрементальные магнитные энкодеры IXARC
Инкрементальные магнитные энкодеры IXARC с любым количеством импульсов в диапазоне разрешения до 16384 имп./оборот.
Инкрементальный энкодер: что это такое, принцип работы, виды, для чего используется
Энкодер можно отнести к достаточно новым техническим устройствам, которые были бы невозможны без появления робототехнической области науки. Данная разновидность устройств необходима в целях изменения и контроля углов поворотов валов на электродвигателях. Они также используются с целью изменения движения в тех или иных элементах роботов.
Разновидности
Различаются следующие виды энкодеров:
- абсолютного типа;
- инкрементального типа.
Абсолютная модель выдает уникальные цифровые коды относительно отдельно взятого расположения вала, потому становится возможным определять углы поворота даже после того, как было отключено электропитание.
Энкодеры инкрементального вида выдают импульсный цифровой код для каждого отдельно взятого положения вала электромотора. Такие устройства позволяют определять, с какой скоростью вращается вал во время отключения электропитания в том случае, когда нет необходимости сохранять информацию об абсолютном угловом положении.
Иначе говоря, в то время, когда вал не движется, импульс не поступает. Следовательно, когда он снова приходит в движение, датчики будут вести отсчеты его угловых параметров с исходной позиции.
Инкрементальный энкодер
Импульсные (они же пошаговые) энкодеры относят к той разновидности энкодирующих устройств, что предназначены с целью указания направлений углового перемещения всевозможных внешних механизмов. Пошаговые энкодеры формируют импульсы, число которых соответствует числу поворота вала на определенные углы. Они связаны со счетными приборами – это требуется для того, чтобы можно было считать импульсы и преобразовывать их в измерения перемещения вала.
Конструктивные особенности
Конструктивной особенностью данной разновидности можно считать наличие следующих элементов:
- источник света;
- специальный диск с нанесенными на нем отметками;
- фототранзисторная сборка;
- схемы для обрабатывания сигналов.
Метки, нанесенные на диск, распределяются определенным образом – их число будет определяться числом импульсов, осуществленных в рамках одного оборота. К примеру, если диск разделяется на 1000 меток, то в продолжение 250 импульсов вал будет повернут под прямым углом.
Применяемые технологии – магнитная и оптическая
Сегодня энкодеры работают, как правило, на основании двух технологий – оптической и магнитной.
Так, в приспособлениях оптического типа в качестве первичных датчиков сигналов выступают оптические диски, описанные выше. Число зачерненных и прозрачных отметок, расположенных на диске, будет определять и степень разрешения.
Но в последнее время популярность начинают приобретать энкодеры магнитного типа. В них сигналы положения вала двигателя формируются специальным датчиком. При этом открываются новые технологические возможности, к примеру, программируемое число импульсов за один оборот.
Квадратура выхода
В качестве так называемой квадратуры выхода в данном виде энкодирующих устройств применяется пара выходных каналов. Они позволяют определять, в каком именно направлении происходит вращение вала.
При этом энкодеры, оборудованные всего одним выходом (на схеме обозначается литерой А), носят название тахометров.
Максимальная частота ответа
В качестве максимальной частоты ответа выступают частоты, при которых работающий энкодер дает электрические ответы. Максимальные частоты определяют число импульсов на выходе, на которые он отзывается в течение одной секунды.
Таким образом, пошаговые энкодеры должны удовлетворять следующему отношению:
(rpm / 60)x(разрешение) меньше или равно максимальной частоте ответа.
Разрешение
Под разрешением подразумевают число выходных импульсов при каждом вращении вала.
Соединительный вал
Чтобы вал датчика был соединен механическим способом, нужно применять специальные гибкие соединители – эластичные муфты. Они предназначены для того, чтобы компенсировать возможное биение вала в любых направлениях.
Благодаря этому, снижается степень преждевременного выхода из строя валового механизма датчика. Даже минимальные люфты могут вывести энкодер из строя.
Виды пошаговых энкодеров и их особенности
Кроме предложенной выше классификации, инкрементальные энкодирующие устройства можно поделить согласно типу информации для считывания.
Одиночные нужны для простого подсчета числа импульсов.
- максимальная простота в конструкции и использовании;
- во время запуска непонятно, в каком именно положении находится;
- велика вероятность ошибок во время подсчета импульсов из-за ложного срабатывания;
- нельзя определить направленность движения.
Квадратурные, они же двойные, энкодеры позволяют считывать не только число поступаемых импульсов, но и направление движения.
- простота конструкции;
- практически отсутствуют ошибки во время счета импульсов;
- можно определять направленность движения.
- во время запуска непонятно, в каком именно положении находится энкодер.
Энкодирующие устройства, построенные на двоичном коде, позволяют определять точное положение устройства в тот или иной момент.
- инициализация происходит без ошибок;
- нет необходимости в считывании импульсов;
- можно определять направленность движения.
- из-за наличия нескольких датчиков аппарат несколько сложнее;
- возникновение проблем с граничным положением в случае использования более одного бита;
- разрешающая способность несколько ограничена.
Энкодирующие устройства, основанные на так называемом коде Грэя, дают возможность определять положение в данный момент.
- безошибочная инициализация и подсчет импульсов;
- можно определять, в каком направлении происходит вращение;
- можно использовать более одного бита без риска возникновения ошибок на граничном положении.
- относительно сложны в использовании;
- присутствует определенное ограничение по разрешению.
Некоторые особенности подключения
При подключении и отладке энкодеров необходимо строго придерживаться рекомендаций, данных производителем.
Для начала нужно собрать исходную схему, согласно инструкции от производителя, и подключиться к выводам А и В с помощью осциллографа. Далее необходимо подкрутить подключаемый энкодер сначала по часовой стрелке, а затем – в противоположном направлении. При изменении направления вращения будет изменяться и последовательность замыкания контактных пластин.
Поскольку в энкодерах работают контакты механического типа, то всегда есть риск возникновения так называемого дребезга. Это приводит к тому, что контакт может замыкаться и размыкаться самопроизвольно – из-за естественной упругости материала.
Чтобы избежать дребезга, можно пойти двумя путями. Например, добавить еще несколько конденсаторных или резисторных элементов. Дребезги в этом случае можно довольно легко погасить. При этом осциллограф покажет крутые фронты и отсутствие дребезга.
А вот второй метод является программным. Это потребует от исполнителя знаний программирования. Зато можно будет отслеживать состояние энкодирующего устройства при помощи внешнего прерывания. В этом случае необходимо организовать задержки в течение 2-3 десятков миллисекунд после каждого срабатывания прерывания. В это время энкодер перестанет фиксировать изменения состояний вывода, следовательно, перестанет быть чувствительным к дребезгам.
Используется несколько методов обработки данных, поступающих с прибора. Например, одна из его ножек подключается к выходу для внешнего прерывания и настраивается на прерывание по спадающим фронтам. При этом проверяется положение второй ножки. В том случае, если на ней фиксируется нулевое состояние, движение вала осуществляется в одном направлении. При этом светодиоды загораются или гаснут в зависимости от направления вращения.
Согласно второму методу, нужно сравнить настоящее положение с предыдущим. Например, предыдущее состояние энкодера равнялось трем. Если последующее положение равняется одному, то вращение осуществляется в одном направлении. Если же оно равно двум, соответственно, в другом. Таким образом, можно будет осуществлять фиксацию перехода из одного положения устройства в другое, и устанавливать направление движения вращения.
Крепление устройства с вращающимися объектами осуществляется через нормальные или полые валы. При этом полый вал может быть выполнен как в сквозном, так и в несквозном варианте. Здесь все зависит от конкретных конструктивных особенностей устройства и преследуемых целей.
Валы энкодера и вращающихся объектов соединяются также с помощью гибких или жестких соединительных муфт. Как альтернативный вариант крепления, нередко используют монтаж прямо на вал самого объекта. Это возможно, если аппарат оснащен полым валом. Чтобы не допустить возможного возникновения несоосности и биений, можно зафиксировать его через штифты. Если же речь идет о неполом вале, то биение может быть скомпенсировано через гибкую деформацию втулки.
Чем привлекательны данные виды энкодеров
Энкодирующие устройства неспроста получили столь обширное распространение при конструировании большого спектра устройств. Они довольно дешевы и просты в монтаже.
Чтобы выбрать верный вариант для успешного внедрения в те или иные управленческие схемы, потребуется определиться:
- Насколько точно требуется проводить измерения. Об этом будет говорить число обрабатываемых импульсов за каждый оборот энкодирующего вала.
- Толщина вала, а также его модельная разновидность. Это влечет за собой необходимость в правильном подборе дополнительного оборудования, такого, как муфты, фланцы и т.д.
- Определиться с необходимой длиной кабеля, его поперечным сечением, а также с типом разъемов на выходе.
- Потребуется принять во внимание величину рабочего напряжения и прочие электрические характеристики.
- Осуществление связи энкодирующего оборудования с остальными элементами системы. Нужно будет уметь его программировать, обеспечивать параметры цикличности осуществления передачи результата замеров с частотностью опроса на входе используемых контроллеров, либо предусмотреть работу в стандартном интерфейсе.
Где применяются инкрементальные энкодеры
Устройства предлагаются в разных моделях и вариантах исполнения. Следует внимательно подходить к выбору энкодеров. К примеру, если он работает на благо пищепрома, то следует использовать только те разновидности, которые соответствуют нормам гигиены. Как правило, они выполнены из нержавеющих материалов.
В области печатного и текстильного производства датчики обычно дополняют аппаратами для обрабатывания данных.
Инкрементные энкодеры устанавливаются на транспортерах, предназначенных для перемещения древесных заготовок.
Если требуется использовать энкодер при металлообработке, то прибор следует оснастить специализированной защитой от вибрационных воздействий, а также от повышенных температур и попадания внутрь механизма частичек влаги и пыли. На электрические моторы устанавливаются особые виды энкодеров, способных замерять скорости оборотов шпинделя, положение оси и ее продвижение.
Если речь идет о системе автоматизации на производствах, то используются мини-энкодеры диаметром не более 2,5 см и имеющие различные диапазоны напряжений на выходах.
Лифтовые устройства работают на приспособлениях диаметром 4,4 см. Часто их монтируют прямо на лебедках для того, чтобы снизить воздействие на них механического характера.
В медицинском оборудовании датчики-энкодеры применяются в ЭМРТ. Они предназначены для исключения воздействия магнитного поля. Корпус в этом случае изготавливают из непроводящего материала.
В телекоммуникационной сфере энкодеры используются для определения расположения и направленности антенны. Иногда нужно применять датчики для работы в жестких условиях.
Находят свое применение энкодирующие аппараты и в области альтернативной энергетики. К примеру, они устанавливаются на программируемых датчиках, используемых в солнечной ферме. Датчики изготавливаются из специализированных материалов, которые надежно защищены от попадания влаги и ультрафиолета.
Крайне распространены сегодня электромеханические энкодеры, преобразующие вращательные движения в аналоговые или цифровые форматы распространения информации. Они довольно схожи с потенциометрами, однако могут постоянно осуществлять вращение как в направлении часовой стрелки, так и в обратную сторону.
Поворотные энкодеры различаются по нескольким типам. Как уже отмечалось, это абсолютные и инкрементальные – они же относительные. Первому типу выдают значения, которые пропорциональны настоящему углу расположения вала. Второй тип выдает как шаг передвижения валов, так и их направленность. Благодаря этому, именно энкодирующее оборудование поворотного типа получает все большее распространение в различных сферах бытовой электротехники. Главным образом, это конструирование всевозможных управляющих ручек. Часто такие устройства могут заменить потенциометр или кнопки для осуществления навигации.
Если необходимо выполнить быструю навигацию и настройку, либо оперативное введение данных и выбора пунктов меню, то энкодеры также придут на помощь.
Определенные модели имеют специальные кнопки, создающие дополнительные входы для процессоров, которые могут применяться как другие пользовательские команды в организации управленческого интерфейса.
Вы всегда можете приобрести энкодеры Omron и Sick по привлекательным ценам в нашем интернет-магазине.