Электротехнический интернет-журнал Electrik.info

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


Схемы подключения | Принципиальные схемы | Электроснабжение
Розетки и выключатели | Автоматы защиты | Кабель и провод | Монтаж электропроводки Ремонт электротехники | Молодому электрику

Электрик Инфо » Схемы на микроконтроллерах » Как подключить инкрементальный энкодер к Ардуино
Количество просмотров: 42505
Комментарии к статье: 3


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


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

Как подключить инкрементальный энкодер к Arduino

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

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

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

Энкодер и Ардуино

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

Ручка регулировки уровней звука

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

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

Энкодер в разобранном виде

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

Конструкция энкодеров

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

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

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

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

Схема энкодера

Вот пример цоколевки реального энкодера:

Пример цоколевки реального энкодера

Интересно:

Неисправный энкодер можно заменить двумя кнопками без фиксации, и наоборот: самоделку управление в которой осуществляется двумя такими кнопками можно доработать, установив энкодер.

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

Не менее наглядно это проиллюстрировано на следующей анимации (нажмите на рисунок):

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

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

Датчик угла поворота

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

Точки механической фиксации

Точность управления зависит от разрешения энкодера – количества импульсов на оборот. Количество импульсов может быть от единиц до тысяч штук. Так как энкодер может выступать в качестве датчика положения, то чем больше импульсов – тем точнее будет происходить определение. Этот параметр обозначается как PPR – pulse per revolution.

Но есть небольшой нюанс, а именно похожее обозначение LPR – это количество меток на диске.

А количество обрабатываемых импульсов. Каждая метка на диске даёт 1 прямоугольный импульс на каждом из двух выходов. У импульса есть два фронта – задний и передний. Так как выхода два то с каждого из них мы в сумме получаем 4 импульса значения которых вы можете обработать.

PPR=LPRx4

Явно полезное:

Как не спалить Ардуино - советы для начинающих

Какие бывают дисплеи для Ардуино и как их подключить

Управление двигателями и сервоприводами с помощью Ардуино

19 шилдов для Arduino на все случаи жизни

10 интересных проектов для Ардуино

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

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

Схема подключения датчика положения к Ардуино

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

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

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

Пример программы

Разберем код подробнее, по порядку. В void setup() мы объявили что будем использовать связь через последовательный порт, а затем установили пины 2 и 8 в режим входа. Номера пинов выбираете сами исходя из вашей схемы подключения. Константа INPUT_PULLUP выставляет режим входа, у ардуино есть два варианта:

  • INPUT – вход без подтягивающих резисторов;

  • INPUT_PULLUP – подключение ко входу подтягивающих резисторов. Внутри микроконтроллера уже есть резисторы, через которые вход соединяется с плюсом питания (pullup).

Если вы используете резисторы для подтяжки к плюсу питания как изображено на схемах, приведенных выше или используете модуль энкодера – пользуйтесь командой INPUT, а если по какой-то причине не можете или не хотите использовать внешние резисторы – INPUT_PULLUP.

Логика основной программы следующая: если на входе «2» у нас единица – выдаёт в монитор порта H, если нет – L. Таким образом при вращении в одну сторону на мониторе последовательного порта получится что-то вроде этого: LL HL HH LH LL. А в обратную: LL LH HH HL LL.

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

Заключение

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

Алексей Бартош

Популярные публикации:

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

Подписывайтесь на канал в Telegram про электронику для профессионалов и любителей: Практическая электроника на каждый день



Поделитесь этой статьей с друзьями:


Другие статьи с сайта Электрик Инфо:

  • Способы чтения и управления портами ввода-вывода Arduino
  • Управление двигателями и сервоприводами с помощью Ардуино
  • Какие бывают дисплеи для Ардуино и как их подключить
  • Особенности подключения устройств к Arduino
  • Как с помощью Ардуино безопасно управлять нагрузкой на напряжении 220 вольт
  • Как устроен и работает сервопривод
  • Измерение температуры и влажности на Arduino – подборка способов
  • Самые популярные датчики для Ардуино
  • Подключение и программирование Ардуино для начинающих
  • Подключение аналоговых датчиков к Ардуино, считывание показаний датчиков
  • Категория: Схемы на микроконтроллерах

    Программирование Ардуино, Ардуино, Arduino для начинающих

      Комментарии:

    #1 написал: Борис |

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

      Комментарии:

    #2 написал: Павел Голубев |

    Очень хорошая статья. Спасибо!

      Комментарии:

    #3 написал: Сергей |

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

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

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

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

    Присоединяйтесь к нам в социальных сетях:

    ВКонтакте | Facebook | Одноклассники | Электрик Инфо на Яндекс Дзен

     

    Популярные разделы сайта:

    Электрика дома  Электрообзоры  Энергосбережение
    Секреты электрика Источники света Делимся опытом
    Домашняя автоматика Электрика для начинающих
    Практическая электроника Электротехнические новинки
    Андрей Повный - все статьи автора



    Copyright © 2009-2024 Электрик Инфо - Electrik.info, Андрей Повный
    Вся информация на сайте предоставлена в ознакомительных и познавательных целях.
    За применение этой информации администрация сайта ответственности не несет.
    Перепечатка материалов сайта запрещена.