Меню

Энкодер инкрементный выключатель кнопка

Инкрементальный энкодер: принцип действия, схемы подключения, работа с Arduino

У данной статьи есть видеоверсия!
Подписывайтесь на канал, чтобы быть в курсе обновлений!

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

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

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

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

Каждый инкрементальный энкодер имеет следующую основную характеристику — дискретность ( количество шагов, положений между импульсами, на один оборот вала). Благодаря дискретности, можно вычислить угол единичного изменения положения. В нашем примере, энкодер ЕС11 за полный оборот генерирует 20 серий импульсов. А это значит, что каждый шаг эквивалентен повороту на 18°. Помимо этого, вал энкодера фиксируется в каждом положении между каждой серией импульсов.

Внешний вид устройства:

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

Энкодер с кнопкой имеет 5 выходов — 2 выхода ( D и E) отвечают за переключатель ( кнопку), 1 ( С) — общий ( GND , земля), а оставшихся 2 ( A и B) — импульсные линии, сигнализирующие о вращении.

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

Схематично работу инкрементального энкодера можно представить следующим образом:

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

После чего в состоянии покоя на обоих сигнальных выходах будет присутствовать логическая единица ( 5 В). При вращении по часовой, или против часовой стрелки на сигнальных линиях, с противоположным смещением друг относительно друга, будут появляться отрицательные импульсы — по одному на 1 шаг на каждой линии:

Реальная осциллограмма вращения энкодера немного отличается от идеальной.

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

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

Программное устранение дребезга

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

После того как энкодер подключен к Arduino ( на примере Arduino Uno):

Сигнальные линии энкодера подключены к 2 и 3 пину Arduino Uno, так как на этих выходах реализованы прерывания. Замена пинов подключения приведет к неработоспособности примера. Скетч:

Суть работы кода можно изобразить графически:

При корректном выполнении сценария, по завершению каждого шага переменная state будет иметь состояние 4 или -4 . Если что-то пойдет не так, программа никак не это не отреагирует. Но если программа увидит, что в состоянии покоя ( A=1 и B=1 ), переменная state не равна нулю, то вернет её в исходное состояние.

Аппаратное устранение дребезга

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

О том, почему изменена полярность подключения и для чего необходим инвертирующий триггер Шмитта 74HC14N, можно почитать в статье Arduino: Дребезг — программное и аппаратное устранение.

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

Дополнительным бонусом может служить высвобождение одного из двух ( для Arduino Uno) пинов с функционалом прерывания. Таким образом прерывание будет провоцироваться импульсом только одной линии, а далее, в обработчике, можно смотреть на состояние второй линии и делать выводы:

Этот пример работает корректно.

Навигация при помощи энкодера

Теперь можно организовать управление чем-либо при помощи энкодера. Его уникальность состоит в том, что одним элементом управления можно запрограммировать 4 реакции на действия: вращение вправо/влево, короткое нажатие и длинное нажатие ( реакция на нажатия реализуется программно).

В строках 59-67 можно настроить реакцию программы на длительное удержание кнопки энкодера:

Энкодер и навигация по меню

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

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

Скетч и результат работы выглядит так:

Бонус — как заменить энкодером кнопки

Задача выглядит следующим образом:

Сделать без участия микроконтроллера ( на микросхемах ТТЛ-логики) так, чтобы вращение энкодера конвертировалось в положительные импульсы на двух разных выходах — по часовой стрелке на одном выходе, против часовой — на другом, таким образом имитируя нажатия двух отдельных кнопок:

Для выполнения этой задачи понадобятся 2 микросхемы, реализующие стандартную логику и 1 микросхема — D-триггер ( D от англ. delay — задержка):

Источник

AVR Lab устройства на микроконтроллерах AVR

Форум по AVR

Инкрементный Энкодер с кнопкой подключение к ATmega8

Статья о поворотном энкодере, который применяется в принтерах и мышках для компьютеров уже была.
Данная статья об инкрементном энкодере, который применяется во многих приборах. Инкрементный энкодер имеет три степени свободы:
1. Вращение влево,
2. Вращение вправо,
3. Кнопка.

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

Выглядит энкодер как показано на рис. 1


Рис.1 инкрементный энкодер

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

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

Рис. 2 выходные сигналы на энкодере.

Таким образом для определения направления вращения, необходимо иметь информацию, какая пара контактов была замкнута первой. То есть при вращении влево замыкаются пары контактов №1 а потом №2, при вращении вправо происходит наоборот №2 а потом №1. Текст программы для определения направления вращения вала энкодера представлен ниже:

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

Схема подключения энкодера к микроконтроллеру Atmega8 показана на рис. 3


Рис. Схема подключения энкодера

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

Коротко о коде программы:
Я думаю все и так понятно благодаря комментариям, если возникнут вопросы — пишите комментарии.
Да, алгоритм программы следующий:
при вращении в какую-либо сторону программа отправляет по USART данные с указанием направления вращения. При нажатии на кнопку, выводится сообщение «Enter» по USART.

Видео работы, проект совмещает три проекта:
1. Работа с поворотным инкрементным энкодером,
2. Работа с ЖКИ от NOKIA 3310,
3. Древовидное меню для микроконтроллеров

Источник



PEC16-4220F-S0024, энкодер инкрементальный с выкл.

Информация для заказа

Номенклатурный номер 998932405
Производитель: Bourns

Энкодер инкрементальный серии PEC16 с выключателем, 24 переключения/изменения на вращение в 360°.
Контакты: нижние, с фиксаторами
Регулятор: длина 20 мм, нажимной, с моментальным переключением. Гарантированное количество циклов вращения 100 тыс.
Сопротивление изоляции: 10 МОм
Выход: двухразрядный
Ток/напряжение: 1мА при 5В
Рабочая температура: -30. 70°C
Применение энкодера: бытовая электротехника, аудио-визуальное оборудование, оборудование связи, радио, музыкальные устройства.

Показать весь тект

Документация на PEC16-4220F-S0024, энкодер инкрементальный с выкл. (datasheet)

поступит 600 шт.

2687 шт.
мин. заказ 10 шт

1677 шт.
мин. заказ 4 шт

100 шт.

Наименование Цены, руб. с НДС Цена для выбранного кол-ва Наличие Условие
поставки
Сумма,
руб.
В корзину
PEC16-4220F-S0024, энкодер инкрементальный с выкл.
Bourns
998932405
от 500 — 76.83
от 350 — 78.89
от 200 — 80.94
от 50 — 83.00
от 1 — 130.00
130.00
руб./шт
приход 30.05 130.00
PEC16-4220F-S0024, Энкодеры
BOURNS
2014969922
от 50 — 88.87
от 37 — 89.38
от 23 — 89.89
от 10 — 90.40
90.40
руб./шт
5 раб. дней 904.00
PEC16-4220F-S0024
BOURNS
2010019656
от 150 — 83.73
от 50 — 87.66
от 30 — 94.75
от 15 — 106.83
от 1 — 118.92
118.92
руб./шт
5 дней 475.68
PEC16-4220F-S0024, Энкодер инкрементный + выключатель (кнопка)
Bourns
2010063337
от 30 — 317.32
от 21 — 318.21
от 12 — 319.11
от 3 — 320.00
от 1 — 340.00
340.00
руб./шт
1-2 недели 340.00

Цены указаны с НДС со склада в Москве, наличие указано на 20.12.2020 17:01

Тип инкрементальный
Кол-во имп./оборот 24
Напряжение питания, В 5
Рабочая температура, С -30…+70
Макс. частота вращения 100
Выводы Монтаж в отверстие
Производитель Bourns

Документация на PEC16-4220F-S0024, энкодер инкрементальный с выкл. (datasheet)

Представленная техническая информация носит справочный характер и не предназначена для использования в конструкторской документации. Для получения актуализированной информации отправьте запрос на адрес techno.ru

Посмотреть еще

  • Другие товары этого производителя: датчики угла (энкодеры) Bourns
  • Вся продукция производителя Bourns
  • Посмотреть все Датчики и преобразователи
  • Посмотреть и скачать электронный каталог
  • Посмотреть новинки продукции

Нужна помощь в выборе продукции или подборе аналога?
Обратитесь к нашему консультанту webmaster@platan.ru

Указано наличие на складе в г.Москве. Цены приведены с учетом НДС. Приведенная информация носит справочный характер и не является публичной офертой в соответствии с пунктом 2 статьи 437 ГК РФ. При заказе товара через сайт Вам будет выставлен счет на оплату в режиме онлайн, товар забронирован на 3 рабочих дня и зафиксирована цена на день покупки.

Оплатить товар можно:

  • Банковским переводом
  • Электронными деньгами Яндекс.Деньги
  • Наличными при получении товара (для клиентов из Москвы и Санкт-Петербурга)
  • Наличными через офисы Евросеть, Связной или через любой платежный терминал, принимающий Яндекс.Деньги
  • Пластиковой картой Visa/MasterCard (кроме клиентов из Санкт-Петербурга)

Мы работаем с разными грузовыми компаниями:

  • экспресс-доставка Major Express
  • Деловые линии
  • ТК Энергия
  • почта России
  • терминалы доставки InPost

Забрать заказ можно в наших офисах:

  • Москва, м.Молодежная, ул.Ивана Франко, д.40, стр.2 (через 2 раб.дня)
  • Москва, м.Электрозаводская, Семеновская наб., д.3/1, к.5 (через 2 раб.дня)
  • С.-Петербург, ул.Зверинская, д.44 (через 5 раб.дней)

Платан проводит строгую политику в области качества поставляемой продукции:

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

Источник

Читайте также:  Выключатель легранд двухклавишный мозаика