Энкодер схема. Энкодер: подключение к Arduino и использование библиотеки GyverEncoder

Что такое энкодер и как он работает. Как правильно подключить энкодер к Arduino. Как использовать библиотеку GyverEncoder для работы с энкодером. Какие основные функции предоставляет библиотека GyverEncoder. Как обрабатывать повороты и нажатия энкодера в скетче Arduino.

Содержание

Что такое энкодер и принцип его работы

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

Основные элементы инкрементального энкодера:

  • Диск с прорезями, закрепленный на валу
  • Светодиод
  • Два фотодатчика

При вращении вала диск с прорезями прерывает световой поток между светодиодом и фотодатчиками. Это генерирует два квадратных сигнала, сдвинутых по фазе на 90°. Анализируя последовательность этих сигналов, можно определить направление и угол поворота вала.

Подключение энкодера к Arduino

Для подключения инкрементального энкодера к Arduino потребуется:


  • Энкодер
  • Плата Arduino
  • Провода для соединения
  • Резисторы 10 кОм — 2 шт (подтягивающие)

Схема подключения энкодера к Arduino:

  1. Подключите общий контакт (GND) энкодера к GND Arduino
  2. Подключите питание (+) энкодера к 5V Arduino
  3. Подключите выход A энкодера к цифровому пину Arduino (например, D2)
  4. Подключите выход B энкодера к другому цифровому пину Arduino (например, D3)
  5. Подключите кнопку энкодера (если есть) к цифровому пину Arduino (например, D4)

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

Использование библиотеки GyverEncoder

Библиотека GyverEncoder значительно упрощает работу с энкодерами в проектах Arduino. Она предоставляет удобные функции для обработки поворотов и нажатий энкодера.

Для установки библиотеки:

  1. Откройте Arduino IDE
  2. Выберите «Скетч» -> «Подключить библиотеку» -> «Управлять библиотеками»
  3. В поиске введите «GyverEncoder»
  4. Найдите библиотеку GyverEncoder и нажмите «Установить»

Основные функции библиотеки GyverEncoder

Библиотека GyverEncoder предоставляет следующие основные функции для работы с энкодером:


  • tick() — опрос состояния энкодера, вызывается в цикле loop()
  • isRight() — возвращает true при повороте по часовой стрелке
  • isLeft() — возвращает true при повороте против часовой стрелки
  • isRightH() — возвращает true при удержании поворота по часовой стрелке
  • isLeftH() — возвращает true при удержании поворота против часовой стрелки
  • isPress()
    — возвращает true при нажатии на кнопку энкодера
  • isRelease() — возвращает true при отпускании кнопки энкодера
  • isHolded() — возвращает true при удержании кнопки энкодера

Пример использования GyverEncoder в скетче Arduino

Рассмотрим простой пример использования библиотеки GyverEncoder для управления яркостью светодиода:

«`cpp #include #define CLK 2 #define DT 3 #define SW 4 #define LED_PIN 9 Encoder enc(CLK, DT, SW); int brightness = 0; void setup() { Serial.begin(9600); pinMode(LED_PIN, OUTPUT); enc.setType(TYPE2); } void loop() { enc.tick(); if (enc.isRight()) { brightness = min(255, brightness + 5); updateLED(); } if (enc.isLeft()) { brightness = max(0, brightness — 5); updateLED(); } if (enc.isPress()) { brightness = 0; updateLED(); } } void updateLED() { analogWrite(LED_PIN, brightness); Serial.print(«Яркость: «); Serial.println(brightness); } «`

В этом примере:


  • Энкодер подключен к пинам 2 (CLK), 3 (DT) и 4 (SW)
  • Светодиод подключен к пину 9
  • При повороте энкодера вправо яркость увеличивается
  • При повороте влево — уменьшается
  • При нажатии на кнопку энкодера яркость сбрасывается в 0

Обработка поворотов энкодера

Для обработки поворотов энкодера используются функции isRight() и isLeft(). Они возвращают true при повороте энкодера по часовой стрелке и против часовой стрелки соответственно.

Как правильно обрабатывать повороты энкодера?

  1. Вызывайте метод tick() в цикле loop() для обновления состояния энкодера
  2. Используйте условные операторы с isRight() и isLeft() для определения направления вращения
  3. Выполняйте нужные действия в зависимости от направления вращения

Обработка нажатий кнопки энкодера

Многие энкодеры имеют встроенную кнопку. Библиотека GyverEncoder предоставляет функции для обработки различных событий кнопки:

  • isPress() — однократное нажатие
  • isRelease() — отпускание кнопки
  • isHolded() — удержание кнопки

Как обрабатывать нажатия кнопки энкодера?


  1. Подключите кнопку энкодера к цифровому пину Arduino
  2. При инициализации объекта Encoder укажите пин кнопки
  3. Используйте условные операторы с функциями обработки кнопки в цикле loop()

Расширенные возможности библиотеки GyverEncoder

Библиотека GyverEncoder предоставляет ряд дополнительных возможностей для более гибкой работы с энкодером:

  • setType(type) — установка типа энкодера (TYPE1 или TYPE2)
  • setDirection(direction)
    — инверсия направления вращения
  • setFastTimeout(timeout) — установка таймаута для ускоренного режима
  • isFast() — возвращает true при быстром вращении

