Управление моторами с компьютера

Драйвер шагового двигателя своими руками

Шаговый двигатель используется в машинах для точного перемещения. Наладим управление шаговым двигателем через USB с компьютера своими руками. Нам потребуется:

1) Шаговый двигатель, возьмем — Nema23 76 мм, вместо него может быть другой, управлять будем биполяным методом, любой гибридный и биполярный шаговый двигатель будет работать с таким же управлением.

2) Блок питания, возьмем — импульсный блок питания мощностью 360W с выходным напряжением 24V / 15A, может использоваться любой другой блок питания, если будет достаточно мощности и напряжения для работы двигателя. Более мощному двигателю будет нужно больше напряжения. Предел напряжения нашего драйвера ограничивается максимальным напряжением, которое выдерживают транзисторы, это 100V, у нас блок питания на 24V. В случае большего напряжения транзисторы в схеме необходимо заменить на более мощные, также при увеличении напряжения, транзисторы могут начать греться, если такое случилось, необходимо дополнительно обдувать их куллером (у меня все в порядке и куллер не требуется). Для подключения блока питания к сети 220V также нужен шнур и нужно определить где в вашей розетке ноль, а где фаза. Контакт блока N подключается к нулю, а L к фазе, также можно подключить заземление (но не обязательно). Определение возможно при помощи индикаторной отвертки, у меня определилось, что слева ноль, а справа фаза.

Как крутить шаговый двигатель

Шаговый двигатель работает от подачи комбинаций напряжения в разных направлениях на его обмотки, у этого шагового двигателя 2 обмотки — 4 провода, первая обмотка — черный (A) и зеленый (A*) провод, вторая обмотка — красный (B) и синий (B*). За одну смену комбинаций делается 1 шаг — 1,8 градусов. Если комбинации быстро менять, то двигатель будет быстро и точно позиционироваться — крутиться. Смена комбинаций возможна в двух направлениях, соответственно двигатель будет крутиться вперед или назад.

Чтобы крутить шаговый двигатель, надо:

1) Собрать устройство — USB контроллер шагового двигателя на микроконтроллере AVR и драйвер шагового двигателя, 2 в 1. Перед тем как собирать это сложное устройство, рекомендую сначало отдельно собрать и проверить работу только USB контроллера, его я уже собрал вот тут — контроллер USB. Если USB связь работает нормально, то можно приступать к изготовлению драйвера.

2) Написать программу для компьютера, которая будет посылать USB команды устройству.

3) Написать программу для микроконтроллера AVR, которая будет принимать USB команды и крутить двигатель.

USB контроллер шаговых двигателей и USB драйвер шагового двигателя

Взятый нами двигатель является гибридным и поддерживает несколько вариантов управления. Управлять двигателем будем биполярным методом и соответственно собираем мы драйвер биполярного шагового двигателя с USB контроллером. Сначало покажу готовый результат, а потом подробно рассмотрим его. Вот фото собранного драйвера шагового двигателя с USB управлением, который я собрал:

Драйвер шагового двигателя с USB управлением своими руками

На картинке сверху — биполярный (гибридный) шаговый двигатель NEMA 23 с потреблением — 3А тока на обмотку. Под ним — импульсный блок питания 360 Вт, 24 В, 15 А. Мощности блока хватает на 15 / 3 = 5 одновременно запитанных обмоток, у одного двигателя 2 обмотки, т.е хватит на 2 одновременно работающих двигателя (4 обмотки). Я не вижу необходимости включать одновременно больше одного двигателя, в случае если необходимо двигаться по кривой траектории, то нужно чередовать короткие включения то одного, то другого двигателя. Так что имеющейся мощности с запасом хватает. Двигатель и блок питания подключены к устройству, которое также подключено через USB к компьютеру. Все соединено по схеме.

Читайте также:  Триммеры электрические с верхним расположением мотора

Схема драйвера биполярного шагового двигателя и USB контроллера (схема длинная и нуждается в прокрутке для просмотра):

Драйвер шагового двигателя USB на микроконтроллере AVR своими руками

Электронные компоненты, которые надо купить для сборки устройства по схеме:

Дополнительно нужно (нет в наличии):

1) Модуль питания DC-DC SMAU01L-12 (вместо него пойдет любой конвертер DC-DC с 5V до 10V-15V) — 1 шт., возможно можно без него, от 5V питать (не проверено)

Главным компонентом схемы является программируемый микроконтроллер AVR — ATmega16A, если вы не знаете как с ними работать (записывать программу), сначало ознакомьтесь с основами такой работы, которые подробно описаны в первой статье
управление машиной. Для устройства можно использовать и другой микроконтроллер AVR, я выбрал ATmega16A, т.к. в нем с запасом имеется много памяти и контактов для подключения нескольких двигателей и большого количества рабочих инструментов.

