Найти в Дзене
Электроника, ESP32, Arduino

Подключаем энкодер без обвязки к ESP32.

Энкодер удобная штука. В Интернет много информации по его подключению к микроконтроллеру - но как правило эти решения требуют добавления элементов устраняющих дребезг контактов. Примеры кода из этой статьи обвязки не требуют, а также вы можете ознакомиться с алгоритмом их работы по ссылкам в конце статьи. Схема подключения и код для примера работы с одним энкодером: Данный пример выводит в монитор порта значение переменной "encoderCount" (в зависимости от направления вращение ручки с каждым щелчком оно будет увеличиваться или уменьшаться). При нажатии кнопки в монитор порта выводится сообщение "buttonClick" Пользоваться примером просто. Задаете контакты к которым подключен энкодер (они должны иметь возможность использовать внутренние подтягивающие резисторы). В основном цикле проверяете значение логической переменной "buttonClick" и изменение переменной "encoderCount" Весь код обработки вынесен в отдельные файлы с расширением .h Файл "encoder.h" обрабатывает вращение ручки изменяя знач

Энкодер удобная штука.

Поворотный энкодер на 360 градусов EC11 с кнопкой, 5 контактов, 20 позиций, 20 импульсных кодов, ручка переключателя, 15/20 мм, цифровой потенциометр
Поворотный энкодер на 360 градусов EC11 с кнопкой, 5 контактов, 20 позиций, 20 импульсных кодов, ручка переключателя, 15/20 мм, цифровой потенциометр

В Интернет много информации по его подключению к микроконтроллеру - но как правило эти решения требуют добавления элементов устраняющих дребезг контактов.

Аппаратное устранение дребезга контактов при работе с энкодером
Аппаратное устранение дребезга контактов при работе с энкодером

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

Схема подключения и код для примера работы с одним энкодером:

Подключение энкодера к ESP32
Подключение энкодера к ESP32

Данный пример выводит в монитор порта значение переменной "encoderCount" (в зависимости от направления вращение ручки с каждым щелчком оно будет увеличиваться или уменьшаться). При нажатии кнопки в монитор порта выводится сообщение "buttonClick"

Результат работы программы
Результат работы программы

Пользоваться примером просто. Задаете контакты к которым подключен энкодер (они должны иметь возможность использовать внутренние подтягивающие резисторы).

В основном цикле проверяете значение логической переменной "buttonClick" и изменение переменной "encoderCount"

-5

Весь код обработки вынесен в отдельные файлы с расширением .h Файл "encoder.h" обрабатывает вращение ручки изменяя значение переменной "encoderCount"

-6

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

Работа с кнопкой с использованием механизма прерываний разбиралась здесь

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

ESP32_interrupts_encoder.zip

Оглавление канала тут

Всем удачи и с наступающим Новым годом!