Как использовать расширенные возможности библиотеки?

  1. Определите тип вашего энкодера (с помощью осциллографа или экспериментально)
  2. Установите правильный тип с помощью setType() в setup()
  3. При необходимости инвертируйте направление вращения с помощью setDirection()
  4. Используйте isFast() для определения быстрого вращения и реализации нелинейного изменения значений

Отладка и устранение проблем с энкодером

При работе с энкодерами могут возникнуть различные проблемы. Вот некоторые советы по их устранению:


  • Используйте подтягивающие резисторы для устранения дребезга контактов
  • Проверьте правильность подключения выводов энкодера
  • Убедитесь, что вы используете правильный тип энкодера в настройках библиотеки
  • При нестабильной работе попробуйте изменить значение ENCODER_TICK_RATE в библиотеке

Как отлаживать работу с энкодером?

  1. Используйте Serial.print() для вывода значений и состояний энкодера
  2. Проверьте работу энкодера с помощью простого скетча, выводящего направление вращения
  3. При необходимости используйте осциллограф для проверки сигналов энкодера

Применение энкодеров в проектах Arduino

Энкодеры широко применяются в различных проектах Arduino. Вот некоторые популярные варианты использования:

  • Регулировка громкости в аудиопроектах
  • Управление меню на LCD-дисплее
  • Настройка параметров в измерительных приборах
  • Управление положением сервоприводов
  • Ввод числовых значений без использования клавиатуры

Как эффективно использовать энкодер в проекте Arduino?

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

Альтернативы механическим энкодерам

Хотя механические энкодеры широко распространены, существуют и альтернативные решения для ввода вращательных движений:


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

Как выбрать оптимальное устройство ввода для вашего проекта?

  1. Определите требования к точности и скорости ввода
  2. Учтите условия эксплуатации устройства (влажность, загрязнения, вибрации)
  3. Оцените стоимость различных решений и их совместимость с вашим проектом
  4. Рассмотрите эргономику использования различных устройств ввода

PRI (цельный вал): энкодеры оптические инкрементальные OPKON. КИП-Сервис: промышленная автоматика

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

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

Серия энкодеров PRI — это оптические энкодеры, наиболее универсальные в линейке инкрементальных энкодеров OPKON. Имеют разрешающую способность до 5000 импульсов на оборот, производятся в корпусах диаметром 40 мм или 50 мм.

Совместно с оптическими энкодерами серии PRI широко используются аксессуары OPKON, а также энкодеры других серий:

  • Муфты соединительные
    Предназначены для соединения вала энкодера с механизмом, позволяют компенсировать несоосность.
  • Энкодеры OPKON PRI 50H с полым валом
    Предназначены для установки на вал механизма, занимают минимум пространства.
  • Серия магнитных энкодеров MRI
    Для оборудования, которое подвержено воздействию вибраций и механическим нагрузкам.
  • Серия OPKON MRV с аналоговым выходом

    Для задач, в которых нужно непрерывно контролировать положение объекта.
  • Разрешение датчиков: 100, 200, 360, 500, 600, 720, 1000, 1024, 1800, 2000, 2048, 2500, 4000, 4096, 5000 имп/об
  • Типы выходов: Push-Pull, LineDriver (TTL, HTL)
  • Рабочая температура: -20…+80 °C
  • Диаметр корпуса: 40 мм, 50 мм, 58 мм
  • Аксессуары для монтажа входят в комплект поставки (для ∅50 мм)
  • Кабельный вывод с цветовой маркировкой проводов

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

Внешний вид инкрементального энкодера OPKON PRI

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

Таким образом, принцип действия энкодеров OPKON PRI основан на фотоэлектрическом эффекте: при попадании светового потока на фотоприемник, формируется сигнал, соответствующий логической единице, а при его отсутствии — логическому нулю.

Прерывание светового потока осуществляется вращающимся кодирующим диском. Количество прерываний строго постоянно и соответствует количеству меток на кодирующем диске. В характеристиках энкодеров эта величина обозначается как разрешение — количество импульсов, поступающих за один оборот (имп/об, PPR, pulse per revolution). С помощью него можно определить дискретность энкодера — перемещение, соответствующее одному импульсу энкодера.

Например, если использовать энкодеры с разрешением 100, 360 и 5000 имп/об, то один импульс будет соответствовать перемещению на 3.6°, 1°, 0.072° соответственно.

Зная разрешение энкодера и считая количество импульсов (контроллером или счетчиком) можно определить:

  1. Угол поворота (φ).
    Подсчет количества импульсов (n), поступивших от энкодера, позволяет определить угол поворота (φ), совершенный валом.

    φ=n⋅360°Разрешение(имп/об)φ = {n cdot 360°} over {Разрешение (имп/об)}

    Пример: если энкодер выдал 1250 импульсов, а сам он имеет разрешение 5000 имп/об, то это означает, что вал совершил поворот на 90° (1250 * 360 / 5000 = 90).
  2. Угловую скорость (ω).
    Для определения скорости вращения (об/мин) необходимо подсчитывать количество импульсов, поступающих за единицу времени (например, за 1 секунду).

    ω=n⋅60секРазрешение(имп/об)ω = {n cdot 60 сек} over {Разрешение (имп/об)}

    Пример: если за 1 секунду поступило 1250 импульсов и энкодер также имеет разрешение 5000 имп/об, то скорость вращения вала — 15 оборотов в минуту (1250 * 60 / 5000 = 15).

