Warning: Undefined variable $tile2 in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 17

Warning: Undefined variable $head_str in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 118

Warning: Undefined variable $upload_page_header in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 120

Warning: Undefined variable $GlobalSocials_VK_SDK in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 122

Warning: Undefined variable $GlobalSocials_FB_SDK in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 126

Warning: Undefined variable $personal_link in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 162

Warning: Undefined variable $GlobalSocials_FOLLOW_BOX in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 164

Notice: session_start(): Ignoring session_start() because a session is already active (started from /opt0/www/radiokot.ru/templates/common/shablon.php on line 15) in /opt0/www/radiokot.ru/templates/common/shablon.php on line 15

Warning: Undefined variable $tile2 in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 17

Warning: Undefined variable $head_str in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 118

Warning: Undefined variable $upload_page_header in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 120

Warning: Undefined variable $GlobalSocials_VK_SDK in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 122

Warning: Undefined variable $GlobalSocials_FB_SDK in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 126

Warning: Undefined variable $personal_link in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 162

Warning: Undefined variable $GlobalSocials_FOLLOW_BOX in /opt0/www/radiokot.ru/templates/radiokot_classic_neew/shablon.php on line 164
Например TDA7294

Эиком - электронные компоненты и радиодетали
РадиоКот >Статьи >

Теги статьи: ЭнкодерИз желудей и спичекШаговый двигательДобавить тег

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

Автор: Александр Кленин
Опубликовано 26.08.2009

2009

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

В итоге, склонился к применению ШД от старого 5-дюймового дисковода. За основу взял https://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.

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




Warning: Undefined variable $GlobalSocials_VK_LIKE in /opt0/www/radiokot.ru/cms/article.php on line 174

Warning: Undefined variable $GlobalSocials_FB_LIKE in /opt0/www/radiokot.ru/cms/article.php on line 177


Warning: Undefined variable $user_id in /opt0/www/radiokot.ru/cms/article.php on line 205

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

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

47 3 1
12 1 1

Эти статьи вам тоже могут пригодиться: