How rotary encoder works and how to use it with arduino

Код Ардуино с использованием прерываний

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

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

Широко распространенным решением является использование прерывания. С прерыванием вам не нужно постоянно опрашивать конкретное событие. Это освобождает Ардуино для выполнения какой-то другой работы, не пропуская событие.

Подключение энкодера к Ардуино с учетом прерывания

Поскольку большинство Ардуино (включая Ардуино UNO) имеют только два внешних прерывания, мы можем отслеживать только изменения в сигналах DT и CLK. Вот почему мы удалили соединение вывода SW с предыдущей схемы подключения.

Итак, теперь схема подключения выглядит так:

Некоторые платы (например, Ардуино Mega 2560) имеют больше внешних прерываний. Если у вас есть что-то из этого, вы можете оставить соединение для вывода SW и расширить рисунок ниже, чтобы использовать код и для кнопки.

Код Ардуино

Ниже приведен скетч, демонстрирующий использование прерываний при чтении углового энкодера:

// Входы поворотного энкодера
#define CLK 2
#define DT 3

int counter = 0;
int currentStateCLK;
int lastStateCLK;
String currentDir ="";

void setup() {
  
  // Устанавливаем контакты энкодера как входы
  pinMode(CLK,INPUT);
  pinMode(DT,INPUT);

  // Настройка последовательного монитора
  Serial.begin(9600);

  // Считываем начальное состояние CLK
  lastStateCLK = digitalRead(CLK);
  
  // Вызов updateEncoder () при обнаружении любого изменения максимума/минимума при прерывании 0 (вывод 2) или прерывании 1 (вывод 3)
  attachInterrupt(0, updateEncoder, CHANGE);
  attachInterrupt(1, updateEncoder, CHANGE);
}

void loop() {
  //Здесь какой-либо полезный код
}

void updateEncoder(){
  // Считываем текущее состояние CLK
  currentStateCLK = digitalRead(CLK);

  // Если последнее и текущее состояние CLK различаются, то произошел импульс.
  // Реагируем только на одно изменение состояния, чтобы избежать двойного счета
  if (currentStateCLK != lastStateCLK  && currentStateCLK == 1){

    // Если состояние DT отличается от состояния CLK, то
    // энкодер вращается против часовой стрелки, поэтому уменьшаем
    if (digitalRead(DT) != currentStateCLK) {
      counter --;
      currentDir ="CCW";
    } else {
      // Энкодер вращается по часовой стрелке, поэтому увеличиваем
      counter ++;
      currentDir ="CW";
    }

    Serial.print("Direction: ");
    Serial.print(currentDir);
    Serial.print(" | Counter: ");
    Serial.println(counter);
  }

  // Запоминаем последнее состояние CLK
  lastStateCLK = currentStateCLK;
}

Обратите внимание, что основной цикл этой программы loop() остается пустым, поэтому Ардуино ничего не делает. Между тем, эта программа отслеживает изменение значения на цифровом выводе 2 (соответствует прерыванию 0) и цифровом выводе 3 (соответствует прерыванию 1)

Другими словами, программа ищет изменение напряжения с HIGH на LOW или с LOW на HIGH, которое происходит при повороте ручки

Между тем, эта программа отслеживает изменение значения на цифровом выводе 2 (соответствует прерыванию 0) и цифровом выводе 3 (соответствует прерыванию 1). Другими словами, программа ищет изменение напряжения с HIGH на LOW или с LOW на HIGH, которое происходит при повороте ручки.

Когда это происходит, вызывается функция updateEncoder() (часто называемая подпрограммой обслуживания прерывания или просто ISR ). Код в этой функции выполняется, а затем программа возвращается к исполнению основного кода с момента прерывания.

За все это отвечают две строки в коде. Эта функция attachInterrupt() которая сообщает Ардуино, какой вывод следует контролировать, какой ISR выполнять, если прерывание срабатывает, и какой тип триггера следует искать.

Стенд для пайки со светодиодной подсветкой
Материал: АБС + металл + акриловые линзы. Светодиодная подсветка…