Представленные примеры справедливы для механизмов одностороннего действия. Измерение вращения в двух направлениях невозможно, так как один импульсный сигнал не может дать информацию о том, в какой момент произошла смена направления. Для решения этой проблемы в энкодерах используется два фотоприемника со специальным фильтром (маской), формирующих два сигнала (сигнал А и сигнал В). Данная конструкция позволяет энкодеру выдавать два импульсных сигнала, сдвинутых друг относительно друга на ¼ периода (90°).

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

Последовательность импульсов при прямом и обратном вращении

Помимо сигналов А и В в энкодерах дополнительно используется сигнал Z. Он выдает единичный импульс, при прохождении кодирующим диском полного оборота (360°). Сигнал Z позволяет подсчитывать количество оборотов. Таким образом, каждый энкодер оборудован тремя каналами (ABZ) для передачи сигнала.

Разрешение энкодера

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

Например: для ПЛК с максимальной частотой на входе 10 кГц, нужно выбрать энкодер, обеспечивающий дискретность в 1° при максимальной скорости вращения 3000 об/мин.

  • Если выбрать энкодер в соответствии с требуемой точностью, то необходима модель 360 имп/об. Но максимальная скорость не должна превышать 1667 об/мин.
  • Если выбирать энкодер, соответствующий по скорости вращения, то это модель 200 имп/об. Но при таком разрешении обеспечивается точность 1.8°.

200 имп/об — это номинальное разрешение энкодера, но при использовании специальных алгоритмов счета его можно увеличить в 2 и в 4 раза. Для этого при счете учитываются сигнал не только канала А, но и канала В. При счете по двум каналам, для каждого импульса можно выделить четыре промежуточных состояния:

  1. Сигнал А = лог. «1», Сигнал В = лог. «0»
  2. Сигнал А = лог. «1», Сигнал В = лог. «1»
  3. Сигнал А = лог. «0», Сигнал В = лог. «1»
  4. Сигнал А = лог. «0», Сигнал В = лог. «0»

Существует три основных режима счета.

  1. X1
    Счет импульсов производится только по переднему фронту одного сигнала. Количество импульсов, выдаваемых на один оборот соответствует номинальному разрешению энкодера.
    Пример: с помощью энкодеров с разрешением 100, 200 и 1000 имп/об возможно отслеживание перемещения с точностью 3.6°, 1.8°, 0.36° соответственно.

  1. X2
    При счете импульсов учитываются и передний и задний фронты. Таким образом стандартный шаг разбивается пополам, а разрешение увеличивается вдвое.
    Пример: с помощью энкодеров с разрешением 100, 200 и 1000 имп/об возможно отслеживание перемещения с точностью 1.8°, 0.9°, 0.18° соответственно.

  1. X4
    Для достижения максимальной разрешающей способности счет осуществляется по переднему и заднему фронтам обоих сигналов. Используя такой метод счета разрешение увеличивается в 4 раза.
    Пример: с помощью энкодеров с разрешением 100, 200 и 1000 имп/об возможно отслеживание перемещения с точностью 0.9°, 0.45°, 0.09° соответственно.

Типы выходных сигналов

Для передачи сигнала энкодеры могут быть оборудованы тремя типами выходов:

  1. Транзисторный выход Push-Pull
    Для передачи сигнала используется три канала A, B и Z. Каждый из них может быть включен по схеме NPN и PNP.
    Уровень сигнала (лог. «1» или «0» ) определяется относительно питающего напряжения. На рисунке справа представлена условная схема подключения.

  1. Дифференциальный выход LineDriver TTL
    Для передачи сигнала используется три пары сигналов AA, BB, ZZ.
    Каждая пара передает дифференциальный сигнал. Уровень сигнала — 5 В. Дифференциальная передача необходима при наличии внешних источников ЭМ-помех или при большой длине сигнального кабеля.

  1. Дифференциальный выход LineDriver HTL
    Данный тип выхода аналогичен модификации LineDriver TTL. Но у модификации HTL уровень сигнала не фиксированный (5 В), а может изменяться в диапазоне от 5 до 24 В. Уровень сигнала соответствует питающему напряжению (см. рисунок справа).
    Таким образом, энкодер модификации HTL может выдавать сигнал, соответствующий TTL-логике, для этого достаточно лишь использовать блок питания 5 В. К тому же модификация LineDriver HTL может использоваться, и как обычный энкодер с Push-Pull-выходом.
    Благодаря этому модификация LineDriver HTL (HLD) является полностью взаимозаменяемой с LineDriver TTL и Push-Pull.

Универсальные выходы LineDriver

