Однополюсный драйвер шагового двигателя: схема, печатные платы

Модуль управления биполярным («двухфазным») шаговым двигателем БУШД-01N.04-02

Продолжаю цикл заметок «проекты-малыши»

В данной заметке будет рассмотрена одна из возможных реализаций модуля управления биполярным («двухфазным») шаговым двигателем (ШД) на базе связки микросхем L297/1 и L298N:

По весне зашел ко мне один мой хороший товарищ. У товарища появилась идея – сделать себе сверлильно/гравировально/фрезерный станок. Он практически всё уж&#x301е нашел – и движки, и сверла/фрезы, и даже подходящую станину для станка. Не хватало только узлов для управления ШД. Ну и, собственно, просьба товарища заключалась в следующем – сделай мне платы управления двигателями для моего будущего станка.

Поскольку движки он нашел биполярные (с четырьмя провод&#x301ами на «выходе»), для управления ШД предполагалось использовать широко распространенную микросхему L298N (ну и L297 – в качестве контроллера). И на мой робкий вопрос («А на хера городить что-то новое, когда в Интернете навалом готовых решений по теме, а лучше вообще соорудить схему с МК») последовал не менее робкий ответ: «Хочется сделать так, как мне надо, а искать соответствующую реализацию – с ума сойдешь, да и не факт, что найдешь». Ну а поскольку товарищ действительно хороший – решил-таки пойти у него на поводу и развести плату под именно его н&#x301ужды. В результате родилась такая вот схема:

Как видно, схема практически полностью передрана с документации (ага, документации – привет treasure, я помню твои нарекания:) ) на L297/L298. Не вижу особого смысла подробно описывать здесь принципы работы данной связки, так как этой теме посвящена далеко не одна HTML-страница (про виды ШД и принципы управления ими также есть хорошая статья (хорошая статья также приаттачена к заметке)). Однако, в общих чертах, всё-таки поясню.

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

Суть сей связки – собираем драйвер в соответствии с документацией и получаем возможность:

— крутить биполярные движки (до 46В и 2А на фазу, что по прошлым временам весьма и весьма неплохо);
— устанавливать скорость кручения;
— устанавливать направление кручения;
— устанавливать максимальный ток обмотки ШД;
— устанавливать различные режимы вращения ШД.

Повторю, что для этого не надо никаких программаторов, чтобы прошить какой-либо МК – все функции управления наглухо встроены в L297. А чип L298 – и вовсе безмозглый, это просто драйвер, позволяющий преобразовывать слаботочные логические сигналы (0В/5В) от LM297 в сигналы/цепи управления непосредственно обмотками двигателя (46В/2А).

Как видно из стандартной схемы, по линиям A, B, C, D, INH1 и INH2 микросхема L297 управляет ШД, по линиям SENSE_1 и SENSE_2 – считывает ток обмотки двигателя. На остальные выводы L297 подаются питание и управляющие TTL-сигналы. В данной реализации задействованы следующие линии управления работы драйвером:

— CLOCK (CLK, pin 18): по этой линии передается тактовая частота вращения ротора двигателя;

— CW/CCW (DIR, pin 17): по этой линии задается направление вращения ротора ШД (условно – при лог. «1», присутствующей на данном входе, ротор ШД будет вращаться по часовой стрелке, при лог. «0» — против часовой стрелки. Условно – потому, что направление вращения еще и напрямую зависит от того, как именно подключены к L298 обмотки ШД);

— Vref (pin 15): по этой линии осуществляется управление максимальным током обмотки ШД. Если напряжение на токосчитывающих резисторах R15 и R16 превысит напряжение на входе Vref, соответствующая обмотка отключается до того момента, пока напряжение на R15/R16 не станет меньше Vref;

— HALF/FULL (H/F, pin 19): по этой линии осуществляется выбор между полношаговым и полушаговым режимами вращения ротора ШД. Если на этом входе логический нуль – выбран полношаговый режим работы, если единица – полушаговый;

— CONTROL (CTRL, pin 11): по этой линии можно выбрать группу сигналов управления ШД, которые будут промодулированы («изрезаны») сигналом от внутренних «токовых» компараторов (это которые осуществляют контроль тока обмотки). Если на данной линии логический нуль – модулируются сигналы INH1 и INH2, если единица – сигналы A, B, C, D.

Всё вышесказанное – вещи довольно стандартные, не один раз описанные, и вопросов тут вроде как не должно возникать. Однако, в приведенной схеме есть и пара «нововведений». Во-первых, сигналы тактовой частот&#x301ы и выбора направления вращения ротора ШД подаются через оптроны, а это какая-никакая, а всё-таки гальваноразвязка. Во-вторых, в схему добавлены две оптопары для подключения концевых выключателей. То есть получается, что модуль управления двигателем вообще не связан гальванически с управляющим контроллером (не с LM297, а с, допустим, МК, который управляет L297). В-третьих, контроллер L297 питается от встроенного в модуль линейного стабилизатора на +5.0В, так что отдельной линии питания от пользователя не требует (правда, жрет он на пяти вольтах до 80мА на холостом ходу – об этом надо помнить). Ну и самое главное, с точки зрения товарища: джампер «DIVIDER» и элементы, с ним связанные. Здесь, наверное, надо остановиться поподробнее.

Если замкнуты контакты 2 и 3 джампера «DIVIDER», то схема работает в «обычном» режиме: цепочка R2+VD1 отключена и максимальный ток обмотки определяется только тем, в каком положении находится движок подстроечного резистора R5. А вот если замкнуть контакты 1 и 2 джампера «DIVIDER», тогда происходит следующее. Если на входе CLK присутствует логическая единица, то за счет диода VD1 резистор R2 оказывается отключен от R5, и максимальный ток обмотки по-прежнему определяется только подстроечным резистором. А когда на входе CLK присутствует логический нуль, вот тогда резистор R2 оказывается через диод VD1 посаженным на «массу», а это означает, что R2 шунтирует R5. Из-за этого напряжение на входе Vref уменьшается (на сколько – зависит от номиналов R2, R12 и типа диода VD1, при указанных на схеме номиналах напряжение на R5 уменьшится примерно в два раза), что влечет за собой уменьшение максимального тока обмотки. Идею эту товарищ у кого-то украл (у кого именно – не помнит), а использовать ее решил для автоматического уменьшения тока удержания обмотки в те моменты времени, когда движок не крутится.

Питание на схему подается через точки подключения 1 и 2 («плюс» и «масса» соответственно). Поскольку L297 питается от встроенного стабилизатора L7805, то диапазон напряжений питания составляет +7,5В…+30,0В. Еще раз напомню – L297 жрет неплохой ток, поэтому при напряжении питания более +12,0В на стабилизатор лучше повесить радиатор. Шаговый двигатель подключается к точкам 3-6. На плате точки 1-6 расположены таким образом, что для подачи питания и подключения ШД можно использовать обычные клеммники с шагом выводов, равным 5,0мм.

Концевые выключатели подключаются к разъему XP2 («LIMIT»). Ну а разъем XP1 («CONTROL») служит для связи модуля управления ШД и, например, микроконтроллера. Через этот разъем подается тактовая частота, сигнал выбора направления вращения ротора ШД, а также снимаются сигналы от концевых выключателей.

Под указанную схему была немедленно разведена и изготовлена печатная плата:

Как видно, плата получилась односторонняя, и разведена под дырочные элементы ([поправляет очки] под радиокомпоненты для установки и монтажа в отверстия), ибо место позволяло, а начинающим так будет проще. SMD-элемент ровно один – конденсатор C12. Помимо деталей, указанных на схеме, присутствуют также 4 проволочные перемычки J1-J4 (две по 20,32мм и две по 7,62мм). Под оптронами по идее должна быть профрезерована щель (это там, где «маска» отсутствует) для обеспечения «настоящей» гальваноразвязки. Однако, товарищ распорядился щель не делать, поскольку огромной разности потенциалов между модулем и управляющим контроллером у него заведомо не будет.

Ну и габаритные размеры платы вкупе с элементами коммутации и управления:

На сегодня всё. Желаю удачи при работе с шаговыми двигателями!

БУШД-01N.04-02.pdf – схема, плата в неизвестном масштабе и габаритные размеры модуля;
БУШД-01N.04-02_ФР.lay – плата, вариант для «шаблонщиков»;
БУШД-01N.04-02_ЛУТ.lay – плата, вариант для «утюжников».

Платы нарисованы в Sprint Layout 5.0 (бесплатная гляделка).

Однополюсный драйвер шагового двигателя: схема, печатные платы

Статьи / Схемы / Управление шаговыми двигателями – Драйвер шагового двигателя

Итак, задумывая драйвер на полевиках для биполярников, я и не думал что тема вызовет такой интерес и придется писать маленькую статью по сборке и настройке. Здесь будет рассматриваться драйвер как отдельный блок. Т.к. я использую блочную конструкцию. Т.е. три драйвера, интерфейсная плата, блок питания. Во первых при выходе из строя одного драйвера, просто меняется драйвер на запасной, а во вторых (и главное) планируется модернизация, мне проще снять один драйвер, и поставить модернизируемый вариант для обкатки. «Одноплатник» это уже развитие темы, и на вопросы по настройке ИБП я думаю с удовольствием ответит 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 с неправильной логикой работы попадаются, будьте внимательны. По цепям питания проверяем на коротыш, проверяем монтаж. Я сразу включал все питание, только вместо ШД припаивал соединенные встречно параллельно светодиоды:

Если они шагают, значит все ОК, подрубаем мотор, подключаем к ЛПТ или интерфейсной плате с опторазвязкой (кому как нравиться) и балдеем .

Данное описание не претендует на бестселлер, оно может дополняться и критиковаться но только по существу…

Проверяем L297 с помощью ТМ2

Короче суть прикола .

Шим у нас около 20кГц. Не услышим. Собираем на ТМ2 делитель на 2, при 10 кгц – уже будет пищать на всю. Вот схема

Вывод 3 соединяем с выводом 1 L297. Вывод 5 через конденсатор 0,01-0,1 мкф на наушник, второй конец наушника – на массу. Тэкс. Да, питание у неё – 14-я +5, 7-я – масса. Остальные ноги оставляем свободными.

Вы не можете скачивать файлы с нашего сервера схему и печатку от delta24

Обсуждение в закрытой части форума (только для постоянных пользователей, для получения доступа обращайтесь к delta24 )

Домашний CNC. Часть 1. Драйвер шагового двигателя для мини-станка с ЧПУ

Содержание / Contents

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

Задача построения станка обычно сводится к трем подзадачам — механика, электроника, программное обеспечение. Видимо и статьи придется писать тоже три.
Поскольку у нас журнал всё-таки практической электроники, начну с электроники и чуть-чуть с механики!

↑ Привод

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

↑ Двигатель (мотор)

В качестве двигателя для привода определил шаговый двигатель (ШД)
Почему шаговый? Что это вообще такое?
Двигатели есть переменного и постоянного тока, коллекторные и бесколлекторные, и так называемые «шаговые». В любом случае нам надо обеспечить какую-то точность позиционирования, например 0,01 мм. Как это сделать? Если двигатель имеет прямой привод — вал двигателя соединяют напрямую с винтом, то для обеспечения такой точности нужно повернуть его на некоторый угол. В данном случае, при шаге передачи 4 мм и желаемой точности перемещения 0,01 мм это… всего 1/400 оборота, или 360/400=0,9 градуса! Ерунда, возьмем обычный моторчик…

С «обычным» моторчиком без обратной связи никак не получится. Не вдаваясь в подробности, схема управления двигателем должна «знать», на какой угол повернулась ось. Можно конечно поставить редуктор — потеряем в скорости, и все равно без гарантии, без обратной связи вообще никак! На ось ставится датчик угла поворота. Такое решение надежное, но дорогое.

Альтернатива — шаговый двигатель (как он работает, почитайте сами). Можно считать, что за одну «команду» он повернет свою ось на определенный градус, обычно это 1,8 или 0,9 градуса (точность обычно не хуже 5%) — как раз то, что нужно. Недостаток такого решения — при большой нагрузке двигатель будет пропускать команды — «шаги» и может вообще остановиться. Вопрос решается установкой заведомо мощного двигателя. На шаговых двигателях и делается большинство любительских станочков.

↑ Выбираем шаговый двигатель

2 обмотки, с минимальным током, минимальной индуктивностью и максимальным моментом — то есть максимально мощный и экономичный двигатель.

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

Характеристики некоторых двигателей приведены в таблице:

Для небольшого станка с рабочим пространством размером 300×300х100 мм и легким фрезером вполне сгодятся двигатели с крутящим моментом 0,3Нм и выше. Оптимальным является ток от 1,5 до 2,5 Ампер , вполне подойдет FL42STH38-1684

↑ Драйвер шагового двигателя

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

Самое простое решение — источник заданного тока и две пары транзисторных ключей на каждую обмотку. И четыре защитных диода. И логическая схема чтобы менять направление. И… Такое решение обычно делают на микросхеме ULN2003A для двигателей с малым током, имеет много недостатков, не буду на них останавливаться.

Альтернатива — специализированные микросхемы «всё в одном» — с логикой, транзисторами и диодами защиты внутри (или снаружи). А еще такие микросхемы контролируют ток обмоток и регулируют его с помощью ШИМ-а, а так же могут реализовывать режим «полушаг», а некоторые режимы 1/4 шага, и 1/8 шага и т. д. Эти режимы позволяют повысить точность позиционирования, повысить плавность движения и снизить резонанс. Обычно достаточно режима «полушаг», что позволит повысить теоретическую точность линейного позиционирования (в моем примере до 0,005 мм).