Подробнее

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

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

Дребезг контактов на выходе механического энкодера

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

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

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

RC фильтр и форма сигнала на его выходе

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

Область применения энкодеров в промышленности

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

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

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

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

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

Pin Outs

The pin outs for this rotary encoder are identified in the illustration below.

The module is designed so that a low is output when the switches are closed and a high when the switches are open.

The low is generated by placing a ground at Pin C and passing it to the CLK and DT pins when switches are closed.

The high is generated with a 5V supply input and pullup resistors, such that CLK and DT are both high when switches are open.

Not previously mentioned is the existence of of push button switch that is integral to the encoder.   If you push on the shaft, a normally open switch will close.    The feature is useful if you want to change switch function.   For example,  you may wish to have the ability to between coarse and fine adjustments.

Типы приборов

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

Инкрементальные энкодеры

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

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

Этот вид работает следующим образом. У него есть начальная нуль-метка, или выход Z, и два дополнительных выхода — A и B. Датчик создает две линии сигналов со смещенными на четверть фазы импульсами относительно друг друга. Разница импульсов указывает на направление вращения, а их количество — на угол поворота.

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

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

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

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

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

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

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

Многооборотные датчики поворота

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

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

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

Оптические энкодеры

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

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

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

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

Фотоэлектрические датчики основаны на том же принципе. В них свет преобразуется в электрические сигналы.

Механические энкодеры

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

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

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

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

Здесь видны практически все основные узлы современного изделия:

  1. – вал энкодера
  2. – фланец (на данном рисунке представлен зажимной тип)
  3. – фотоприемник инфракрасного (ИК) света
  4. – оптический диск с растрами (метками, если инкрементный) или кодовыми дорожками (если абсолютный)
  5. – ИК осветитель (LED) с линзой на плате
  6. – механический редуктор с зубчатыми колесами (многооборотный модуль)
  7. – плата обработки сигнала с выходными формирователями и конверторами интерфейса.

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

На рисунке выше показана работа энкодера:

  1. ИК свет от источника 5 проходит через кодовый диск 4, и попадает на приемник (фото матрицу) 3
  2. Фотоприёмник имеет нанесенную на чувствительном элементе или расположенную над ним маску (индикаторную пластину), которая также имеет «окошки», как на вращающемся диске
  3. Из-за поочередного перекрытия и открытия окошек маски в процессе вращения вала датчика, проходящий свет имеет аналоговую структуру. Нет света -> нарастает -> максимум света -> убывает -> нет света
  4. Это регистрирует фото сенсор
  5. Далее аналоговый сигнал с приемника преобразуется платой обработки 7 в необходимые для дальнейшей передачи информации импульсы.

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

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

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

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

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

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

Для этого понадобятся:

  • любое устройство Ардуино, например, Arduino UNO, Arduino Mega, Arduino Leonardo, Arduino 101, Arduino Due;
  • любой энкодер Ардуино.

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

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

Пины, и что они означают:

  • CLK: выход A (цифровой);
  • DT: выход B (цифровой);
  • SW: нажатие кнопки (цифровой);
  • + : VCC-напряжение питания;
  • GND: заземление.

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

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

Чтобы определить направление и проверить, вращается ли штифт по часовой стрелке или против часовой стрелки, нужно сделать следующее:

  • Если вращающийся вал движется по часовой стрелке, то сигнал A опережает B. В одни и те же моменты времени, A и B будут находиться на противоположных частях прямоугольной волновой функции.
  • Если вал движется против часовой стрелки, то сигнал B опережает A.

Подключение

Если говорить в общем, то CLK, DT и SW, должны быть подключены к цифровым выводам на Ардуино, + должен быть подключен к 5V, а GND заземлен.

