Как подключить энкодер к ардуино

Типы поворотных энкодеров и как они работают

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

Механический поворотный энкодер

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

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

  1. Металлический диск, расположенный на вале, используется вместе со стационарным подборщиком и вращается.
  2. Во время вращения, создается уникальный сигнал преобразуемый в код.
  3. Это означает, что каждое изменение положения фиксируется.
  4. Код используется для определения точного положения вала.

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

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

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

Процесс определения положения с помощью оптических энкодеров:

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

Магнитные энкодеры

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

Процесс определения положения с помощью магнитных энкодеров:

  1. Присоединенный диск вращается.
  2. Магнитные датчики обнаруживают изменение магнитного поля из-за вращения.
  3. Такие изменения преобразуются в синусоидальные волны и преобразуются в цифровые сигналы для получения желаемого результата.

Где применяют энкодеры

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

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

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

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

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

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

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

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

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

Разрешение и максимальная частота вращения обратнозависимы – ведь не может же частота выходных импульсов исчисляться гигагерцами. Обычно выходная частота ограничена значением около 500 кГц. Да и не всякий контроллер “скушает” такую частоту. Делаем вывод: энкодер с разрешением 1000 имп/оборот (наиболее распространенный) не может крутиться с частотой выше 500 Гц или 30000 об/мин. Но такие скорости в механике я лично не встречал. Делаем второй вывод: высокое разрешение не всегда хорошо.

Пример, поясняющий работу энкодера:

Конструкция, поясняющая работу энкодера

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

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

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

Абсолютные энкодеры работают в сложном оборудовании – там, где в любой момент времени (в том числе, в момент подачи питания) нужно знать точное положение объекта. Но сейчас, с появлением дешевых контроллеров с энергонезависимой памятью, в 99% используются инкрементальные энкодеры. Тем более учитывая, что их цена в несколько раз ниже, чем у абсолютных. Да и обрабатывать последовательные импульсы гораздо проще, чем параллельный код.

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

Энкодер: Примеры применения

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

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

Как подключаются энкодеры

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

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

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

Монтаж энкодеров

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

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

Производители энкодеров

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

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

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

Рассмотрим несколько примеров использования энкодеров в реальном оборудовании.

Измерение скорости полотна

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

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

Источник

What’s the difference between absolute and incremental encoders?

Encoders may produce either incremental or absolute signals. Incremental signals do not indicate specific position, only that the position has changed. Absolute encoders, on the other hand, use a different “word” for each position, meaning that an absolute encoder provides both the indication that the position has changed and an indication of the absolute position of the encoder.

For more detailed information on how encoders work, see the white paper The Basics of How an Encoder Works, and the Encoder Basics section of EPC’s Installation and Wiring Guide.

If you have questions about how an encoder will work in your specific application, contact us. When you call EPC, you speak to engineers and encoder experts who can answer all your questions.

Call today, and you could have your encoder solution in a matter of days.

Выбор лучших энкодеров для Ардуино

Чтобы упростить процесс выбора энкодера к Arduino, здесь будет подборка каждого варианта.

Поворотный энкодер EC11

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

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

Магнитный энкодер Grove AS5600

Нужно устройство, которое может одновременно работать как магнитный потенциометр или магнитный энкодер с отличной надежностью и долговечностью? Тогда это устройство отлично подойдет.

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

Grove — оптический поворотный прибор

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

Его особенности:

  • двойные фототранзисторные детекторы, могут определять направление вращения;
  • встроенные светодиодные индикаторы;
  • интерфейс Grove для простоты использования с Ардуино.

Последовательности за последовательным предсказанием

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

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

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

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

Нужна помощь с LSTM для прогнозирования последовательности?

Пройдите мой бесплатный 7-дневный курс по электронной почте и откройте для себя 6 различных архитектур LSTM (с кодом).

Нажмите, чтобы зарегистрироваться, а также получите бесплатную PDF-версию курса Ebook.

What IS an encoder?

Simply put, an encoder is a sensing device that provides feedback. Encoders convert motion to an electrical signal that can be read by some type of control device in a motion control system, such as a counter or PLC. The encoder sends a feedback signal that can be used to determine position, count, speed, or direction. A control device can use this information to send a command for a particular function. For example:

  • In a cut-to-length application, an encoder with a measuring wheel tells the control device how much material has been fed, so the control device knows when to cut.
  • In an observatory, the encoders tell actuators what position a moveable mirror is in by providing positioning feedback.
  • On railroad-car lifting jacks, precision-motion feedback is provided by encoders, so the jacks lift in unison.
  • In a precision servo label application system, the encoder signal is used by the PLC to control the timing and speed of bottle rotation.
  • In a printing application, feedback from the encoder activates a print head to create a mark at a specific location.
  • With a large crane, encoders mounted to a motor shaft provide positioning feedback so the crane knows when to pick up or release its load.
  • In an application where bottles or jars are being filled, feedback tells the filling machines the position of the containers.
  • In an elevator, encoders tell the controller when the car has reached the correct floor, in the correct position. That is, encoder motion feedback to the elevator’s controller ensures that elevator doors open level with the floor. Without encoders, you might find yourself climbing in or out of an elevator, rather than simply walking out onto a level floor.
  • On automated assembly lines, encoders give motion feedback to robots. On an automotive assembly line, this might mean ensuring the robotic welding arms have the correct information to weld in the correct locations.

In any application, the process is the same: a count is generated by the encoder and sent to the controller, which then sends a signal to the machine to perform a function.

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

пример создания такого меню

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

Подключим энкодер к Ардуино по следующей схеме:

ссылка

#define pin_CLK 2
#define pin_DT  4
#define pin_Btn 3

unsigned long CurrentTime, LastTime;
enum eEncoderState {eNone, eLeft, eRight, eButton};
uint8_t EncoderA, EncoderB, EncoderAPrev;
int8_t counter;
bool ButtonPrev;

eEncoderState GetEncoderState() {
  
  eEncoderState Result = eNone;
  CurrentTime = millis();
  if (CurrentTime - LastTime >= 5) {
    
    LastTime = CurrentTime;
    if (digitalRead(pin_Btn) == LOW ) {
      if (ButtonPrev) {
        Result = eButton; 
        ButtonPrev = ;
      }
    }
    else {
      ButtonPrev = 1;
      EncoderA = digitalRead(pin_DT);
      EncoderB = digitalRead(pin_CLK);
      if ((!EncoderA) && (EncoderAPrev)) { 
        if (EncoderB) Result = eRight;     
        else          Result = eLeft;      
      }
      EncoderAPrev = EncoderA; 
    }
  }
  return Result;
}

void setup() {
  pinMode(pin_DT,  INPUT);
  pinMode(pin_CLK, INPUT);
  pinMode(pin_Btn, INPUT_PULLUP); 
  Serial.begin(9600);
  counter = ;
}

void loop() {
  switch (GetEncoderState()) {
    case eNone: return;
    case eLeft: {   
        counter--;
        break;
      }
    case eRight: {  
        counter++;
        break;
      }
    case eButton: { 
        counter = ;
        break;
      }
  }
  Serial.println(counter);
}
EncoderA = digitalRead(pin_CLK);
EncoderB = digitalRead(pin_DT);

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

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

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

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

Архитектура кодировщика-декодера

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

Архитектура включает в себя два компонента: кодер и декодер.

  • кодировщикКодировщик считывает всю входную последовательность и кодирует ее во внутреннее представление, часто вектор фиксированной длины, называемый вектором контекста.
  • дешифратор: Декодер считывает кодированную входную последовательность из кодера и генерирует выходную последовательность.

Подробнее об архитектуре Encoder-Decoder см. В посте:

Encoder-Decoder Длинные сети кратковременной памяти

И подмодели кодера и декодера обучаются совместно, то есть одновременно.

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

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

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

Это расширение архитектуры называется вниманием. Подробнее об Attention в архитектуре Encoder-Decoder см

В посте:

Подробнее об Attention в архитектуре Encoder-Decoder см. В посте:

Внимание в долгосрочной краткосрочной памяти Рекуррентные нейронные сети

Архитектура Encoder-Decoder с вниманием популярна для набора проблем обработки естественного языка, которые генерируют выходные последовательности переменной длины, такие как суммирование текста. Применение архитектуры к обобщению текста выглядит следующим образом:

Применение архитектуры к обобщению текста выглядит следующим образом:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сигналы и выходы инкрементального энкодера

Импульсы на выходе энкодера – один канал

Период Т – величина, обратная частоте, а про частоту мы говорили выше. Уровень “Н” – это напряжение, почти равное напряжению питания (обычно 5, 12, или 24 В). Уровень “L” – около нуля.

Что может рассказать нам такой энкодер? Только о скорости и погонных метрах. Например, его можно применять для определения частоты вращения двигателя, или длины материала после нажатия кнопки “Сброс”. Неплохо, но хочется большего!

Если будет два выхода, импульсы на которых (оптическим способом) сдвинуты на четверть периода, мы сможем узнать направление вращения:

Импульсы каналов А и В с фазовым сдвигом

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

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

Со скоростью, расстоянием и направлением разобрались, а что делать, если нужно узнать угол поворота? Для этого вводится сигнал “Z” (Zero) – опорный импульс, который также называют нуль-меткой или референсной меткой:

Выходы энкодера А, В с нулевой меткой Z

Импульс “Z” имеет длительность Т (бывает и другая длительность – T/2, или 2Т) и проскакивает 1 раз за оборот вала энкодера. Иными словами, длительность нулевой метки может быть в тысячи раз короче периода вращения вала энкодера.

В современных датчиках каждая фаза (канал) обычно имеет ещё один, противофазный выход.

С теорией заканчиваем, плавно переходим к практике.

Монтаж и подключение датчиков поворота

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

Важно прочно закрепить корпус датчика при монтаже

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

Варианты подключения

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

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

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

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

После подключения желательно проверить все мультиметром.

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

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

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

  • любое устройство Ардуино, например, 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) каждый раз, когда энкодер поворачивается на один шаг, а параметры вращения отправляются на порт ПК.

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

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

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

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

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

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