Каждый из выходных сигналов (A, А, B, B, Z, Z) энкодеров OPKON PRI (модификации HTL) является универсальным (реализован по схеме Push-Pull) работает с NPN, и PNP-входами. Это дает возможность использовать энкодеры с выходом LineDriver для передачи сигнала по стандартной дифференциальной схеме и по однопроводной схеме (без инвертированных сигналов).

Подключение энкодера PRI 50AR6 HLD 1000 Z V3 2M5R SL-TS к контроллеру с NPN-входами
Подключение энкодера PRI 50AR6 HLD 1024 Z V3 2M5R SL-TS к оборудованию с PNP-входами

Помехозащищенность дифференциального выходного сигнала

При использовании энкодеров со стандартным выходом (ABZ) возможно возникновение ложных срабатываний. Это может происходить из-за большой длины сигнального кабеля, стороннего оборудования (излучение ЭМ-помех) или при несоблюдение правил монтажа. Для работы в таких условиях рекомендуется использовать энкодеры с дифференциальным выходом (A, A,B, B, Z, Z).

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

Отличия работы энкодеров со стандартным и дифференциальным выходными сигналами

Список применений:

  • Электропривод с векторным управлением
  • Контроль скорости на автоматическом аппликаторе этикеток
  • Контроль положения инструмента на станке с ЧПУ
  • Защита от раскачивания груза подвесной кран-балки

 

Электропривод с векторным управлением

Использование энкодера OPKON PRI в качестве обратной связи электропривода

Для повышения качества регулирования электропривода применяются датчики обратной связи. К преобразователю частоты ELHART EMD-VL может быть подключен энкодер OPKON PRI 40AR6 HLD 1024 Z V3 2M5R SL-RF. Использование векторного режима с обратной связью позволяет повысить точность поддержания скорости. Для подключения энкодеров используются карты расширения для ПЧ EMD-V-PGC, EMD-V-PGC1 и EMD-V-PGC2.

 

Контроль скорости на автоматическом аппликаторе этикеток

Пример контроля скорости с помощью инкрементального энкодера PRI в автоматическом аппликаторе этикеток

Энкодеры OPKON PRI 40AR6 HLD 1024 Z V3 2M5R SL-TS применяются в этикетировочных машинах для измерения скорости подачи продукта или конвейера. Измерение скорости подачи коробок дает возможность синхронизировать скорости подачи этикеток и самого конвейера. При приближении коробки к ультразвуковому датчику microsonic nero подается команда запуска аппликатора. Запускается привод ELHART EMD-MINI, отвечающий за размотку и нанесение на коробку этикетки. При срабатывании датчика наличия этикетки microsonic esf-1 частотный преобразователь EMD-MINI останавливается. Применение энкодера позволяет автоматически изменять скорость разматывающего устройства (ПЧ EMD-MINI).

 

Контроль положения инструмента на станке с ЧПУ

Контроль положения инструмента на станке с ЧПУ

Энкодер OPKON PRI 50AR6 HLD 5000 Z V3 2M5R SL-TS применяется для измерения положения инструмента на фрезерном станке с ЧПУ. Датчик присоединяется к ведомому валу и передает инкрементальный сигнал на стойку управления, таким образом контроллер отслеживает скорость и положение инструмента при фрезеровании. Также энкодер может устанавливаться на вал шпинделя для контроля оборотов фрезы. Благодаря высокому разрешению энкодера PRI50 (до 5000 имп/об) достигается высокая точность обработки детали. Для управления высокоскоростным шпинделем используется ПЧ EMD-MINI, обеспечивающий выходную частоту до 999 Гц.

 

Защита от раскачивания груза подвесной кран-балки

Использование энкодера для защиты от раскачивания груза подвесной кран-балки

При движении ходовой каретки по путям возможно раскачивание груза. Для защиты от раскачивания применяется энкодер OPKON PRI 40AR6 HLD 1024 Z V3 2M5R SLRF совместно с преобразователем частоты EMD-VH. Применение ПЧ, работающего в векторном режиме с обратной связью позволяет плавно регулировать скорость движения без резких ускорений и рывков, тем самым снизить время простоя.

Модификация PRI 40 PRI 50 PRI 58
Диаметр корпуса 40 мм 50 мм 58 мм
Тип вала цельный
Разрешение 100, 200, 360, 500, 600,
1000, 1024 имп/об
100, 200, 360, 500, 600,
720, 1000, 1024, 1800,
2000, 2048, 2500, 3600,
4000, 4096, 5000 имп/об
Выходной сигнал Push-Pull, TTL, HTL
Напряжение питания =5 В, =5…24 В
Максимальная скорость вращения 3500 об/мин
Степень защиты IP54
Максимальная радиальная нагрузка на вал 80 Н 100 Н 60 Н
Максимальная осевая нагрузка на вал 40 Н 60 Н 40 Н
Рабочая температура -20…+80 °C
Температура хранения -30…+90 °C
Материал корпуса алюминий, сталь
Материал вала нержавеющая сталь
Диаметр вала 4 / 6 мм 6 / 8 / 10 мм
Крепление 3 отверстия М3

