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

В этой статье будет рассмотрена схема подключения инкрементального энкодера к микроконтроллеру AVR ATmega8 и приведена программа на языке C (с пояснениями), обеспечивающая взаимодействие этих устройств. Микроконтроллер ATmega8 (семейство AVR) был специально спроектирован для применения во встраиваемых приложениях (embedded applications).

Подключение углового кодера к микроконтроллеру AVR ATmega8: внешний вид

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

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

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

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

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

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

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

То есть если мы вращаем ручку кодера по часовой стрелке, то мы будем иметь отрицательный перепад сигнала сначала на контакте A, а потом на контакте B.

Если же мы вращаем ручку кодера против часовой стрелки, то мы будем иметь отрицательный перепад сигнала сначала на контакте B, а потом на контакте A.

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

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

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

Аппаратное обеспечение

  1. Микроконтроллер ATmega8 (купить на AliExpress).
  2. Программатор AVR-ISP (купить на AliExpress), USBASP (купить на AliExpress) или другой подобный.
  3. Инкрементальный энкодер (Rotary Encoder).
  4. Конденсатор 100 нФ (2 шт.).
  5. Резистор 220 Ом (2 шт.).
  6. Резистор 1 кОм.
  7. Светодиод (8 шт.).
  8. Источник питания с напряжением 5 Вольт.

Программное обеспечение

  1. Atmel Studio версии 6.1 (или выше).
  2. Progisp или flash magic (необязательно).

Работа схемы

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

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

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

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

Для данной схемы мы никоим образом не изменяем фьюзы (fuse bits) микроконтроллера atmega8, поэтому он будет работать на частоте 1 МГц от своего внутреннего генератора.

Исходный код программы на языке С (Си) с пояснениями

Программа для рассматриваемой схемы представлена следующим фрагментом кода на языке С (Си). Комментарии к коду программу поясняют принцип работы отдельных команд.

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

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


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

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