Простой в изготовлении контроллер шагового двигателя из старых деталей. Управляем шаговыми движками и DC моторами, L298 и Raspberry Pi Управление шаговым двигателем своими руками

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

Шаговые двигатели являются частью класса моторов, известных как безщеточные двигатели. Обмотки шагового двигателя являются частью статора. На роторе расположен постоянный магнит или, для случаев с переменным магнитным сопротивлением, зубчатый блок из магнитомягкого материала. Все коммутации производятся внешними схемами. Обычно система мотор — контроллер разрабатывается так, чтобы была возможность вывода ротора в любую, фиксированную позицию, то есть система управляется по положению. Цикличность позиционирования ротора зависит от его геометрии.

Типы шаговых двигателей

Существуют три основных типа шаговых двигателей: переменной индуктивности, двигатели с постоянными магнитами, и гибридные двигатели.

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

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

Гибридный мотор — это сочетание двух предыдущих. У его намагниченного центрального вала имеется два набора зубов для двух магнитных полюсов, которые затем выстраиваются в линию с зубами вдоль электромагнитов. В связи с двойным набором зубов на центральном валу, гибридный двигатель имеет наименьший доступный размер шага и поэтому является одним из наиболее популярных типов шаговых двигателей.

Также существует ещё два типа шаговых двигателей: униполярные и биполярные . На фундаментальном уровне, эти два типа работать точно так же; электромагниты включены в последовательном виде, заставляя центральный вал двигателя вращаться.

Но униполярный шаговый двигатель работает только с положительным напряжением, а биполярный шаговый двигатель имеет два полюса — положительный и отрицательный.

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

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

Разные шаговые двигатели могут иметь разное количество проводов, как правило, 4, 5, 6, или 8. 4-х проводные линии могут поддержать только биполярные шаговые двигатели, поскольку у них нет центрального провода.

5-ти и 6-ти проводные механизмы могут быть использованы как для однополярного, так и биполярного шагового двигателя, в зависимости от того, используется центральный провод на каждой из катушек или нет. 5-ти проводная конфигурация подразумевает, что центральные провода на два комплекта катушек соединены внутри между собой.

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

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

Полшага . Для вращения центрального вала, первый электромагнит находится под напряжением, как первый шаг, затем второй также под напряжением, а первый все еще работает на второй шаг. При третьем шаге выключается первый электромагнит и четвертый шаг — поворот на третий электромагнит, а второй электромагнит по-прежнему работает. Этот метод использует в два раза больше шагов, чем полный шаг, но он также имеет меньший крутящий момент.

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

Схема подключения шаговых двигателей

Чтобы управлять шаговым двигателем необходим контроллер . Контроллер — схема, которая подает напряжение к любой из четырех катушек статора. Схемы управления достаточно сложны, по сравнению с обычными электромоторчиками, и имеют много особенностей. Подробно рассматривать тут мы их не будем, а просто приведём фрагмент популярного контроллера на ULN2003A .

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

Большинство на начальном этапе останавливается на выборе покупного (чаще всего — китайского) контроллера для шаговых двигателей, потому как это экономит время. Но уже после того, как станок готов и запущен, начинает закрадываться ощущение, что что-то не то… Чего-то не хватает или что-то сделано не правильно, или не доделано… Появляется некоторое недовольство, вопросы, связанные с точностью станка с ЧПУ. Люди начинают долго и мучительно читать форумы в поисках волшебного рецепта исцеления своего родного станочка от постоянного непопадания «в десятку» (имеются в виду десятые доли миллиметра, которые должен стабильно отрабатывать даже самый пластилиновый станок с ЧПУ, сделанный своими руками).

Моя бабушка всегда говорит: «Где узко, там и рвется». И так действительно происходит! Это же справедливо и для основы основ станка с ЧПУ — механизма линейного перемещения и электроники управления, а именно — контроллера шагового двигателя. О какой точности можно говорить, если человек поставил дешевый китайский контроллер, включил на нем микрошаг 1/8 или даже 1/16 и пытается выдавить из станка микронные перемещения?

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

Первое, что я хочу получить от своего контроллера шагового двигателя — это калиброванный микрошаг, который бы настраивался под конкретный экземпляр шагового двигателя. О нелинейности характеристик шаговых двигателей я уже писал в своей статье про и . Если вам лень перейти по ссылке, то вкратце скажу, что в режиме микрошага вы посылаете двигателю команду повернуться на 1/8 шага (к примеру), а он поворачивается вообще не известно на сколько или вообще не поворачивается! Все это как раз из-за нелинейности характеристики шагового двигателя. Вот почему нельзя использовать микрошаговый режим в обычных китайских контроллерах для повышения точности (разрешающей способности) перемещений своего станка с ЧПУ!

Кто-то, возможно, задастся вопросом — откуда берется эта нелинейность? А все дело в том, что на самом деле шаговый двигатель вообще не предназначен для работы в режиме микрошага ! Шаговый двигатель предназначен только для того, чтобы шагать — ать, два! Это мы — ЧПУшники от своей голытьбы решили привнести в мир цифрового двигателя (двигателя с конечными состояниями) немного аналоговости и придумали «микрошаг», в котором шаговый двигатель «зависает» в некотором промежуточном состоянии между двумя шагами. А производители контроллеров радостно подхватили эту фишку и преподносят микрошаг, как некий стандарт де-факто! И впаривают свои контроллеры невдумчивым потребителям.

Если вы — «счастливый» обладатель контроллера с микрошагом, то сказанное мной выше вы сможете сами очень легко проверить по методу лазерной калибровки, описанному мной выше в статье про калибровку шагового двигателя. Достаточно снять со станка шаговик, приделать к нему лазерную указку, включить в контроллере режим микрошага (хотя он, конечно же, у вас включен!) и подавать ему на вход импульсы STEP. Можно прямо из Mach3 или LinuxCNC, выбрав самую минимальную подачу в ручном режиме или задавая микро-перемещения через G-коды. После каждого микрошага делайте отметки на листе бумаги, закрепленному на стене скотчем, в том месте, куда светит луч лазера. Уже после нескольких микрошагов, вы заметите, что между насечками получилось ну просто неприлично разное расстояние!

Закончим на этом ругать производителей. Они на самом деле ничего плохого не делают. Люди хотели микрошаг — люди его получили! Сосредоточимся лучше на том, чего на самом деле хотели получить конечные пользователи от своего контроллера шагового двигателя? А хотели они получить не деление управляющего шаговыми двигателями сигнала на 8, на 16 и т.д., а деление угла поворота шагового двигателя на указанные делители! Но какое же для этого нужно подавать управляющее напряжение? Отвечу однозначно — хрен его знает! Поясню… Дело в том, что разные производители делают разные двигатели, применяют разные технологии с разным качеством и разной погрешностью. И получается так, что все шаговые двигатели разные! Даже в пределах одного типа и одной партии. Легла где-то в обмотке шагового двигателя проволочка слегка не на ту сторону — характеристика поменялась! У одного двигателя X витков, у другого двигателя X+Y витков в обмотке — опять характеристики разные. Ну и так далее — до фанатизма

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

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

Схема моего контроллера будет очень проста. Силовыми элементами, непосредственно управляющими обмотками двигателя, будут являться ключевые MOSFET-транзисторы, подключенные в виде Н-моста. Ключами будет управлять микроконтроллер. Никаких дорогостоящих микросхем-драйверов в моей схеме не будет. Вместо них будет парочка ферритовых колечек из сгоревших энергосберегающих ламп, которые отлично подходят для управления затворами MOSFET-транзисторов. В общем, я стараюсь сделать контроллер шагового двигателя доступным для повторения в домашних условиях. Также одним из его достоинств будет являться высокая ремонтопригодность (например, если сгорит какой-либо MOSFET-транзистор в силовой части, то стоимость замены составит ~20-30 рублей).

Слева представлена схема управления затвором силового MOSFET-ключа моего контроллера шаговых двигателей. Как видно, управление затвором осуществляется через повышающий импульсный трансформатор на ферритовом кольце. Повышающий трансформатор нужен, чтобы силовой ключ полностью открывался от 5-тивольтового сигнала управления, поступающего с выхода микроконтроллера. Для полного гарантированного открытия силовым MOSFET-ам обычно требуется от 10 вольт (более детально характеристику MOSFET-а можно посмотреть на графиках в его datasheet). Особенность такого включения заключается в том, что емкость затвора MOSFET используется в режиме памяти, т.е. при прохождении открывающего импульса через диод D1, транзистор будет открыт сколь угодно долго до тех пор, пока его не закроет открывшийся транзистор Q2, разрядив емкость затвора на «землю». Благодаря такой схеме при управлении ШИМ-сигналом (PWM) удается получить до 100% глубины модуляции (в англоязычных источниках — duty circle или «цикл загрузки»). В стандартной же схеме включения трансформатора затвора (GDT — gate drive transformer), когда положительный импульс открывает MOSFET, а следующий за ним отрицательный импульс восстановления разряжает емкость затвора, удается получить лишь менее 50% периода ШИМ-сигнала.

Программа управления шаговым двигателем

Программа управления шаговым двигателем может быть условно разделена на несколько взаимосвязанных функциональных блоков. Подробнее об этих блоках и о их работе я постараюсь написать в ближайшее время. Следите за обновлениями — проект находится в активной разработке

Written By: . Tagged: , .

Post navigation

  • Драйвер шагового двигателя - электронное устройство, которое заставляет "шагать" по . Стандартом де-факто в области управления ШД являются . STEP это сигнал шага, DIR это сигнал направления вращения, ENABLE это сигнал включения драйвера.

    Более научное определение - драйвер шагового двигателя это электронное силовое устройство, которое на основании цифровых сигналов управления управляет сильноточными/высоковольтными обмотками шагового двигателя и позволяет шаговому двигателю делать шаги (вращаться).

    Управлять ШД намного сложнее чем обычным коллекторным двигателем - нужно в определенной последовательности переключать напряжения в обмотках с одновременным контролем тока. Поэтому для управления ШД разработаны специальные устройства - драйверы ШД. Драйвер ШД позволяет управлять вращением ротора ШД в соответствии с сигналами управления и электронным образом делить физический шаг ШД на более мелкие дискреты.

    К драйверу ШД подключается источник питания, сам ШД (его обмотки) и сигналы управления. Стандартом по сигналам управления является управление сигналами STEP/DIR или CW/CCW и сигнал ENABLE.

    Протокол STEP/DIR:

    Сигнал STEP - Тактирующий сигнал, сигнал шага. Один импульс приводит к повороту ротора ШД на один шаг (не физический шаг ШД, а шаг выставленный на драйвере - 1:1, 1:8, 1:16 и т.д.). Обычно драйвер отрабатывает шаг по переднему или заднему фронту импульса.

    Сигнал DIR - Потенциальный сигнал, сигнал направления. Логическая единица - ШД вращается по часовой стрелке, ноль - ШД вращается против часовой стрелки, или наоборот. Инвертировать сигнал DIR обычно можно либо из программы управления или поменять местами подключение фаз ШД в разъеме подключения в драйвере.

    Протокол CW/CCW:

    Сигнал CW - Тактирующий сигнал, сигнал шага. Один импульс приводит к повороту ротора ШД на один шаг (не физический шаг ШД, а шаг выставленный на драйвере - 1:1, 1:8, 1:16 и т. д.) по часовой стрелке. Обычно драйвер отрабатывает шаг по переднему или заднему фронту импульса.

    Сигнал CW - Тактирующий сигнал, сигнал шага. Один импульс приводит к повороту ротора ШД на один шаг (не физический шаг ШД, а шаг выставленный на драйвере - 1:1, 1:8, 1:16 и т. д.) против часовой стрелки. Обычно драйвер отрабатывает шаг по переднему или заднему фронту импульса.

    Сигнал ENABLE - Потенциальный сигнал, сигнал включения/выключения драйвера. Обычно логика работы такая: логическая единица (подано 5В на вход) - драйвер ШД выключен и обмотки ШД обесточены, ноль (ничего не подано или 0В на вход) - драйвер ШД включен и обмотки ШД запитаны.

    Драйверы ШД могут иметь дополнительные функции:

    Контроль перегрузок по току.

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

    Контроль переполюсовки при подключении сигналов управления и питающих напряжений.

    Режим автоматического снижения тока обмотки при простое (отсутствии сигнала STEP) для снижения нагрева ШД и потребляемого тока (режим AUTO-SLEEP).

    Автоматический компенсатор среднечастотного резонанса ШД. Резонанс обычно проявляется в диапазоне 6-12 об/сек, ШД начинает гудеть и ротор останавливается. Начало и сила резонанса сильно зависит от параметров ШД и его механической нагрузки. Автоматический компенсатор среднечастотного резонанса позволяет полностью исключить резонирование ШД и сделать его вращение равномерным и устойчивым во всем диапазоне частот.

    Схему изменения формы фазовых токов с увеличением частоты (морфинг, переход из режима микрошага в режим шага при увеличении частоты). ШД способен отдать заявленный в ТХ момент только в режиме полного шага, поэтому в обычном драйвере ШД без морфинга при использовании микрошага ШД работает на 70% от максимальной мощности. Драйвер ШД с морфингом позволяет получить от ШД максимальную отдачу по моменту во всем диапазоне частот.

    Встроенный генератор частоты STEP – удобная функция для пробного запуска драйвера без подключения к ПК или другому внешнему генератору частоты STEP. Также генератор будет полезен для построения простых систем перемещения без применения ПК.

    Итак, задумывая драйвер на полевиках для биполярников, я и не думал что тема вызовет такой интерес и придется писать маленькую статью по сборке и настройке. Здесь будет рассматриваться драйвер как отдельный блок. Т.к. я использую блочную конструкцию. Т.е. три драйвера, интерфейсная плата, блок питания. Во первых при выходе из строя одного драйвера, просто меняется драйвер на запасной, а во вторых (и главное) планируется модернизация, мне проще снять один драйвер, и поставить модернизируемый вариант для обкатки. «Одноплатник» это уже развитие темы, и на вопросы по настройке ИБП я думаю с удовольствием ответит Dj _ smart , а также дополнит и поправит мой труд. А теперь к делу…

    Пункт первый (набившим плату можно не читать J ). После травления, лужения, и сверловки, внимательно осмотрите всю плату на предмет косяков. Сопли, протравленные дорожки, и т.д. могут серьезно обломать весь кайф. Далее набиваем плату, сначала все перемычки, затем сопротивления, диоды, панели, емкости и биполярные транзисторы. Хочу обратить особое внимание на Ваше внимание, извините за… Не ленитесь перед впайкой проверить деталь на исправность. Прозвонка иногда спасает от дыма… Я зная цветовую кодировку резисторов на ура, подкалывался несколько раз, причем со спец. эффектами. Когда используешь резисторы из загашников которые годами выпаивались из всего что под руку попадет, забываешь, что при нагреве красный может стать оранжевым, а оранжевый - желтым… Впаиваем провода питания +5В, степ, GND , и провода контроля Vref . Примерно вот так это выглядит:

    Пункт второй (настраиваем режимы работы и удержания). 555 я лично впаиваю в плату, кто поставил панель, значит втыкаем, блок индикации должен быть отключен. Подстроечники на середину. Вывод степ замыкаем на общий (раб. режим). Прозваниваем цепь +5В и если нет короткого, включаем питание. Тестер подключен к контрольным точкам Vref (молодец Dj _ smart , предусмотрел на плате), если номиналы подстроечников и сопротивления между ними соответствуют схеме, то подстроечником раб. режима можно регулировать напряжение около 0 - 1В т.е. ток 0 - 5А. Настроим на 1А. Тут все просто. R изм. у нас 0,2 Ом. Нам нужен 1А. 0,2х1=0,2В. Т.е. если мы установим Vref - 0,2В, ток в обмотке будет 1А. Если нам нужен ток в обмотке скажем 2,5А, то Vref =0,2х2,5=0,5В.

    Короче мы выставили 0,2В.

    Теперь размыкаем степ и общ. Если все элементы в норме и по схеме, то после размыкания примерно через полсекунды Vref снизится вдвое (если второй подстроечник посередине) Настраиваем им Vref удержания. У меня 50 проц. от рабочего:

    Главное обратите внимание на обязательную задержку при переключении. При замыкании степ на общий, мгновенно должен включаться рабочий режим, а при размыкании уходить на удержание с задержкой 0.5с. Если задержки нет ищите проблемы, иначе при работе будут не хилые глюки. Если не заводится, идите в тему форума, не устраивайте пожаров J .

    Пункт третий (настраиваем блок индикации). Печатка разведена под 315-361, как и у Dj _ smarta тоже мешок, надо куда то паять… Но в принципе туда можно паять любую пару, из наших я испытывал 502 - 503, 3102 - 3107, все пашет, только будьте внимательны с цоколевкой! Если все правильно впаяно и рабочее, то работает без проблем. Индикация вносит небольшую корректировку в Vref , так что после подключения индикации, окончательно отрегулируйте ток под свой ШД (лучше для начала 70% от номинального). Фотки как горят светодиоды делать не стал J .

    Пункт четвертый, важный (297) Выключив питание втыкаем 297 на свое место. Еще раз проверяем монтаж, и элементы обвязки, если все ОК (при любом сомнении проверяем дважды) врубаем питание. Проверяем осциллографом сигнал на первой ноге, он такой:

    Либо на 16 ноге, он такой:

    Это означает что шим запустился, счастливчики имеющие частотомер могут померить частоту, она очень приблизительно должна соответствовать 20кГц.

    ВНИМАНИЕ!!! Это важно!!! Даже если шим не запустится, логическая часть 297 будет работать, т.е. при подключении нагрузки все сигналы пойдут… Но прикиньте 24В без шима на ШД 2Ом. Так что важно убедиться в запуске генератора микросхемы.

    Пункт пятый. Опять выключаем питание и вставляем IR , впаиваем полевики. При использовании ШД с током обмотки более 2,5А, необходимо полевики вынести на радиатор. Обратите внимание при впайке диодов, они могут различаться по меткам. Мне правда не встречалось (у меня в перемешку 522 и 1 N 4148 (аналог) у них цоколевка совпадает) Но учитывая что людям IR

    В этой статье я опишу весь цикл изготовления драйвера шагового электромотора для экспериментов. Это не конечный вариант, он рассчитан на управление одним электромотором и необходим только для исследовательских работ, схема конечного драйвера шагового двигателя будет представлена в отдельной статье.

    Для того чтобы изготовить контроллер шагового двигателя, необходимо понять принцип работы самих шаговый электрических машин и чем они отличается от других типов электромоторов. А разновидностей электрических машин существует огромное множество: постоянного тока, переменного тока. Электродвигатели переменного тока делятся на синхронные и асинхронные. Описывать каждый тип электродвигателей я не стану так-как это выходит за рамки данной статьи, скажу лишь что каждый тип двигателя имеет свои преимущества и недостатки. А что же такое шаговый электродвигатель и как им управлять?

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

    А на этой картинке показана таблица истинности и диаграмма работы шаговика в полношаговом режиме. Существуют еще и другие режимы работы шаговых двигателей (полушаговый, микрошаговый и др.)

    Получается если повторять эту последовательность сигналов ABCD можно вращать ротор электромотора в одну сторону.
    А как вращать ротор в другую сторону? Да очень просто, нужно изменить последовательность сигналов с ABCD на DCBA.
    А как поворачивать ротор на конкретный заданный угол, например 30 градусов? У каждой модели шагового электромотора есть такой параметр как число шагов. У шаговиков которые я вытащил из матричных принтеров этот параметр 200 и 52, т.е. чтобы совершить полный оборот 360 градусов одним двигателям нужно пройти 200 шагов а другим 52. Получается чтобы повернуть ротор на угол 30 градусов, нужно пройти:
    -в первом случае 30:(360:200)=16,666... (шагов) можно округлить до 17 шагов;
    -во втором случае 30:(360:52)=4,33... (шага), можно округлить до 4 шагов.
    Как видите есть достаточно большая погрешность, можно сделать вывод что чем больше шагов у мотора тем меньше погрешность. Погрешность можно уменьшать если использовать полушаговый или микрошаговый режим работы или механическим способом - использовать понижающий редуктор в этом случае страдает скорость движения.
    Как управлять скоростью вращения ротора? Достаточно изменить длительность импульсов подаваемых на входы ABCD, чем длиннее импульсы по оси времени, тем меньше скорость вращения ротора.
    Полагаю этой информации будет достаточно чтобы иметь теоретическое представление о работе шаговых электромоторов, все остальные знания можно будет получить экспериментируя.
    И так перейдем к схемотехнике. Как работать с шаговым двигателем мы разобрались, осталось подключить его к Arduino и написать управляющую программу. К сожалению напрямую подключить обмотки мотора к выходам нашего микроконтроллера невозможно по одной простой причине - нехватка мощности. Любой электромотор пропускает через свои обмотки достаточно большой ток, а к микроконтроллеру можно подключить нагрузку не более 40 mA (параметры ArduinoMega 2560) . Что же делать если есть необходимость управлять нагрузкой например 10A да еще и напряжением 220В? Эту проблему можно решить если между микроконтроллером и шаговым двигателем интегрировать силовую электрическую схему, тогда можно будет управлять хоть трехфазным электромотором который открывает многотонный люк в ракетную шахту:-). В нашем случае люк в ракетную шахту открывать не нужно, нам нужно всего лишь заставить работать шаговый мотор и в этом нам поможет драйвер шагового двигателя. Можно конечно купить готовые решения, на рынке их очень много, но я буду делать свой собственный драйвер. Для этого мне понадобятся силовые ключевые полевые транзисторы Mosfet, как я уже говорил эти транзисторы идеально подходят для сопряжения Arduino с любыми нагрузками.
    На рисунке ниже представлена электрическая принципиальная схема контроллера шагового двигателя.

    В качестве силовых ключей я применил транзисторы IRF634B максимальное напряжение исток-сток 250В, ток стока 8,1А, этого более чем достаточно для моего случая. Со схемой более менее разобрались будем рисовать печатную плату. Рисовал в встроенном в Windows редакторе Paint, скажу это не самая лучшая затея, в следующий раз буду использовать какой-нибудь специализированный и простой редактор печатных плат. Ниже представлен рисунок готовой печатной платы.

    Далее это изображение в зеркальном отражении распечатываем на бумаге при помощи лазерного принтера. Яркость печати лучше всего сделать максимальной, а бумагу нужно использовать не обычную офисную а глянцевую, подойдут обычные глянцевые журналы. Берем лист и печатаем поверх имеющегося изображения. Далее получившуюся картинку прикладываем к заранее подготовленному куску фольгированного стеклотекстолита и хорошенько проглаживаем утюгом в течении 20 минут. Утюг нужно нагреть до максимальной температуры.
    Как подготовить текстолит? Во первых его нужно отрезать по размеру изображения печатной платы (при помощи ножниц по металлу или ножовкой по металлу), во вторых зашкурить края мелкой наждачной бумагой, чтобы не осталось заусенцев. Также необходимо пройтись наждачкой по поверхности фольги, снять окислы, фольга приобретет ровный красноватый оттенок. Далее поверхность обработанную наждачной бумагой нужно протереть ваткой смоченной в растворитель (используйте 646 растворитель он меньше воняет).
    После прогрева утюгом, тонер с бумаги запекается на поверхность фольгированного стеклотекстолита в виде изображения контактных дорожек. После этой операции плату с бумагой необходимо остудить до комнатной температуры и положить в ванночку с водой примерно на 30 минут. За это время бумага раскиснет и ее нужно аккуратно скатать подушечками пальцев с поверхности текстолита. На поверхности останутся ровные черные следы в виде контактных дорожек. Если у вас не получилось перенести изображение с бумаги и у вас есть огрехи, тогда следует смыть тонер с поверхности текстолита растворителем и повторить все заново. У меня все получилось с первого раза.
    После получения качественного изображения дорожек, необходимо вытравить лишнюю медь, для этого нам понадобится травильный раствор который мы приготовим сами. Раньше для травления печатных плат я использовал медный купорос и обычную поваренную соль в соотношении на 0,5 литра горячей воды по 2 столовые ложки с горкой медного купороса и поваренной соли. Все это тщательно размешивалось в воде и раствор готов. Но в этот раз попробовал иной рецепт, очень дешевый и доступный.
    Рекомендуемый способ приготовления травильного раствора:
    В 100 мл аптечной 3% перекиси водорода растворяется 30 г лимонной кислоты и 2 чайные ложки поваренной соли. Этого раствора должно хватить для травления площади 100 см2. Соль при подготовке раствора можно не жалеть. Так как она играет роль катализатора и в процессе травления практически не расходуется.
    После приготовления раствора, печатную плату необходимо опустить в емкость с раствором и наблюдать за процессом травления, тут главное не передержать. Раствор съест непокрытую тонером поверхность меди, как только это произойдет плату необходимо достать и промыть холодной водой, далее ее нужно просушить и снять с поверхности дорожек тонер при помощи ватки и растворителя. Если в вашей плате предусмотрены отверстия для крепления радиодеталей или крепежа, самое время просверлить их. Я опустил эту операцию по причине того что это всего лишь макетный драйвер шагового двигателя, предназначенный для освоения новых для меня технологий.
    Приступаем к лужению дорожек. Это необходимо сделать чтобы облегчить себе работу при пайке. Раньше я лудил при помощи припоя и канифоли, но скажу это "грязный" способ. От канифоли много дыма и шлака на плате который нужно будет смывать растворителем. Я применил другой способ, лужение глицерином. Глицерин продается в аптеках и стоит копейки. Поверхность платы необходимо протереть ваткой смоченной в глицерине и наносить припой паяльником точными мазками. Поверхность дорожек покрывается тонким слоем припоя и остается чистой, лишний глицерин можно удалить ваткой или промыть плату в воде с мылом. К сожалению у меня нет фотографии полученного результата, после лужения, но получившееся качество впечатляет.
    Далее необходимо припаять все радиодетали на плату, для пайки SMD компонентов я использовал пинцет. В качестве флюса использовал глицерин. Получилось очень даже аккуратно.
    Результат налицо. Конечно после изготовления плата выглядела лучше, на фото она уже после многочисленных экспериментов (для этого она и создавалась).



    Итак наш драйвер шагового двигателя готов! Теперь переходим к самому интересному к практическим экспериментам. Припаиваем все провода подключаем источник питания и пишем управляющую программу для Arduino.
    Среда разработки Arduino богата на различные библиотеки, для работы с шаговым двигателем предусмотрена специальная библиотека Stepper.h, ее мы и будем использовать. Как пользоваться средой разработки Arduino и описывать синтаксис языка программирования я не стану, эту информацию вы можете посмотреть на сайте http://www.arduino.cc/ , там же описание всех библиотек с примерами в том числе и описание Stepper.h.


    Листинг программы:
    /*
    * Тестовая программа для шаговика
    */
    #include
    #define STEPS 200

    Stepper stepper(STEPS, 31, 33, 35, 37);

    void setup()
    {
    stepper.setSpeed(50);
    }

    void loop()
    {
    stepper.step(200);
    delay(1000);
    }

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