Комплект поставки
Наименование
составляющих
комплекта
PRI 40AR4 PRI 40AR6 PRI 50AR6
PRI 50AR8
PRI 50AR10
PRI 58AR6
PRI 58AR8
PRI 58AR10
Г-образный кронштейн
Муфта

Инкрементальный оптический энкодер OPKON PRI40

Габаритные размеры инкрементального оптического энкодера OPKON PRI40, мм

R D
∅ 4 мм 3,3 мм
∅ 6 мм 5,3 мм


Инкрементальный оптический энкодер OPKON PRI50

Габаритные размеры инкрементального оптического энкодера OPKON PRI50, мм

R D
∅ 6 мм 5,5 мм
∅ 8 мм 7,3 мм
∅ 10 мм 9 мм


Инкрементальный оптический энкодер OPKON PRI58

Габаритные размеры инкрементального оптического энкодера OPKON PRI58, мм

R D
∅ 6 мм 5 мм
∅ 8 мм 7 мм
∅ 10 мм 9 мм

Подключение энкодеров c выходным сигналом Push-Pull

Схема подключения к вторичному прибору с входами PNPСхема подключения к вторичному прибору с входами NPNПоследовательность импульсов при прямом вращении (по часовой стрелке)

Контакт Обозначение Описание
Коричневый V+ Питание, 5…24 В
Белый V- Питание, 0 В
Желтый A Выходной сигнал, фаза А
Зеленый B Выходной сигнал, фаза B
Серый Z Выходной сигнал, фаза Z
Экран GND Заземление


Подключение энкодеров PRI c выходным сигналом LineDriver

Схема подключения инкрементального энкодера к вторичному прибору с дифференциальным выходомПоследовательность импульсов при прямом вращении (по часовой стрелке)

Контакт Обозначение Описание
Коричневый V+ Питание, 5…24 В
Белый V- Питание, 0 В
Желтый A Выходной сигнал, фаза А
Синий A Выходной сигнал, фаза A
Зеленый B Выходной сигнал, фаза B
Красный B Выходной сигнал, фаза B
Серый Z Выходной сигнал, фаза Z
Розовый Z Выходной сигнал, фаза Z
Экран GND Заземление

PRI *
40 мм 40
50 мм 50
58 мм 58
Стандартное исполнение A
4 мм R4
6 мм R6
8 мм R8
10 мм R10
Push-Pull LTP
TTL Linedriver LD
HTL Linedriver HLD
PRI40: 100, 200, 360, 500,
600, 1000, 1024 имп/об
100…1024
PRI50, PRI58: 100, 200, 360, 400, 500,
600, 720, 1000, 1024, 1800, 2000, 2048,
2500, 3600, 4000, 4096, 5000 имп/об
100…5000
Каналы A и B B
Каналы A, B и Z Z
=5 В V1
=5…24 В V3
Кабель 2,5 метра 2M5
Кабель 5 метров 5M
Угловой R

* — модификация энкодера определяется производителем.

Пример: PRI 40AR6 HLD 500 Z V3 2M5R SL-RF.

Использование энкодера — Национальная сборная Worldskills Россия

В этом уроке мы познакомимся с инкрементальным магнитным энкодером, который поставляется в комплекте оборудования WorldskillsMobile Robotic Collection, а также с программируемой логической интегральной схемой ПЛИС. Совместим полученные знания и напишем код на ПЛИС, интегрируем его в наше устройство и запустим все в реальном времени. Начнем.

Глоссарий

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

Официальный соревновательный набор чемпионата WorldSkills International по компетенции «Мобильная Робототехника»

Программируемая Логическая Интегральная Схема

Устройство подсчета угла поворота оси

Field-Programmable Gate Array, разновидность ПЛИС, конфигурация которой может быть загружена после включения питания

Видеолекция

Конспект

Энкодер

Энкодер (датчик угла поворота) — это электромеханическое устройство, предназначенное для преобразования углового положения вала или оси в электрические сигналы.
Существуют два основных типа.

Инкрементальный

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

Применение:

  • индустриальные средства управления
  • бытовая и музыкальная техника

Магнитный

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

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

Применение:

  • высокоскоростные приложения, связанные с промышленной автоматизацией, полиграфией, металлообработкой
  • инструментально-измерительное оборудование

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

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

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

Возможности

Можно изменять коммутацию сигналов между более крупными блоками (CLB — программируемые логические блоки)

Можно изменять логическую функцию, которую выполняет CLB

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

Практика

Создадим VI для написания кодов FPGA.

1. Откроем проект и перейдем к устройству Mario Chassis.

2. Создадим новую VI и разделим фронт панели блока диаграмм пополам.

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

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

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

1. Перепишем этот код на нашу блок-диаграмму и создадим 2 контроля Source А и Source В.

2. Нажмем правой кнопкой мыши на передней панели. Boolean и Push-button. Source A и Source B

3. На блок-диаграмме находим элемент Exclusive Or. Делаем три его копии.

4. На рисунке видим, что от Source A создается ссылка в конце итерации считывания этих данных.