Пошаговая инструкция подключения проводов энкодера к Ардуино:

  1. CLK: подключите конец провода к пину CLK на поворотном энкодере, затем к любому цифровому выводу на Arduino (оранжевый провод).
  2. DT: подключите конец провода к пину DT, затем к любому цифровому контакту на Arduino (желтый провод).
  3. SW: подключите конец провода к пину SW, далее к любому цифровому контакту на Arduino (голубой провод).
  4. + : подключите провод к пину +, затем к контакту +5V на Arduino (красный провод).
  5. GND: подключите конец провода к пину GND на энкодер с контактом GND на Arduino. (Черный провод).

Как кодировать

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

Что понадобится:

  • датчик поворотного энкодера;
  • Ардуино;
  • пьезодатчик;
  • провода.

Вот сам код:

Описание кода

Итак, сначала нужно определить контакты, к которым подключен кодер, и назначить некоторые переменные, необходимые для работы программы. В разделе «Настройки» нужно определить два контакта в качестве входных данных, и запустить последовательную связь для печати результатов на последовательном мониторе. Также нужно прочитать начальное значение вывода A, затем поместить это значение в переменную aLastState.

Далее в разделе цикла снова изменить вывод A, но теперь поместить значение в переменную aState. Таким образом, если повернуть вал и сгенерировать импульс, эти два значения будут отличаться. Сразу после этого, используя второй параметр «if», определить направление вращения. Если выходное состояние B отличается от A, счетчик будет увеличен на единицу, в противном случае он будет уменьшен. В конце, после вывода результатов на мониторе, нужно обновить переменную aLastState с помощью переменной aState.

Это все, что нужно для этого примера. Если загрузить код, запустить монитор и начать вращать вал, значения станут отображаться на мониторе.

Упрощенный пример

Следующий пример кода продемонстрирует, как считывает сигналы Arduino на датчике энкодера. Он просто обновляет счетчик (encoder0Pos) каждый раз, когда энкодер поворачивается на один шаг, а параметры вращения отправляются на порт ПК.

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

Content

Introduction

Rotary encoders are becoming more and more popular in consumer eletronics especially as control knobs in addition to their many other application areas. They are taking the place of potentiometers and navigation buttons where fast navigation, adjustment, data entry, and selection are reqired. Some encoders also include a built-in pushbutton which generates additional input to the processor which can be used as another user command in the control loop. You can see a typical incremental rotary encoder with push-on button on the picture below.

In this lesson, we will show how a rotary encoder works and how to use it with the Osoyoo UNO board.

Зачем копировать вход на выход

Если бы единственной задачей автоэнкодеров было копирование входных данных на выход, они были бы бесполезны. Исследователи рассчитывают на то, что скрытое представление h будет обладать полезными свойствами.

Этого добиваются созданием ограничений для задачи копирования. Один из способов получить полезные результаты от автоэнкодера — ограничить h размерами меньшими , чем x. D этом случае автокодирование называется неполным.

Автоэнкодер может начать выполнять задачу копирования, не извлекая полезной информации о распределении данных, если

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

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

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

Обзор контактных серий энкодеров Bourns

Наиболее популярными сериями контактных энкодеров Bourns являются PEC11x, PEC12 и ECW (таблица 2).

Таблица 2. Серии контактных энкодеров производства Bourns

Параметр Наименование
PEC11R PEC11L PEC11S PEC12R ECW PEC16 EPS PEL12S, PEL12D, PEL12T EAW
Технология Контактная
Тип Инкрементальный Абсолютный
Установочный диаметр, мм 12 11 12 12 22 16 22 12 22
Класс защиты IP40 IP40 IP40 IP40 IP40 IP40 IP40 IP40 IP40
Фиксация + + + + + + + +
Дополнительный выключатель + + + + + + +
Материал вала Металл Пластик
Материал крепежной гайки Металл Пластик Металл Пластик Металл Пластик
Монтаж В отверстия SMD В отверстия
Разрешение, имп/об 12, 18, 24 15, 20 15 12, 24 6, 9, 12, 24, 36 12, 24 6, 9, 12, 24, 36 24 128
Максимальная частота вращения, об/мин 60 60 60 100 120 100 120 100 120
Нагрузка выводов, мА (В) 10 (5) 10 (5) 10 (5) 1 (5) 10 (10) 10 (5) 10 (12) 0,5 (5) 10 (10)
Цикличность до сбоя, тысяч оборотов 30 100 15 30 200 200 200 60 50
Диапазон рабочих температур, °С -30…70 -20…80 -30…70 -30…70 -40…85 -30…70 1…85 -10…70 -40…85