Слева от ATmega16A находятся компоненты для организации связи по протоколу USB — к выводам XTAL подключен внешний кварцевый резонатор с USB-совместимой частотой 12 МГц. Для сглаживания сигнала у него есть 2 конденсатора по 20 пФ, все это соединяется с минусом питания. К контактам, через которые идет обмен сообщениями с USB, подключены 2 резистора по 68 Ом, как того требует протокол USB. Резистор на 1.5 кОм, подключенный к D- линии задает низкоскоростной режим работы USB устройства. Диоды Зенера 3V6 понижают напряжение на линиях, через которые идет обмен данными USB с 5 до 3.6V.

Управление двигателем подключается к контактам PB0, PB1, PB2, PB3, на остальные свободные P-контакты можно в будующем подключить еще двигатели и рабочие инструменты, но пока они пустуют. Микроконтроллер ATmega16 отдает команды и обрабатывает USB сигналы после того как в него записана программа (ниже она будет написана). После него идет конструкция из микросхем IR2102 и транзисторов IRF540N (2 так называемых H-моста) — она приводит шаговый двигатель в движение.

Драйвер IR2101 нужен для преодаления большой емкости затвора транзистора IRF540N, что позволяет открывать и закрыть транзистор с большой скоростью (например принимать сигнал ШИМ, которым может регулироваться скорость двигателя при необходимости — об этом сигнале дальше напишу), что нам и нужно. К сожалению для питания этого драйвера необходимо 10-15V, у нас есть только 5V от USB. Поэтому пришлось поставить компонент DC-DC SMAU01L-12, который преобразует 5V в 12V, вместо него можно использовать любой другой способ получения такого напряжения, например, при помощи трансформатора или любым другим путем. К VCC подключается +12V, к COM -12V. Один драйвер работает с 2мя транзисторами — верхним (H) и нижним (L). Контакты HIN и LIN — входной сигнал с микроконтроллера для верхнего и нижнего транзистора, по этому сигналу транзисторы открываются и закрываются. HO и LO — это выходные сигналы, транзисторы подключаются гейтами (G) к этим контактам. Они подключаются не просто так — справа на линиях 2 резистора 10/100 Ом и диод, они нужны для нормальной работы транзисторов — чтобы они замедлялись при открытии и не замедлялись при закрытии, эти транзисторы слишком быстро открываются и это может вызвать проблемы. Диод и конденсаторы 3300 пФ — нужны для работы драйвера IR2101 согласно документации на эту микросхему.

Читайте также:  Расстояние от экрана мотора

Каждая обмотка (фаза) двигателя (у двигателя 2 обмотки A и B — 4 контакта) подключается к H-мосту из транзисторов IRF540N. H-мост — это специальная схема соединения транзисторов, которая позволяет подавать через них напряжение высокого уровня (24V) в разных направлениях. Один мост изготавливается из 4-х транзисторов. В итоге здесь вы видите 2 H-моста, которые позволяют гонять разнонаправленное напряжение высокого уровня по 2м обмоткам двигателя и тем самым крутить его.

Обратите внимание, что в мосту — HIN верхнего драйвера соединяется с LIN нижнего драйвера, а LIN верхнего с HIN нижнего. Это сделано для одновременной подачи сигналов. Если вы включили HIN сверху, то обязаны включить LIN с низу, иначе произойдет короткое замыкание. Такое подключение позволяет автоматом включать пару. Впрочем короткое замыкание все же возможно, если вы откроете и HIN и LIN на одном мосте, поэтому не допускайте этого. На контактах PB0 — PB3 допустимы только значения 0000, 1010, 0110, 0101, 1001. Их перебор крутит двигатель. Подача других значений скорей всего приведет к короткому замыканию моста.

Мощные резисторы с низким номиналом 0.1 Ом и высокой мощностью (3-5 Вт) нужны для защиты от высокого тока — это шунты. Если что их можно снять и заменить простым соединением с минусом питания, если например не будет хватать мощности. Для слабых резисторов мощность берется от тока USB: 0.05 А * 5 V = 0.25 Вт (ток USB задается программно, по умолчанию в нашей программе стоит 0.05). Черная полоска на диодах соответствует вертикальной линии на схеме.

Шаговый двигатель и блок питания подключаются к H-мостам, как показано на схеме. Минусы питания 24V, 12V и 5V соединяются. Между плюсом и минусом 24V линии ставится сглаживающий пленочный конденсатор.

Отдельное крупное фото драйвера шагового двигателя:

Источник

Управление шаговым двигателем с помощью PC

(Ниже описана несложная разработка, позволяющая управлять шаговым двигателем, подключенным к LPT порту IBM-совместимого компьютера.)

Параллельный порт является великолепным интерфейсом, позволяющим подключать к персональному компьютеру множество самых различных устройств. Однако он может быть легко поврежден, поэтому при его использовании для подсоединения самодельных внешних устройств нужно быть очень внимательным. Если вы не уверены в том, что вы все делаете правильно, сначала проконсультируйтесь у специалистов и только потом экспериментируйте. Ниже приводится краткое описание параллельного порта. Параллельный порт имеет несколько линий ввода/вывода, которые могут быть разделены на две группы — линии передачи данных и линии сигналов управления. Линии передачи данных — двунаправленные (разумеется, речь идет о режимах ЕСР/ЕРР), и именно их мы и будем использовать. В табл.1 описано назначение выводов разъема порта LPT.

Назад

№ выв. Назва-ние Направ-ление Описание
1 STROBE ввод и вывод устанавливается PC после завершения каждой передачи данных
2/9 DO-D7 вывод 8 линий данных
10 АСК ввод устанавливается в «0» внешним устройством после приема байта
11 BUSY ввод устройство показывает, что оно занято, путем установки этой линии в «1»
12 Paper out ввод для принтеров
13 Select ввод устройство показывает, что оно готово, путем установки на этой линии «1 »
14 Autofeed Ввод и вывод
15 Error ввод индицирует об ошибке
16 Initialize Ввод и вывод
17 Select In Ввод и вывод
18-25 Ground GND общий провод
Читайте также:  Лодочные моторы бензиновый генератор

Вперед

Прим. переводчика: я использовал шаговый двигатель от русского дисковода. Тип двигателя: ПБМГ-200-265Ф. Для определения выводов применялся тестер. При этом я зарисовал схему обмоток, фиксируя на ней измеренные сопротивления. Оказалось, что двигатель имеет четыре обмотки. Две обмотки соединены друг с другом и имеют общий провод белого цвета, вторые выводы этих обмоток красного и зеленого цвета. Две другие обмотки также соединены друг с другом и имеют общий провод черного цвета, вторые выводы этих обмоток голубого и желтого цвета. Если соединить белый и черный провода, получается практически та же схема, что и описанная в оригинальной статье. Порядок подключения выводов я определил опытным путем.
Для управления шаговым двигателем можно использовать микросхему драйвера ULN2003, которая содержит семь мощных транзисторных ключей, собранных по схеме Дарлингтона. Каждый ключ способен управлять нагрузкой с током потребления до 500 мА. Микросхема имеет резисторы в цепи базы, что позволяет напрямую подключить ее входы к обычным цифровым микросхемам. Все эмиттеры соединены вместе и выведены на отдельный вывод. На выходах транзисторных ключей имеются защитные диоды, что позволяет управлять с помощью этой микросхемы индуктивными нагрузками при минимуме внешних компонентов. В нашей конструкции использовано только четыре транзисторных ключа. Электрическая схема подключения шагового двигателя показана на рис. 2.

Обратите внимание, что первый вывод шагового двигателя, идентифицированный с помощью описанной ранее процедуры, подсоединен к линии DO параллельного порта (разумеется, через микросхему ULN2003). Каждый следующий вывод подсоединен к соответствующему выводу параллельного порта. Если порядок подключения выводов шагового двигателя неверный, вал мотора будет не вращаться, а лишь поворачиваться на небольшой угол из одной стороны в другую и наоборот. Общий провод схемы подсоединен к источнику питания не напрямую, а через стабилитрон. Это сделано с целью защиты схемы от напряжения ЭДС самоиндукции, возникающего в катушках при резком выключении напряжения питания схемы.
Программа, разработанная для описываемого устройства, достаточно проста. Она управляет выводами порта и формирует на них специальную последовательность импульсов. Эта последовательность показана в табл. 2 и 3.
Различие между алгоритмами (полным и половинным углом поворота вала на один шаг) состоит в том, что во втором случае скорость вращения оказывается в два раза ниже, при этом в два раза уменьшается угол поворота вала двигателя на каждом шаге, т. е. увеличивается разрешающая способность системы. Также во втором случае примерно в два раза увеличивается потребляемая мощность, и кроме того, двигатель способен развивать в два раза больший крутящий момент.
Для изменения направления вращения вала двигателя необходимо формировать указанные последовательности в обратном порядке.

Таблица 2
№ шага DO D1 D2 D3
1 1
2 1
3 1
4 1
Таблица 3
№ шага DO D1 D2 D3
1 1
2 1 1
3 1
4 1 1
5 1
6 1 1
7 1
8 1

Ниже приведен короткий пример программы для Turbo С, работающей в операционной системе MS-DOS. Эта программа заставляет шаговый двигатель вращаться в прямом направлении, в режиме полного угла на один шаг.

Перевод с английского Михаила Голубцова.

Подпишитесь на наши новости

Получайте первыми актуальную информацию от ООО «Электропривод»

Источник

Поделиться с друзьями