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


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

Подключение углового кодера к Arduino Uno: внешний вид конструкции

Принципы работы инкрементального энкодера

Внешний вид инкрементального энкодера показан на следующем рисунке.

Внешний вид инкрементального энкодера

Инкрементальный энкодер имеет следующие контакты:

  • земля;
  • питание +5 В;
  • выходной сигнал A;
  • выходной сигнал B;
  • контакт времени или общий контакт.

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

Последовательность импульсов на выходах углового кодера

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

Этот спад импульса для используемого нами инкрементального энкодера с 20 позициями будет случаться каждые 360/20 = 18 градусов. Если число позиций в инкрементальном энкодере будет больше, то и обеспечиваемая им точность измерений будет также выше.

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

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Инкрементальный энкодер (купить на AliExpress).
  3. Резистор 220 Ом (2 шт.) (купить на AliExpress).
  4. Резистор 1 кОм (купить на AliExpress).
  5. Светодиод (8 шт.) (купить на AliExpress).
  6. Конденсатор 100 нФ (2 шт.) (купить на AliExpress).
  7. Соединительные провода.
  8. Макетная плата.

Работа схемы

Схема устройства представлена на следующем рисунке.

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

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

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

Исходный код программы

Принцип работы программы пояснен с помощью комментариев к соответствующим командам.

Видео, демонстрирующее работу схемы

(1 голосов, оценка: 5,00 из 5)
Загрузка...
1 787 просмотров

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *