Arduino и энкодер
Описание
Энкодер – общее название устройств, преобразующих одну величину в другую. В данном случае энкодер – это устройство, преобразующее вращательное механическое движение в цифровой сигнал, а сам энкодер в этом случае называется “поворотным” (вращательным, круговым). В наборе GyverKIT идёт инкрементальный поворотный энкодер с кнопкой, который служит очень удобным органом управления для электронного устройства и заменяет сразу несколько кнопок или джойстик, обеспечивая быструю навигацию по пунктам меню и изменение настроек. По сути похож на потенциометр, но не имеет ограничения по углу поворота. Особенности данного модуля:
- Качественный инкрементальный энкодер с кнопкой
- 20 “щелчков” на один оборот
- Выведено питание (5V, GND), два пина энкодера (S1, S2) и пин кнопки (KEY)
- Работает также от 3.3V (для Wemos)
- Все логические пины подтянуты к VCC резисторами на плате
- RC цепи гашения дребезга на выводах энкодера
Инкрементальный энкодер выдаёт импульсные логические сигналы со своих пинов на каждый щелчок. Сигналы отличаются по фазе, что позволяет определить направление текущего щелчка.
Алгоритмы опроса энкодера мы рассматривать не будем, это тема для отдельного серьёзного урока, поэтому научимся подключать модуль и работать с готовой библиотекой.
Подключение
Модуль подключается на питание, логические выводы – на любые цифровые пины. В случае с Wemos – на все кроме D8, так как подтяжка к VCC помешает МК запуститься. Подключу выводы энкодера на D2 и D3, а кнопку – на D4.
Библиотеки
Существует несколько библиотек для работы с энкодером, например:
В примерах на этом сайте мы будем использовать EncButton, т.к. она имеет самый большой набор вариантов опроса энкодера (поворот, нажатый поворот, быстрый поворот), а также хорошо оптимизирована и поддерживает расширенную работу с кнопкой. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию EncButton. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.
Примеры
Домашнее задание
- Изучить остальные функции для работы с энкодером
- Изучить примеры к библиотеке EncButton