5. Сделаем так, чтобы этот индикатор был значением предыдущей итерации цикла нашего Source A. Воспользуемся элементом Feedback node. Нам необходимо передавать предыдущее значение Source A в Y нашего Exclusive for.

Для этого:

  • нажмем правой кнопкой мыши по Feedback Node’у
  • нажмем кнопочку change Direction.

Теперь с выхода Source A на X будет подаваться свежее значение Feedback Node’а. На Y будет подаваться значение с предыдущей операции, делаем то же самое для Source B и второго Exclusive for.

6. Подключаем к X значение Source A, к Y — последнее значение Source B.

7. Выполняем логическое сложение двух верхних элементов.

8.
Следующим элементом будет Node Exclusive Or.

Важно

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

9. Воспользуемся функцией Select для прибавления или вычитания 1 от позиции нашего энкодера.

10. Создадим константу единицы. Зайдем в Numeric — Numeric constant, на True подключаем 1; с помощью зажатой клавиши Ctrl делаем копию и указываем на этой копии -1.

11.
Результат селекта складываем и данный результат с помощью Selecta обрабатываем.

Обработка результата

В случае, если True, то мы будем добавлять или уменьшать какое-либо значение. Данный select будет отвечать за то, двигается ли наш энкодер, т. е. вращается ли вал. Нижнее значение будет проходить дальше на итоговое значение, которое будет выдаваться в нашем реалтайме, с которым в дальнейшем мы будем работать. На False выдается результат вычисления, на True — ноль. Ноль, потому что с помощью данного selecta мы будем обновлять значение энкодера.
Зададим с последнего селекта индикатор, назовем его Position.

Упрощение кода

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

1. Удалим данный элемент и подключим Exclusive or к нашему селектору.

2. Вместо плюса воспользуемся элементами Increment и Decrement

3. К нашему +1 и -1 необходимо передать значения с нашей позиции. Делаем это с помощью Feedback Node.

4. Удалим константы +1 и -1, подключим на True.

5. На False подключаем значение с Feedback node’a.

Важно

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

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

Запуск

1. Подключимся к RIO и запустим утилиту.

2. Переходим во вкладку с цифровыми Digital Input / Output (цифровые входы и выходы).

3. Выберем доступные всем цифровые входы и выходы и посмотрим, что будет изменяться.

4.
Определим, к каким входам подключен энкодер.

5. Возьмем мотор и покрутим колесо. Результат: DIO-3 и DIO-4 меняются. Соответственно, два DIO выхода — это DIO-3 и DIO-4.

6. Перейдем в LabVIEW и напишем для этого код.

7. Добавим вместо Source А и Source B наш вход с коннектора А, диапазон DIO-7 DIO-0, и найдем DIO-3 и DIO-4.

8. Перенесем их на нашу блок-диаграмму и подключим соответственно.

9. Поместим написанный код в структуру While loop, чтобы данные операции выполнялись постоянно.

Важно

В отличие от real-time, на ПЛИС не нужно указывать задержку, так как ПЛИС является довольно высокоскоростным устройством, и задержка нам будет только мешать

10. Запустим нашу программку, сохраним ее, назовем энкодер FPGA и укажем Use the local compile server.

11. Нажимаем OK и ожидаем окончание компиляции FPGA-файла.

12. Покрутим наше колесо против часовой стрелки. Position считается в отрицательную сторону. Вращаем по часовой, Position считается в положительную сторону. Нажимаем Reset — позиция обнуляется.

Перенос ПЛИС на Real-time

1. В проекте под myRIO создаем новую VI.

2. Делим экран.

3. Обращаемся в библиотеку FPGA-interface и берем первый элемент — Open FPGA Reference.

4. Заходим в данный блок и указываем, например, с помощью бит-файла, который находится в папочке FPGA bit-files.

5. Указываем Resource name, наше устройство FPGA target RIO.

Важно

Есть два выхода: кластер ошибки и FPGA Reference out. По данному проводу будет идти информация, к которой мы будем обращаться в нашем цикле для считывания, например, значений с энкодера

6. Подключаем в цикл, затем оттуда же из FPGA interface возьмем элемент Read write control, подключим его на FPGA VI Reference, и в этом элементе появляются те названия контрольных индикаторов, которые мы создали в нашем ПЛИСе. К примеру, Reset, я растяну его чуть ниже — Position. На Reset создаю Control, на Position создаю Indicator. Указываю условие остановки цикла и ставлю задержку в этом цикле 10 мс. Запускаем и сохраняем.

В этом уроке мы узнали, что такое энкодер, что такое ПЛИС, написали код для энкодера на ПЛИС и воспользовались сконфигурированным ПЛИС на устройстве в real-time. Предлагаем вам проверить полученные знания!

Интерактивное задание

Для закрепления полученных знаний пройдите тест

Стартуем!

Программная логическая и импульсивная сборка

Программируемая логическая интегральная схема

Программный линейный интерактивный светодиод

Программируемая логическая интерактивная сборка

Дальше

Проверить

Узнать результат

Эффект Бора

Эффект Тора

Эффект Хлора

Эффект Холла

Дальше

Проверить

Узнать результат

Складывать

