Например TDA7294

РадиоКот > Статьи

Энкодер из шагового двигателя.

Автор - Александр Кленин.
Участник Конкурса "Поздравь Кота по-человечески 2009"
Опубликовано 26.08.2009.

Использование шаговых двигателей (ШД) в качестве энкодера по-прежнему остается привлекательным решением, т.к. промышленные энкодеры, при всех своих достоинствах, имеют существенные недостатки - цена и сложности при покупке единичных экземпляров. Если контактные энкодеры еще с трудом можно приобрести, то цена бесконтактных энкодеров совершенно неподъемная.
В моем случае исключалось применение контактного энкодера, т.к. не допускались пропуски и генерация паразитного (из-за дребезга) сигнала при вращении. Мне не удалось получить удовлетворительных результатов при испытаниях контактных инкрементального и абсолютного энкодеров. Марки называть не буду.

В итоге, склонился к применению ШД от старого 5-дюймового дисковода. За основу взял http://ru3ga.qrz.ru/UZLY/encod.htm, но большое число элементов совсем не радовало.

В результате, схема была приведена к виду, показанному на Рис.1. Для подавления паразитных колебаний у обоих каналов закорочена одна из полуобмоток, что обеспечило достаточное демпфирование, резко снизило скорость нарастания сигнала при больших скоростях вращения и позволило использовать ШД с внутренним соединением средних выводов обмоток.
Также введен гистерезис порядка 50...100 мВ (зависит от напряжения питания 4...5В).
После изменений работа схемы при напряжении питания 5В меня устроила, но хотелось, чтобы она работала от 3В. Большое число элементов и сравнительно большой потребляемый ток, привели к схеме Рис.2.

Подключение обмоток двигателя осталось таким же, а в качестве формирователя сигнала использована микросхема HEF4069 (можно заменить CD4069, MC14069). Ввод схемы в линейную область сделан на одном инверторе, выход которого соединен с входом. Такое соединение позволяет превратить инвертор в повторитель напряжения, примерно равного половине напряжения питания без использования дополнительного резистивного делителя.
При 3В схема на LM358 отказалась работать из-за недостаточно хороших выходных уровней компаратора.
Качество работы обеих схем при 5В питании получилось примерно одинаковое. При монотонном пошаговом повороте вала двигателя наблюдалась четкая последовательность 2-битного кода Грея. Но! При смене направления вращения первый шаг нарушал эту последовательность.
Например:

Вращение по часовой

Вращение против часовой

00

11

01

10

11

00

10

01

Видно, что при смене направления происходило изменение состояния обоих каналов, что противоречило правилу кодирования. Последующие шаги соответствовали правильной последовательности нового направления.
Эта особенность поведения ШД (смена состояния в обоих каналах) учитывалась программно. Для примера приведены ассемблерные программы обработки сигналов ШД в качестве энкодера для AVR и MSP430.

На Рис.3 приведены диаграммы сигналов, генерируемых ШД при включении обмоток в соответствии со схемами. Алгоритм обработки сигналов энкодера показан на двух нижних диаграммах Рис.3
-при поступлении прерывания от активного фронта канала А анализируется уровень и флаг требования прерывания канала B. Если флаг установлен, что говорит о смене направления вращения, дополнительно анализируется состояние внутреннего рабочего флага, который сигнализирует о предыдущем направлении вращения и идет соответствующее изменение значения счетчика шагов. Это сделано для исключения неоднозначности определения кодовой последовательности, возникающей при смене направления вращения. Если флаг сброшен, что говорит об отсутствии смены направления вращения, идет простое изменение значения счетчика шагов.
-совершенно аналогично идет обработка прерывания от активного фронта канала В.
В итоге получается обработка каждого шага двигателя.
Шаговый двигатель, в качестве энкодера, был встроен в конструкцию ленточной пилорамы для повышения точности изготовления пиломатериалов.

Файлы:
Прошивки для AVR и MSP430.

Вопросы, как обычно, складываем тут.


ID: 31

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

39 3 1
11 1 1
Подробно