STM32 Подключение инкрементального энкодера

Автор: | 27.11.2018

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

  1. Может делать сколь угодно оборотов
  2. Быстро установить точное значение

У микроконтроллеров ST реализована аппаратная обработка сигналов энкодера, входит она в состав некоторых таймеров.

Энкодеры по конструкции бывают разных типов:

  • Механические (контакты)
  • Оптические (светодиод, фотоприемник, перфорированный диск)
  • Электромагнитные (можно сделать из шагового двигателя)

Я подключил вот такой:

Это механический энкодер с Aliexpress в виде модуля для ардуино. Этот энкодер еще в придачу, кнопкой.

Назначение выводов:

  • GND (Общая шина)
  • +        (Плюс питания)
  • SW    (Тактовая кнопка)
  • DT     (Сигнал направления вращения)
  • CLK   (Сигнал тактовый)

В datasheet написано, что все таймеры общего назначения могут обрабатывать сигналы квадратурных (инкрементальных) энкодеров. Выводы (CLK) и (DT) подключаются к входам таймера (TIMx_CH1) и (TIMx_CH2). Я свой энкодер подключил к TIM3 заработало без проблем.

Код инициализации таймера:

Получение значения через функцию:

Использование прерывания:

Видео пример работы:

На этом на верное все, свои вопросы можете оставлять в комментариях. Всего наилучшего вам.

 

 

ПОДДЕРЖАТЬ ПРОЕКТ

Добавить комментарий