Что внутри микросхемы драйвера шагового двигателя? Блок логики и управления, источники питания, ШИМ со схемами формирования момента и времени коммутации обмоток, выходные ключи на полевых транзисторах, компараторы обратной связи — ток контролируется по падению напряжения на резисторах (Rs) в цепи питания обмоток. Ток двигателя задается опорным напряжением.

Для реализации этих функций существуют и другие схемные решения, например, с использованием микроконтроллеров PIC или ATMEGA (опять же с внешними транзисторами и защитными диодами). На мой взгляд, они не обладают значительным преимуществом перед «готовыми» микросхемами и я их в данном проекте использовать не буду.

↑ Богатство выбора

Из готовых — наиболее распространённые и недорогие драйверы на микросхемах Allegro A4988 (до 2А), Texas Instruments DRV8825 (до 2,5А).
Поскольку модули изначально разрабатывались для использования в 3D принтерах типа Rep-rap проекта Arduino, они не являются законченными модулями (например, им нужно еще питание логики (+5V), которое подается с так называемой рампы (Ramp).

Еще есть решения на DRV8811 (до 1,9 А), A3982 (до 2 А), A3977 (до 2,5 А), DRV8818 (до 2,5 А) DRV8825 (до 2,5 А), Toshiba TB6560 (до 3 А) и другие.

Поскольку мне интересно что-то сделать самому, плюс появилась возможность «попробовать на вкус» микросхемы Allegro A3982 и A3977, решил сделать пару драйверов самостоятельно.

Готовые решения на A4988 не понравились, прежде всего, из-за миниатюризации размеров печатной платы в ущерб хорошему охлаждению. Типовое сопротивление открытых транзисторов у A4388 при токе 1,5А 0,32+0,43 Ом, плюс 0,1-0,22 Ома «измерительный» резистор — получается около 0,85 Ом. А таких каналов два, и хотя и работают они импульсно, но 2-3 Ватта тепла надо рассеивать. Ну не верю я в многослойную плату и малюсенький радиатор охлаждения — в даташите нарисована плата гораздо больших размеров.

Провода мотора нужно сделать короткими, драйвер устанавливать рядом с двигателем. Существует 2 технических решения в звукотехнике: длинный сигнальный кабель к усилителю + короткие провода к акустической системе, или короткий сигнальный кабель к усилителю + длинные провода, а акустической системе. Оба решения имеют свои плюсы и минусы. С моторами — так же. Я выбрал длинные провода управления и короткие провода к мотору.

Управляющие сигналы — «шаг» (step), «направление» (dir), «включение» (enable), индикация состояния сигналов управления. Некоторые схемы не используют сигнал «Enable», но это приводит в режиме простоя к ненужному нагреву и микросхемы и двигателя.

Одно питание 12-24 вольта, источник питания логики (+5B) — на плате. Размеры платы — достаточные для хорошего охлаждения, двухсторонняя печать с большой областью «меди», возможность приклеить на микросхему радиатор (применяемой для охлаждения памяти видеокарт).

↑ Драйвер ШД на микросхеме Allegro A3982

Напряжение питание силовое: 8…35 В Напряжение питание логики: 3,3…5 В Выходной ток (максимальный, зависит от режима и охлаждения): ±2 А Типовое сопротивление открытых транзисторов (при токе 1,5А): 0,33+0,37 Ом

↑ Драйвер ШД на микросхеме Allegro A3977

Напряжение питание силовое: 8…35 В Напряжение питание логики: 3,3…5 В Выходной ток (максимальный, зависит от режима и охлаждения): ±2,5 А Типовое сопротивление открытых транзисторов (при токе 2,5А): 0,33+0,45 Ом

↑ Схема и прототип


Проектировал в среде DipTrace. Драйвер A3982 включен по схеме из документации производителя. Включен режим «полушаг». Дополнительно для надежной работы сигналов управления и индикации применил микросхему логики 74НС14 (с триггерами Шмитта). Можно было сделать гальвано-развязку на оптронах, но для маленького станка я решил ее не делать. Схема на A3977 отличается только дополнительными джамперами режима шага и более мощным разъемом питания, пока в «железе» не реализована.

↑ Печатная плата

↑ Работа

Температуру корпуса микросхемы мерил пирометром — без радиатора она достигала 90-95 градусов (при токе обмоток 1,6А) — мне это не понравилось. С радиатором — 55-60 градусов — куда лучше! Вообще плата вся теплая — около 35 градусов.

Спасибо за внимание!
Продолжение следует…

↑ Файлы

Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.


Спасибо за внимание!
Игорь Котов, учредитель журнала «Датагор»

Даташит на микросхему Allegro A3982
▼ a3982.pdf 28/02/16 ⚖️ 303,14 Kb ⇣ 51

Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.


Спасибо за внимание!
Игорь Котов, учредитель журнала «Датагор»

ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ

Блог технической поддержки моих разработок

Драйверы шагового двигателя: униполярный, биполярный, L298N.

Как правило, логические сигналы для управления шаговым двигателем формирует микроконтроллер. Ресурсов современных микроконтроллеров вполне хватает для этого даже в самом ”тяжелом” режиме – микрошаговом.

Для подключения шаговых двигателей через слаботочные логические сигналы микроконтроллеров необходимы усилители сигналов – драйверы.

В функцию драйверов входит:

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

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

  • обеспечение быстрого нарастания тока при включении и быстрого спада при выключении;
  • уменьшение тока для фиксации положения остановленного двигателя;
  • защитные функции;
  • формирование тока и напряжения обмоток для микрошагового режима;
  • и многие другие.

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

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

Драйвер униполярного шагового двигателя.

В униполярном режиме могут работать двигатели, имеющие следующие конфигурации обмоток.

Напомню принцип управления униполярным шаговым двигателем. Четыре обмотки с общим проводом, подключенным к одному полюсу источника питания. Если другие выводы обмоток последовательно коммутировать к другому полюсу источника, то ротор двигателя будет вращаться.

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

Если последовательно замыкать ключи 1, 2, 3, 4, то ротор двигателя будет вращаться.

Схема драйвера униполярного шагового двигателя.

Практически ключи можно выполнить на биполярных транзисторах, но предпочтительнее использовать низкопороговые MOSFET транзисторы. Я применяю транзисторы IRF7341. Это MOSFET транзисторы с параметрами:

  • максимально допустимый ток 4 А;
  • предельное напряжение 55 В;
  • сопротивление в открытом состоянии 0,05 Ом;
  • порог включения 1 В;
  • выполнены в миниатюрном корпусе SO-8;
  • в корпусе два транзистора.

Крайне удобный вариант для использования в драйвере униполярного шагового двигателя.

  • Нет необходимости в радиаторах охлаждения ключей;
  • очень низкое падение напряжения на открытом транзисторе;
  • малые размеры;
  • всего два 8ми выводных корпуса для драйвера двухфазного шагового двигателя.

На биполярных транзисторах ключи с такими параметрами создать не возможно. Есть много других вариантов MOSFET транзисторов для ключей, например IRF7313 ( 6 А, 30 В, 0,029 Ом).

Схема ключа на MOSFET транзисторе для одной фазы выглядит так.

Ключ управляется непосредственно от микроконтроллера логическими уровнями KMOП или TTL ( 0 / +5 В). При управляющем сигнале высокого уровня (+5 В) ключ открыт, и через обмотку фазы идет ток. Диод шунтирует обмотку двигателя в обратном направлении. Он необходим для защиты транзистора от бросков напряжения самоиндукции при выключении фазы. Для управления двигателями на значительных скоростях вращения, лучше использовать высокочастотные диоды, например, FR207.

Вот фрагмент схемы подключения униполярного шагового двигателя к микроконтроллеру.

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

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

А это изображение платы контроллера униполярного шагового двигателя с PIC контроллером фирмы Microchip.

Простая плата с восьми разрядным микроконтроллером PIC18F2520 управляет:

  • двумя шаговыми двигателями с током фазы до 3 А;
  • двумя ШИМ ключами для электромагнитов;
  • считывает состояние 4х датчиков;
  • обменивается данными по сети с центральным контроллером.

Несмотря на простоту контроллера, реализованы следующие режимы управления:

  • полно-шаговый, одна фаза на полный шаг;
  • полно-шаговый, две фазы на полный шаг;
  • полу-шаговый;
  • фиксацию положения двигателя при остановке.

К достоинствам управления шаговым двигателем в униполярном режиме следует отнести:

  • простой, дешевый, надежный драйвер.
  • в униполярном режиме крутящий момент примерно на 40 % меньше по сравнению с биполярным режимом.

Драйвер биполярного шагового двигателя.

В биполярном режиме могут работать двигатели, имеющие любые конфигурации обмоток.

У биполярного двигателя по одной обмотке для каждой фазы. Обычно две обмотки AB и CD. В первых двух вариантах четыре обмотки соединяются так, что получается две. Обмотки по очереди подключаются к источнику питания в одной полярности, затем в другой.

Драйвер биполярного двигателя должен обеспечивать сложную коммутацию. Каждая обмотка:

  • подключается в прямой полярности к источнику напряжения;
  • отключается от источника напряжения;
  • подключается с противоположной полярностью.

Схема коммутации одной обмотки биполярного двигателя выглядит так.

Для обеспечения двух полярных коммутаций от одного источника питания требуется 4 ключа. При замыкании 1 и 2 ключей обмотка подключается к источнику питания в прямой полярности. Замыкание 3 и 4 ключей подает на обмотку обратную полярность напряжения.

Сложность драйвера биполярного шагового двигателя вызвана не только большим числом ключей ( 4 ключа на обмотку, 8 ключей на двигатель), но и:

  • сложное управление верхними ключами ( 1 и 4) от логических сигналов “привязанных” к земле;
  • проблемы со сквозными токами при одновременном открывании ключей одного плеча ( 1,3 или 2,4).

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

Схема драйвера биполярного шагового двигателя.

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

Схема достаточно простая. Проблема сквозных токов решается за счет резисторов 0.22 Ом в коммутируемых цепях. В момент коммутаций MOSFET транзисторов, верхний и нижний ключ оказываются одновременно открытыми на короткое время. Эти резисторы и ограничивают сквозной ток. К сожалению, они ограничивают и рабочий ток двигателя. Поэтому, несмотря на мощные транзисторы, драйвер по такой схеме можно использовать для токов коммутации не более 2 А. Схема не требует диодов для защиты от эдс самоиндукции обмоток, потому что эти диоды интегрированы в MOSFET транзисторы.

Гораздо удобнее и практичнее использовать интегральные драйверы биполярного шагового двигателя. Самым распространенным из них является микросхема L298N.

Драйвер биполярного шагового двигателя L298N.

Описания этой микросхемы на русском языке практически нет. Поэтому привожу параметры L298N достаточно подробно, по официальным материалам производителя этой микросхемы – компании STMicroelectronics (datasheet l298n.pdf).

L298N это полный мостовой драйвер для управления двунаправленными нагрузками с токами до 2 А и напряжением до 46 В.

  • Драйвер разработан для управления компонентами с индуктивными нагрузками, такими как электромагниты, реле, шаговые двигатели.
  • Сигналы управления имеют TTL совместимые уровни.
  • Два входа разрешения дают возможность отключать нагрузку независимо от входных сигналов микросхемы.
  • Предусмотрена возможность подключения внешних датчиков тока для защиты и контроля тока каждого моста.
  • Питание логической схемы и нагрузки L298N разделены. Это позволяет подавать на нагрузку напряжение другой величины, чем питание микросхемы.
  • Микросхема имеет защиту от перегрева на уровне + 70 °C.

Структурная схема L298N выглядит так.

Микросхема выполнена в 15ти выводном корпусе с возможностью крепления радиатора охлаждения.

Назначение выводов L298N.

1Sense AМежду этими выводами и землей подключаются резисторы – датчики тока для контроля тока нагрузки. Если контроль тока не используется, они соединяются с землей.
15Sense B
2Out 1Выходы моста A.
3Out 2
4VsПитание нагрузки. Между этим выводом и землей должен быть подключен низкоимпедансный конденсатор емкостью не менее 100 нФ.
5In 1Входы управления мостом A. TTL совместимые уровни.
7In 2
6En AВходы разрешения работы мостов. TTL совместимые уровни. Низкий уровень сигналов запрещает работу моста.
11En B
8GNDОбщий вывод.
9VssПитание логической части микросхемы (+ 5 В). Между этим выводом и землей должен быть подключен низкоимпедансный конденсатор емкостью не менее 100 нФ.
10In 3Входы управления мостом B. TTL совместимые уровни.
12In 4
13Out 3Выходы моста B.
14Out 4


Предельно допустимые параметры L298N.

2 А

ОбозначениеПараметрЗначение
VsНапряжение питания50 В
VssНапряжение питания логики7 В
Vi, VenНапряжение логических входов-0,3. 7 В
IoВыходной ток (для каждого канала)

  • не повторяющийся импульс 100 мкс
  • импульсы (80% включен, 20% выключен, включен 10 мс)
  • при постоянном токе
VsensНапряжение датчиков тока-1. 2,3 В
PtotМощность рассеивания (температура корпуса 75°C)25 Вт
TopРабочая температура кристалла-25. 130 °C
TstgТемпература хранения-40. 150 °C

Параметры расчетов тепловых режимов.

ОбозначениеПараметрЗначение
Tth j-caseТепловое сопротивление кристалл-корпус3 ºC/Вт
Tth j-ambТепловое сопротивление кристалл-окружающая среда35 ºC/Вт

Электрические характеристики драйвера L298N.

13 . 22 мА
50 . 70 мА
4 мА

24 . 36 мА
7 . 12 мА
6 мА

0,95. 1,35. 1,7 В
2 . 2,7 В

0,85. 1,2. 1,6 В
1,7 . 2,3 В

1,8 . 4,9 В

ОбозначениеПараметрЗначение
VsНапряжение питания (вывод 4)Vih+2.5 . 46 В
VssПитание логики4,5. 5 . 7 В
IsПотребляемый ток покоя (вывод 4)

  • Ven=H, Vi=L
  • Ven=H, Vi=H
  • Ven=L
IssПотребляемый ток покоя (вывод 9)

  • Ven=H, Vi=L
  • Ven=H, Vi=H
  • Ven=L
VilВходное напряжение низкого уровня
(выводы 5, 7, 10, 12, 6, 11)
-0,3 . 1,5 В
VihВходное напряжение высокого уровня
(выводы 5, 7, 10, 12, 6, 11)
2,3 . Vss В
IilВходной ток низкого уровня
(выводы 5, 7, 10, 12, 6, 11)
-10 мкА
IihВходной ток высокого уровня
(выводы 5, 7, 10, 12, 6, 11)
30 . 100 мкА
Vce sat (h)Напряжение насыщения верхнего ключа

  • при токе 1 А
  • при токе 2 А
Vce sat (l)Напряжение насыщения нижнего ключа

  • при токе 1 А
  • при токе 2 А
Vce satОбщее падение напряжения на
открытых ключах

  • при токе 1 А
  • при токе 2 А
VsensНапряжение датчиков тока
(выводы 1, 15)
-1 . 2 В
FcЧастота коммутаций25 . 40 кГц

Схема подключения шагового двигателя к микроконтроллеру с помощью драйвера L298N.

Диаграмма работы этой схемы в полношаговом режиме выглядит так.

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

По функциям это аналог контроллера описанного в главе про униполярные двигатели, только для биполярного. Он также собран на PIC контроллере фирмы Microchip и управляет двумя биполярными шаговыми двигателями с током фаз до 2 А. Функциональные возможности и режимы управления двигателем те же.

К достоинствам управления шаговым двигателем в биполярном режиме следует отнести:

  • крутящий момент примерно на 40 % больше по сравнению с униполярным режимом.
  • можно подключать шаговые двигатели с любой конфигурацией обмоток.

3d-принтер и ЧПУ станок в одном устройстве своими руками

Блог для тех, у кого чешутся руки и есть желание заниматься цифровой техникой и не только цифровой и не только техникой.

Страницы

воскресенье, 1 июня 2014 г.

3. Изготовление драйвера шагового двигателя (для экспериментов).

Получается если повторять эту последовательность сигналов 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 компонентов я использовал пинцет. В качестве флюса использовал глицерин. Получилось очень даже аккуратно.
Результат налицо. Конечно после изготовления плата выглядела лучше, на фото она уже после многочисленных экспериментов (для этого она и создавалась).

Листинг программы:

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

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

void setup()
<
stepper.setSpeed(50);
>

void loop()
<
stepper.step(200);
delay(1000);
>

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

Обзор драйвера шагового двигателя A4988

Автор: Сергей · Опубликовано 11.04.2019 · Обновлено 26.09.2019

Сегодня расскажу о драйвере A4988, данный драйвер подойдет тем, кто планирует создать свой собственный 3D-принтер или станок ЧПУ с управлением шаговым двигателям.

Технические параметры

► Напряжения питания: от 8 до 35 В
► Установка шага: 1, 1/2, 1/4, 1/8, 1/16
► Напряжение логики: 3 В или 5.5 В
► Защита от перегрева: Есть
► Максимальный ток на фазу: 1 А без радиатора, 2 А с радиатором.
► Габариты модуля: 20 мм х 15 мм х 10 мм
► Габариты радиатора: 9 мм х 5 мм х 9 мм

Общие сведения о драйвере A4988

Основная микросхема модуля это драйвер от Allegro — A4988, которая имеет небольшие размеры (всего 8 мм х 6 мм), хоть микросхема и маленькая, но она может работать с выходным напряжение до 35 В с током до 1 А на катушку без радиатора и до 2 А с радиатором (дополнительным охлаждением). Для управления шаговым двигателем, необходимо всего два управляющих контакта (по сравнению с L298N необходимо четыре), один используется для управления шагами, второй для управления вращения двигателем.
Драйвер позволяет использовать пять вариантов шага, полный шаг, полшага, четверть шага, восьмой шаг и шестнадцатый шаг.

Распиновка драйвера A4988:
На драйвере A4988 расположено 16 контактов, назначение каждого можно посмотреть ниже:

EN — включение и выключение модуля (0 — включен, 5 В — выключен).
MS1, MS2 и MS3 — выбор режима микро шаг (смотрите таблицу ниже).
RST — сброс драйвера.
SLP — вывод включения спящего режима, если подтянуть его к низкому состоянию драйвер перейдет в спящий режим.
STEP — управляющий вывод, при каждом положительном импульсе, двигатель делает шаг (в зависимости от настройки микро шага), чем быстрее импульсы, тем быстрее вращаться двигатель.
DIR — управляющий вывод, если подать +5 В двигатель будет вращается по часовой стрелке, а если подать 0 В против часовой стрелки.
VMOT & GND — питание шагового двигателя двигателя от 8 до 35 В (обязательное наличие конденсатора на 100 мкФ ).
2B, 2A, 1B, и 1A — подключение обмоток двигателя.
VDD & GND — питание внутренней логики от 3 В до 5,5 В.

Если не планируете использовать вывод RST необходимо подключить его к выводу SLP, чтобы подтянуть его к питанию, тем самым включить драйвер.

Настройка микрошага
Драйвер A4988 может работать микрошаговом режиме, то есть может подавать питание на катушки с промежуточным уровням. Например, если взять двигатель NEMA17 с шагом 1.8 или 200 оборотов, в режиме 1/4, двигатель будет выдавать 800 шагов за оборот
Дня настройки микрошагов, драйвер A4988 имеет три выхода, а именно MS1, MS2 и MS3. Установив соответствующие логические уровни для этих выводов, можно выбрать режим микрошага.

Вывода MS1, MS2 и MS3 в микросхеме A4988 подтянуты резистором к земле, поэтому, если не подключать их, двигатель будет работать в режиме полного шага.

Система охлаждения A4988
При интенсивной работе микросхемы A4988 начинает сильно греется и если температура превысит придельные значение, может сгореть. По документации A4988 может работать с током до 2 А на катушку, но на практике микросхема не греется если ток не превышает 1 А на катушку. Поэтому если ток выше 1 А необходимо устанавливать радиатор охлаждения, который идет в комплекте.

Настройка тока A4988
Перед использованием мотора нужно сделать небольшую настройку, необходимо ограничить максимальную величину тока, протекающего через катушки шагового двигателя и ограничить его превышение номинального тока двигателя, регулировка осуществляется с помощью небольшого потенциометра.
Существует два способа настройки:
1. Замерить ток, для этого возьмем амперметр и подключим его в разрыв любой из обмоток (двигатель должен работать в полношаговом режиме), так же, при настройки ток должен составлять 70% от номинального тока двигателя.
2. Расчет значение напряжения Vref, согласно документации на A4988, есть формула I_TripMax = Vref / (8 × Rs), из которой мы можем получить формулу.

Vref = I_TripMax x 8 x Rs

где,
I_TripMax — номинальный ток двигателя
Rs — сопротивление на резисторе.

В моем случаи на драйвере A4988 установлены резисторы Rs = 0,100 Ом (R100), а номинальный ток двигателя 17HS4401 равняется 1,7 А.

Vref = 1,7 х 8 х 0,100 = 1,36 В

Мы рассчитали максимальное значение для двигателя 17HS4401, но при таком напряжение двигатель будет греться в режиме ожидания, необходимо уменьшить это значение на 70%, то есть:

Vref х 0,7 = 0,952 В

Осталось только настроить, берем отвертку и вольтметр, плюсовой шуп вольтметра устанавливаем на потенциометр, а шуп заземления на вывод GND и выставляем нужное значение.

Подключение драйвера шагового двигателя A4988 к Arduino UNO

Необходимые детали:
Arduino UNO R3 x 1 шт.
► Драйвер шагового двигателя A4988 x 1 шт.
► Шаговый двигатель 17HS4401 x 1 шт.
► Комплект проводов DuPont 2.54 мм, 20 см x 1 шт.

Подключение:
Теперь, можно приступить к сборке схемы. Первым делом, подключаем VDD и GND к 5 В и GND на Arduino. Контакты DIR и STEP подключим к цифровым контактам 2 и 3 на Arduino. Подключение шагового двигатель к контактам 2B, 2A, 1A и 1B.

Предупреждение: Подключение или отключение шагового двигателя при включенном приводе может привести к его повреждению.

Затем необходимо подключить контакт RST к соседнему контакту SLEEP, чтобы включить драйвер. Так-же контакты выбора микрошага необходимо оставить не подключенными, чтобы работал режим полный микрошаг. Теперь осталось подключить питание двигателя к контактам VMOT и GND, главное не забудьте подключить электролитический конденсатор на 100 мкФ, в противном случаи при скачке напряжение, модуль может выйти из строя.

Программа:
Теперь можно приступки к программной части и начать управлять шаговым двигателем с помощью драйвера A4988, загружайте данный скетч в Arduino.

Читайте также:  Плата разработки PIC для RS485 и DMX512: схема, печатная плата
Ссылка на основную публикацию