Серии PEC11x обладают самыми скромными характеристиками среди перечисленных семейств. Для них максимальная рабочая частота вращения не превышает 60 об/мин.

Серия PEC11R имеет исполнение для монтажа в отверстия. Максимальное разрешение – до 24 импульсов на оборот. Срок службы для таких энкодеров превышает 30 тысяч оборотов. Функционировать они могут в диапазоне температур -30…70°С.

PEC11S имеет схожие характеристики, но предназначена для монтажа на плату. Минимальный срок жизни для таких энкодеров составляет 15 тысяч оборотов.

PEC11L предназначена для монтажа в отверстия и имеет увеличенную износостойкость – 100 000 оборотов.

Серия PEC12R, по сравнению с PEC11, имеет увеличенную максимальную частоту вращения – 100 об/мин.

PEC16 отличается отличной износостойкостью, до 200 тысяч оборотов, и высокой максимальной частотой вращения.

EPS идеально подойдет для лабораторных блоков благодаря высокой износостойкости (до 200 тысяч) и высокой разрешающей способности (до 36 импульсов на оборот вала). Применение в промышленной электронике ограничено из-за узкого температурного диапазона (1…85°С).

Серия ECW имеет лучшие среди перечисленных серий характеристики: рабочая частота – до 120 об/мин, срок службы – 200 тысяч оборотов, разрешающая способность – до 36 импульсов на оборот вала.

Отдельно стоит отметить серии PEL12x и EAW.

PEL12x снабжены дополнительными светодиодами, а в качестве световода используется вал энкодера. Питание светодиодов производится с помощью дополнительных выводов. Электрические характеристики этих серий близки к характеристикам PEC11 и PEC12. Серия PEL12S выпускается с одним светодиодом (красный, синий, зеленый, оранжевый, белый). Серия PEL12D выпускается с двумя светодиодами (четыре комбинации сочетаний цветов). Серия PEL12T имеет три светодиода комбинации RGB.

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

Схема подключения контактных энкодеров Bourns достаточно проста (рисунок 6). Эквивалентная схема контактных квадратурных энкодеров представляет собой два параллельных ключа с общим выводом (вывод С). Для фиксации замыканий используется подтяжка к напряжению 5 В. Для серии EAW необходима подтяжка всех восьми выходных линий. Почти все серии имеют версии с дополнительным встроенным ключом.

Рис. 6. Схема подключения контактных квадратурных энкодеров Bourns

Контактные серии оптимизированы для построения HMI-систем. Для таких систем небольшая максимальная частота вращения и ограниченный срок службы не являются критичными параметрами. Зато эти энкодеры имеют возможность фиксации положений вала, дополнительный встроенный выключатель и низкую стоимость. Основными областями применения серий являются:

  • аудиотехника (ручки громкости);
  • бытовая электроника (климат-контроль);
  • музыкальные инструменты (гитары, микшеры);
  • измерительные лабораторные приборы (генераторы, осциллографы);

Баги и обратная связь

При нахождении багов создавайте Issue, а лучше сразу пишите на почту [email protected]
Библиотека открыта для доработки и ваших Pull Request’ов!

При сообщении о багах или некорректной работе библиотеки нужно обязательно указывать:

  • Версия библиотеки
  • Какой используется МК
  • Версия SDK (для ESP)
  • Версия Arduino IDE
  • Корректно ли работают ли встроенные примеры, в которых используются функции и конструкции, приводящие к багу в вашем коде
  • Какой код загружался, какая работа от него ожидалась и как он работает в реальности
  • В идеале приложить минимальный код, в котором наблюдается баг. Не полотно из тысячи строк, а минимальный код
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Семинар по технике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: