В этом руководстве мы собираемся соединить поворотный энкодер с микроконтроллером ATmega8. ATmega8 - это серия микроконтроллеров компании Atmel, предназначенная для встраиваемых приложений. Датчик угла поворота используется для определения положения и углового перемещения двигателя или оси. Обычно это трехконтактное устройство с количеством выводов питания и заземления до пяти. Ниже показан модуль энкодера.
Контакты поворотного энкодера:
- Земля.
- Плюс подключен к + 5В
- Выходной сигнал A pin
- Выходной сигнал B pin
- Штифт часов или общий штифт.
ENCODER выдает импульсы, представляющие изменение положения вала, чтобы системы могли их понять. Представьте, что ВРАЩАЮЩИЙСЯ ЭНКОДЕР включен, а вал перемещается.
Как показано в таблице выше, предположим, что вал перемещается по часовой стрелке. При этом будет Falling Edge в терминале A, а затем в терминале B.
Считайте, что вал перемещается против часовой стрелки. При этом в терминале B будет Falling Edge, а затем в терминале A.
Этот край будет происходить один раз для 360/20 = 18 градусов (это для кодировщика с 20 позициями, он меняется от типа к типу, чем выше счет, тем выше точность).
С обоими вышеуказанными условиями мы можем получить направление и степень вращения. Таким образом, мы получаем необходимые параметры для определения положения вала.
Составные части
Аппаратное обеспечение: ATMEGA8, соединительные штыри, ПРОГРАММАТОР AVR-ISP, резистор 220 Ом, светодиод (восемь штук), резистор 1 кОм, резистор 220 Ом (2 штуки), конденсатор 100 нФ (2 штуки), макетная плата.
Софт: Atmel studio 6.1, прогисп или flash magic.
Принципиальная схема и объяснение работы
Конденсаторы здесь предназначены для нейтрализации эффекта дребезга контактов в ENCODER. Без этих конденсаторов при считывании положения возникнут серьезные проблемы.
Когда вал перемещается, будет разница во времени между двумя выходными выводами. ATMEGA8 распознает эту разницу во времени для вращения по часовой стрелке или против часовой стрелки.
Если вращение происходит по часовой стрелке, двоичный счет увеличивается на единицу, и этот счет отображается на светодиодном индикаторе, как показано на рисунке.
При вращении против часовой стрелки двоичный счет уменьшается на единицу, а двоичный счет отображается в байте светодиода.
Помните, что здесь мы не устанавливаем какие-либо предохранители atmega8, поэтому контроллер будет работать на внутреннем кристалле с частотой 1 МГц по умолчанию.
Работа сопряжения поворотного энкодера с микроконтроллером ATmega8 объясняется в приведенном ниже коде.