Умножать

Делить

Возводить в степень

Дальше

Проверить

Узнать результат

К сожалению, вы ответили неправильно

Прочитайте лекцию и посмотрите видео еще раз

Пройти еще раз

Неплохо!

Но можно лучше. 2 = 4 возможных входных комбинаций.

  • Выход энкодера обычно имеет активный низкий уровень, что означает, что только один выход активен (низкий уровень) в любой момент времени, а остальные выходы неактивны (высокий уровень). Активный низкий выход выбирается на основе двоичного кода, присвоенного активному входу.
  • Существуют различные типы энкодеров, в том числе энкодеры с приоритетом, которые присваивают приоритет каждому входу, и двоично-взвешенные энкодеры, которые используют двоичную систему взвешивания для присвоения двоичных кодов входам.
  • Таким образом, энкодер — это цифровая схема, которая преобразует набор двоичных входных данных в уникальный двоичный код, представляющий позицию входа. Кодировщики широко используются в цифровых системах для преобразования параллельных входных данных в последовательные коды. 9n входных строк с ‘n’ битами.

    Энкодер 4:2 –

    Энкодер 4 на 2 состоит из четырех входов Y3, Y2, Y1 и Y0 и двух выходов A1 и A0 . В любой момент только один из этих 4 входов может быть «1», чтобы получить на выходе соответствующий двоичный код. На рисунке ниже показан логический символ энкодера 4 на 2: Таблица истинности энкодера 4 на 2 выглядит следующим образом: Логическое выражение для A1 и A0:

     A1 = Y3 + Y2
    A0 = Y3 + Y1 

    Вышеуказанные две логические функции A1 и A0 могут быть реализованы с использованием двух входных логических элементов ИЛИ:

    8 : 3 Энкодер (восьмеричный в двоичный) –

    Энкодер 8 в 3 или восьмеричный в двоичный энкодер состоит из 8 входов : от Y7 до Y0 и 3 выходов : A2, A1 и A0. Каждая входная строка соответствует каждой восьмеричной цифре, а три выхода генерируют соответствующий двоичный код. На рисунке ниже показан логический символ преобразования восьмеричного в двоичный кодировщик: Таблица истинности для кодировщика от 8 до 3 выглядит следующим образом: Логическое выражение для A2, A1 и A0:

     A2 = Y7 + Y6 + Y5 + Y4
    А1 = У7 + У6 + У3 + У2
    А0 = Y7 + Y5 + Y3 + Y1 

    Вышеуказанные две логические функции A2, A1 и A0 могут быть реализованы с использованием четырех входных логических элементов ИЛИ:

    Десятично-двоично-десятичный энкодер –

    Десятично-двоичный энкодер обычно состоит из 10 входных строк и 4 выходных строк . Каждая входная строка соответствует каждой десятичной цифре, а 4 выхода соответствуют двоично-десятичному коду. Этот кодировщик принимает декодированные десятичные данные в качестве входных данных и кодирует их в двоично-десятичный код, который доступен на выходных линиях. На рисунке ниже показан логический символ десятичного кодера в двоично-десятичный: Таблица истинности десятичного кодера в двоично-десятичный выглядит следующим образом: Логическое выражение для A3, A2, A1 и A0:

     A3 = Y9 + Y8
     А2 = У7 + У6 + У5 + У4
     А1 = У7 + У6 + У3 + У2
     A0 = Y9 + Y7 +Y5 +Y3 + Y1 

    Вышеуказанные две булевы функции могут быть реализованы с помощью логических элементов ИЛИ:

    Приоритетный энкодер –

    Энкодер с приоритетом от 4 до 2 имеет 4 входа : Y3, Y2, Y1 и Y0 и 2 выхода : A1 и A0. Здесь вход Y3 имеет самый высокий приоритет , тогда как вход Y0 имеет самый низкий приоритет . В этом случае, даже если более чем один вход равен «1» одновременно, на выходе будет (двоичный) код, соответствующий входу, который имеет более высокий приоритет . Таблица истинности для приоритетного энкодера выглядит следующим образом: Вышеуказанные две логические функции могут быть реализованы как: Недостатки обычных энкодеров –

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

    Итак, чтобы преодолеть эти трудности, мы должны назначить приоритеты каждому входу энкодера. Затем на выходе энкодера будет код (код, соответствующий активным высоким входам, имеющим более высокий приоритет. Использование энкодеров —

    1. Энкодеры — очень распространенные электронные схемы, используемые во всех цифровых системах.
    2. Энкодеры используются для перевести десятичные значения в двоичные, чтобы выполнять двоичные функции, такие как сложение, вычитание, умножение и т. д.
    3. Другие приложения, особенно для приоритетных энкодеров, могут включать обнаружение прерываний в микропроцессорных приложениях.

    Преимущества использования энкодеров в цифровой логике:

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

    Недостатки использования энкодеров в цифровой логике:

    1. Повышенная сложность: энкодеры обычно представляют собой более сложные схемы по сравнению с мультиплексорами и требуют дополнительных компонентов для реализации.
    2. Ограничено конкретными приложениями: Энкодеры подходят только для приложений, в которых параллельный набор входов должен быть преобразован в последовательный код.
    3. Ограниченная гибкость: кодировщики ограничены в своей гибкости, так как они могут кодировать только фиксированное количество входных данных в фиксированное количество выходных данных.
    4. В заключение, энкодеры представляют собой полезные цифровые схемы, которые имеют свои преимущества и недостатки. Выбор того, использовать кодировщик или нет, зависит от конкретных требований системы и компромисса между сложностью, надежностью, производительностью и стоимостью.

    Угловые вопросы GATE CS Ответы на следующие вопросы помогут вам проверить свои знания. Все вопросы были заданы в GATE в предыдущие годы или в пробных тестах GATE. Настоятельно рекомендуется их практиковать.

    1. GATE CS 2013, вопрос 65
    2. GATE CS 2014 (набор 3), вопрос 65

    Ссылки 

    Вот несколько книг, к которым можно обратиться за дополнительной информацией о цифровой логике и кодировщиках

    :
  • «Проектирование цифровых систем с использованием VHDL», Чарльз Х. Рот-младший и Лизи Куриан Джон
  • «Цифровой дизайн и компьютерная архитектура», Дэвид Харрис и Сара Харрис
  • «Принципы цифрового проектирования», Дэниел Д. Гайски, Фрэнк Вахид и Тони Гиваргис
  • «Проектирование цифровых схем: введение» Томаса Л. Флойда и Дэвида Мани Харриса
  • «Цифровые основы» Томаса Л. Флойда
  • Эти книги охватывают различные темы цифровой логики и проектирования, включая энкодеры, и предоставляют -глубокая информация по теории, проектированию и реализации цифровых схем.

    Кодировщик – Википедия Приоритетный кодировщик – Википедия Эта статья предоставлена ​​ Harshita Pandey . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу [email protected]. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.


    Кодировщик в цифровой электронике — Javatpoint

    следующий → ← предыдущая

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

    Существуют различные типы энкодеров, а именно:

    4-2-строчный Энкодер:

    В 4-2-строчном энкодере всего четыре входа, т. е. Y 0 , Y 1 , Y 2 и Y 3 , и два выхода, т. е. A 0 и A 1 . В 4-входных строках одна входная строка устанавливается в значение true за раз, чтобы получить соответствующий двоичный код на выходной стороне. Ниже приведены блок-схема и таблица истинности энкодера с 4 на 2 строки.

    Блок-схема:

    Таблица истинности:

    Логическое выражение термина A0 и A1 выглядит следующим образом:

    A 1 = Y 3 + Y 2
    A 0 = Y 3 + Y 1

    Логическая схема приведенных выше выражений приведена ниже:

    8-3-строчный Энкодер:

    Кодировщик с 8 на 3 строки также известен как Восьмерично-двоичный кодировщик . В 8-3-строчном энкодере всего восемь входов, т. е. Y 0 , Y 1 , Y 2 , Y 3 , Y 4 , Y 5 , Y 6 , и Y 7 и три вывода, I.E.E. А1 и А 2 . В 8-входных строках одна входная строка устанавливается в значение true за раз, чтобы получить соответствующий двоичный код на стороне вывода. Ниже приведены блок-схема и таблица истинности 8- и 3-строчного энкодера.

    Блок-схема:

    Таблица истинности:

    Логическое выражение членов A0, A1 и A2 следующее:

    A 2 = Y 4 +Y 5 +Y 6 +y 7
    A 1 = Y 2 +Y 3 y 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 y 3 y 3 3 3 3 3 3 .
    А 0 =Y 7 +Y 5 +Y 3 +Y 1

    Логическая схема приведенных выше выражений приведена ниже:

    Десятичный кодировщик в BCD

    Восьмерично-двоичный кодировщик также известен как 10-4-строчный кодировщик . В энкодере от 10 до 4 строк всего имеется десять входов, т. е. Y 0 , Y 1 , Y 2 , Y 3 , Y 4 , Y 5 , Y 6 , Y 7 , Y 8 , and Y 9 and четыре выхода, т. е. A 0 , A1, A 2 и A 3 . В 10-входных строках одна входная строка устанавливается в значение true за раз, чтобы получить соответствующий BCD-код на выходной стороне. Блок-схема и таблица истинности десятичного кодера в BCD приведены ниже.

    Блок-схема:

    Таблица истинности:

    Логическое выражение терма A 0 , A 1 , A 2 и A 3 выглядит следующим образом:

    A3 = Y9 + Y8
    A2 = Y7 + Y6 + Y5 + Y4
    A1 = Y7 + Y6 + Y3 + Y2
    A0 = Y9 + Y7 + Y5 + Y3 + Y1

    Логическая схема приведенных выше выражений приведена ниже:

    Приоритет кодировщика:

    4-2-строчный кодировщик с приоритетом:

    В этом кодере с приоритетом всего 4 входа, т. е. Y 0 , Y 1 , Y 2 и Y 3 , и два выхода, т. е. A 0 и A 1 . Y 3 имеет высокий, а Y 0 входы с низким приоритетом.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    © M-Gen
    .