RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/articles/scientific_technical/encoder_arduino_connect.html

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

Для начала разберёмся детальнее, что такое энкодер.

Энкодер – это устройство, предназначенное для определения угла поворота и преобразующее данные в электрический сигнал. Другое название энкодера – "датчик угла поворота".

По выходному сигналу различают:

Изображение выходного сигнала инкрементного энкодера

Рис. 1. Изображение выходного сигнала инкрементного энкодера

 

С анимацией.

Схема инкрементного энкодера

Рис. 2. Схема инкрементного энкодера

 

Схема принципа работы абсолютного энкодера

Рис. 3. Схема принципа работы абсолютного энкодера

 

Или эта.

Схема принципа работы абсолютного энкодера

Рис. 4. Схема принципа работы абсолютного энкодера

 

Конструктивно (в зависимости от технологии измерения) экодеры могут быть:

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

Начнём с инкрементных датчиков.

 

 

Подключение инкрементных энкодеров

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

Типовая схема

Рис. 5. Типовая схема

 

Здесь приведён пример с использованием энкодера с кнопкой (есть и такие модели, кнопкой служит сама ручка).

При использовании Atmega можно просто включить встроенные резисторы микроконтроллера специальной командой.

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

Типовая схема

Рис. 6. Типовая схема

 

Существует и программный способ сглаживания дребезга за счёт использования логики прерываний (смотри скетч во вложениях к материалу). Но подключение прибора следует выполнять только на 2 и 3 пины.

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

Код для обработки данных с датчика

 

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

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

Отрабатывается перемещение по иерархии меню и выбор между доступными пунктами.

 

Подключение абсолютных энкодеров

Абсолютные энкодеры не так распространены, как инкрементные. И схема подключения во многом зависит от требований производителя. Так, например, высокоточный 128-битный датчик Bourns ACE-128 легко подключается к Ардуино или Raspberry Pi. Производитель предлагает свои собственные библиотеки для работы с энкодером и даже типовую схему для тестирования функционала.

Схема соединения выглядит так.

Схема соединения энкодеров

Рис. 7. Схема соединения энкодеров

 

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

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

Рис. 8. Схема для тестирования с выводом числового показателя угла поворота на дисплей

 

Готовая библиотека для Arduino, подробные инструкции и примеры скетчей можно найти на ГитХабе:   https://github.com/arielnh56/ACE128

Аналогично и с изделиями других производителей – необходимо изучать их рекомендации.

Автор: RadioRadar