Меню

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

ВАЖНО! Для того, что бы сохранить статью в закладки, нажмите: CTRL + D

Задать вопрос ВРАЧУ, и получить БЕСПЛАТНЫЙ ОТВЕТ, Вы можете заполнив на НАШЕМ САЙТЕ специальную форму, по этой ссылке >>>

Контроллер шагового двигателя в домашних условиях. Комментировать

Простой контроллер Шагового Двигателя из компьютерного барахла стоимостью

Началось мое станкостроение со случайной ссылки на немецкий станок за 2000DM, который на мой взгляд выглядел по детски, однако мог выполнять довольно много занятных функций. В тот момент, меня заинтересовала возможность рисовать платы (это было еще до появления в моей жизни ЛУТ).

В результате протяженных поисков в сети было найдено несколько сайтов посвященных этой проблеме, однако русскоязычных среди них не было ни одного (это было примерно 3 года назад). В общем, в конце концов, я нашел два принтера CM6337 (кстати их выпускал Орловский завод УВМ), откуда и выдрал униполярные шаговые двигатели (Dynasyn 4SHG-023F 39S, аналог ДШИ200-1-1). Параллельно с доставанием принтеров заказал и микросхемы ULN2803A(с буквой А – DIP корпус). Все собрал, запустил. Что получил, а получил дико греющиеся микросхемы ключей, и с трудом вращающийся двигатель. Так как по схеме из Голландии для увеличения тока ключи соединены попарно, то максимальный отдаваемый ток не превышал 1А, в то время как двигателю надо было 2А (кто ж знал что я найду такие прожорливые, как мне тогда показалось, двигатели J ). Кроме того, данные ключи построены по биполярной технологии, для тех кто не в курсе, падение напряжения может быть до 2В (если питание от 5, то фактически половина падает на сопротивлении перехода).

В принципе, для опытов с двигателями от 5” дисководов очень неплохой вариант, можно сделать например плоттер, однако что то более тяжелое чем карандаш (например дремель) ими вряд ли можно тягать.

Решил собрать свою собственную схему из дискретных элементов, благо в одном из принтеров оказалась нетронутой электроника, и я взял оттуда транзисторы КТ829 (Ток до 8А, напряжение до 100В)… Была собрана такая схема…

Рис.1 – Схема драйвера для 4х фазного униполярного двигателя.

Сейчас объясню принцип. При подаче логической “1” на один из выводов (на остальных “0”), например на D0, транзистор открывается и ток течет через одну из катушек двигателя, при этом двигатель отрабатывает один шаг. Далее единица подается на следующий вывод D1, а на D0 единица сбрасывается в ноль. Двигатель отрабатывает сладующий шаг. Если подавать ток сразу в две соседние катушки то реализуется режим полушагов (для моих двигателей с углом поворота 1,8’ получается 400 шагов на оборот).

К общему выводу подсоединяются отводы от середины катушек двигателя (их два если проводов шесть). Очень хорошо теория шаговых двигателей описана тут — Шаговые двигатели. Управление шаговым двигателем., тут же приведена схема контроллера ШД на микроконтроллере AVR фирмы Atmel. Честно говоря, мне показалось похоже на забивание гвоздей часами, однако в ней реализована очень хорошая функция как ШИМ регулирование тока обмоток.

Поняв принцип, несложно написать программу управляющую двигателем через LPT порт. Зачем в этой схеме диоды, а за тем, что нагрузка у нас индуктивная, при возникновении ЭДС самоиндукции она разряжается через диод, при этом исключается пробой транзистора, а следовательно и вывод его из строя. Еще одна деталь схемы – регистр RG (я использовал 555ИР33), используется как шинный формирователь, поскольку ток отдаваемый, например LPT портом мал – можно его элементарно спалить, а следовательно, есть возможность спалить весь компьютер.

Схема примитивна, и собрать такое можно минут за 15-20, если есть все детали. Однако у такого принципа управления есть недостаток – так как формирование задержек при задании скорости вращения задается программой относительно внутренних часов компьютера то работать в многозадачной системе (Win) это все не будет! Будут просто теряться шаги (может быть в Windows и есть таймер, но я не в курсе). Второй недостаток – это нестабилизированный ток обмоток, максимальную мощность из двигателя не выжать. Однако по простоте и надежности этот способ меня устраивает, тем более что для того, что бы не рисковать своим Атлоном 2ГГц, я собрал из барахла 486 тарантас, и кроме ДОСа там, в принципе мало, что можно поставить нормальное.

Описанная выше схема работала и в принципе неплоха, но я решил, что можно несколько переделать схему. Применить MOSFETJ ). транзисторы (полевые), выигрыш в том, что можно коммутировать огромные токи (до 75 – 100А), при солидных для шаговых двигателей напряжениях (до 30В), и при этом детали схемы практически не греются, ну если не считать предельных значений (хотел бы я видеть тот шаговый двигатель который съест ток 100А

Как всегда в России возник вопрос, где взять детали. У меня возникла идея – извлечь транзисторы из горелых материнских плат, благо, например Атлоны кушают порядочно и транзисторы там стоят огого. Дал объявление в ФИДО, и получил предложение забрать 3 мат. платы за 100 рублей. Прикинув что в магазине за эти деньги можно от силы купить 3 транзистора, забрал, расковырял и о чудо, хотя они все и были дохлыми, ни один транзистор в цепи питания процессора не пострадал. Так я получил пару десятков полевых транзисторов за сто рублей. Схема, которая получилась в результате, представлена ниже.

Рис. 2 – Тоже на полевых транзисторах

Отличий в этой схеме немного, в частности была применена микросхема нормального буфера 75LS245 (выпаяна над газовой плитой из 286 материнской платы J ). Диоды можно поставить любые, главное, что бы их максимальное напряжение не было меньше максимального напряжения питания, а предельный ток не меньше тока питания одной фазы. Я поставил диоды КД213A, это 10А и 200В. Возможно это излишне для моих 2х амперных двигателей, однако покупать детали не было смысла, да и запас по току думается лишним не будет. Резисторы служат для ограничения тока перезарядки емкости затворов.

Ниже приводится печатная плата контроллера построенного по такой схеме.

Рис. 3 – Печатная плата.

Печатная плата разведена для поверхностного монтажа на одностороннем текстолите (лень мне что то дырочки сверлить сталоJ). Микросхемы в DIP корпусах паяются с подогнутыми ножками, резисторы SMD с тех же материнок. Файл с разводкой в Sprint-Layout 4.0 прилагается. Можно было бы запаять на плату и разъемы, но лень как говорится — двигатель прогресса, да и при отладке железа удобнее было запаять провода подлиннее.

Еще необходимо отметить, что схема снабжена тремя концевиками, на плате справа снизу шесть контактов вертикально, радом с ними посадочные места под три резистора, каждый соединяет один вывод выключателей с +5В. Схема концевиков:

Рис. 4 – Схема концевиков.

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

В результате на представленный контроллер я потратил не более 150 рублей: 100 рублей за материнские платы (при желании можно вообще бесплатно достать) + кусок текстолита, припой и банка хлорного железа в сумме тянут на

50 рублей, причем хлорного железа останется потом еще много. Думаю считать провода и разъемы смысла не имеет. (Кстати разъем питания отпилен от старого винчестера.)

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

Если бы на Орловских заводах проточить отдельные детали не стоило бы так дорого, то мне бы конечно проще было бы вычертить все детали в CAD’е, со всеми квалитетами и шероховатостями и отдать на съедение рабочим. Однако знакомых токарей нет… Да и руками как то знаете ли интереснее…

Источник: http://stepmotor.ru/controllersam

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

4-х осевой Step/Dir контроллер шаговых двигателей

Автор: Роман Лут

Создано при помощи КотоРед.

В статье описывается step/dir контроллер униполярных шаговых двигателей.

Контроллер используется для управления самодельным сверлильно-фрезерным станком.

Предполагается, что читатель уже знаком с самодельными ЧПУ cтанками;

иначе рекомендуется изучить материалы, указанные в конце статьи.

Контроллер разрабатывался взамен имеющегося примитивного 3-х осевого контроллера(на ATTiny2313).

снижения шума и повышения скорости перемещения.

— для униполярных двигателей;

— аппаратный контроль тока в обмотках (ШИМ);

— опторазвязка с LPT портом;

— режим удержания с понижением тока до указанного значения;

— full step, half step, 4, 8,16 microstep выбирается отдельно для каждой оси;

— максимальная частота следования импульсов step: 12.5 кГц (период — 80мкс);

— минимальная длина step и dir импульса: 5мкс;

— ток двигателей — до 2А, индивидуально для каждой оси ( больше 2А не проверялось, схема позволяет);

— питание двигателей — до 30В, с возможностью увеличения ( больше 19В не проверялось ).

В общем целом, получился достаточно “навороченный” контроллер на дешёвых распространённых компонентах.

Ни один из известных мне самодельных контроллеров таким набором возможностей не обладает.

Управляющий модуль выполнен на микроконтроллере ATMega8535, работающем на частоте 16МГц.

Задача контроллера — обрабатывать входные сигналы Step/Dir и выдавать сигналы включения и опорные напряжения для силовой части схемы.

Опорные напряжения формируются микросхемой M62359 — это 8-бит 8-канальный DAC с SPI интерфейсом.

Опторазвязка выполнена на оптронах PC817 и является неотъемлемой частью контроллера.

На этот моменте нужно остановиться отдельно.

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

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

Один цикл ( проверка входов, реакция, вывод управляющих сигналов ) занимает в текущей реализации

При этом заявленная минимальная длина импульса Step5мкс.

Каким же образом контроллер не пропускает импульсы?

Это, так сказать, моё ноу-хау ? Секрет — в свойствах оптронов.

В даташите на PC817 можно найти графики Response time.

После исчезновения сигнала на входе, оптрону требуется определённое время (ts + tf), чтобы закрыться.

Это время зависит от тока, который протекает через фототранзистор.

На практике это выглядит так:

Нагрузочный резистор 10кОм на 5В — и входной импульс 5мкс превращается в

Таким образом, у микроконтроллера есть, по крайней мере, 28мкс на опрос входов.

В результате он в одиночку может управлять сразу 4-мя осями.

Четыре платы силовой части полностью идентичны и собраны на микросхемах UC3842

и транзисторах IRFZ44 или IRF560 (транзисторы расположены на обратной стороне платы):

Ток в каждой обмотке контролируется отдельной микросхемой и транзистором:

Микросхема UC3842 — это ШИМ контроллер для импульсных источников питания.

Она содержит ШИМ генератор, компаратор тока, RS триггер и драйвер полевого транзистора. В общем, для этих целей подходит идеально ?

Первоначально я пытался собрать контроллер на микросхемах TL494.

Но, как выяснилось, эти микросхемы не предназначены для контроля максимального тока в течении одного периода ШИМ.

Их входные сенсоры тока и напряжения должны быть обрезаны фильтрами с частотой 10-15кГц.

UC3842, напротив, предназначена для ограничения максимального тока через обмотку трансформатора в течении одного периода.

Она выключает транзистор в момент достижения установленного тока:

Опорное напряжение, сформированное ЦАП на управляющем модуле, поступает на вход Comp микросхемы.

В начале периода ШИМ микросхема открывает транзистор. Ток в обмотке начинает плавно нарастать.

Как только ток превышает заданное значение, микросхема закрывает транзистор.

UC3842 измеряет ток в обмотке по падению напряжения на токоизмерительном резисторе.

Кроме сравнения с опорным напряжением, в микросхеме предусмотрена защита по максимальному

току, которая отключает транзистор при напряжении на Isense выше 1В.

Поэтому токоизмерительный резистор нужно выбирать таким образом, чтобы при максимальном токе падение напряжения на нём составляло чуть меньше 1В.

Точное значение максимального тока задаётся в прошивке.

Микросхема содержит встроенный генератор, частота которого задаётся цепочкой R3C2:

Во время разряда конденсатора, выходной транзистор закрывается (это dead time).

Таким образом, выбором номиналов R3C2 можно задавать и частоту, и dead time.

Естественно, эти элементы должны быть одинаковыми для всех обмоток.

Частоту ШИМ выбирают индивидуально для двигателя, учитывая повышение нагрева двигателя с повышением частоты.

Чтобы не устанавливать дополнительные компоненты, можно использовать сигнал Clock, который формирует микроконтроллер.

Частота и dead time при этом задаются в прошивке. Элементы R3C2 не устанавливаются — устанавливается резистор R4.

Один выход ЦАП формирует опорное напряжение для пары обмоток ( только одна из которых может быть включена в данный момент ).

Поэтому управляющий модуль отключает ( высоким логическим уровнем ) парную обмотку сигналом /M_L1EN.

Цепочка R1C1 подбирается таким образом, чтобы погасить всплеск тока, возникающий при открывании транзистора:

Диод D1 устанавливается опционально. Мне хватило встроенных в MOSFET.

При выключении транзисторов возникают выбросы противоЭДС, при этом выбросы напряжения на Drain-Source транзисторов могут превышать напряжение питания в 3 раза.

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

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

Желательно просто выбрать транзисторы с достаточно большим Vdss.

Я использовал IRF540N (Vdss = 100В) для двигателя ДШИ-200 и IRFZ44N (Vdss = 55В) для двигателей от принтеров.

Напомню, что Vdss — это напряжение между Drain и Source, при котором транзистор самопроизвольно открывается.

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

Для двигателей до 3А, мосфеты должны быть холодными; радиаторы на них не устанавливаются.

Контроллер запитан от блока питания от ноутбука на 19В 3А:

5В получены с помощью готового модуля DC-DC преобразователя на LM2596, доступного на ebay:

Почему важен контроль тока

В стабильном состоянии ток в обмотке определяется только активным сопротивлением обмотки и напряжением питания.

Но в момент включения ток в обмотке зависит и от активного, и от реактивного сопротивления.

Поэтому вместо прямоугольных импульсов тока мы увидим следующую картину:

Чем больше индуктивность обмотки, тем дольше будут происходить нарастания и спады тока.

При повышении скорости вращения, ток не будет успевать нарастать до максимального значения, и момент двигателя начнёт падать:

Чтобы обеспечить быстрое нарастание тока, нужно увеличить напряжение питания.

Но в стабильном состоянии ток в обмотке ограничен только активным сопротивлением обмотки.

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

Следует упомянуть ещё один способ повышения оборотов.

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

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

Таким образом эффективно решаются сразу две задачи: повышение оборотов двигателя и обогрев мастерской ?

Режимы работы двигателя

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

(полный шаг, одна обмотка)

Классический режим, в котором в каждый момент времени включена одна обмотка.

Full Step, Half phase

Режим, в котором в каждый момент включены 2 соседние обмотки одновременно.

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

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

Если представить, как вращается двигатель в режиме полного шага — можно заметить, что он двигается рывками:

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

Это вызывает вибрации вала и всего станка в целом.

Так работает станок, при создании которого вопрос снижения шума не рассматривался:

Здесь всё плохо — мощные двигатели в режиме полного шага, огромный резонирующий корпус из ДСП…

Совсем как в моём первом станке, который и пришлось разобрать из-за шумности ?

В жилом помещении вопрос снижения шума — это не прихоть, это — вопрос, будет ли возможно использовать станок вообще.

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

Для этого в контроллерах шаговых двигателей момент перехода от одной обмотки к другой делят на 4-16 микрошагов.

На каждом микрошаге ток в первой обмотке уменьшается, а во второй — увеличивается, по синусоидальному закону:

При этом частота импульсов Step в управляющей программе должна быть увеличена в 4-16 раз соответственно.

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

Станок начинает “звучать профессионально”:

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

Кроме того, при небольшом усилии, или при переключении в режим удержания, вал двигателя может “выпадать” в положения полного шага.

При отсутствии импульсов Step в течении

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

Сравнение с модулями на чипах Allegro

Популярность самодельных 3D принтеров вызвала появление на ebay готовых модулей на чипах A4983, конкурировать с которыми “рассыпухой” достаточно сложно.

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

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

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

А в совсем отдалённом будущем, возможно, получится реализовать управление по USB

( это когда контроллер принимает описание шагов с USB-UART и сам генерирует шаги ).

Описываемый контроллер эквивалентен 4-м таким модулям + плата опторазвязки.

— чипы Allegro умеют включать “режим быстрого снижения тока”. Если на следующем микрошаге ток в обмотке должен снизится, чип кратковременно шунтирует обмотку, открывая транзисторы моста. Введение такой возможности в данный (униполярный) контроллер слишком сильно усложнило бы схему;

— у A4983 максимальная частота импульсов Step составляет 1/2мкс = 500кГц.

Я пробовал подключать один и тот же двигатель к этому контроллеру в униполярном и к A4983 в биполярном подключении.

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

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

Прошивка написана на С для CodevisionAVR 2.05.

При большом желании, основной цикл можно переписать на ассемблере и увеличить максимальную частоту импульсов Step до

При программировании микроконтроллера нужно отключать питание от силовой части.

Настройка Mach 3

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

На практике в программе Mach3 и подобных, драйвер работает на фиксированной частоте (Kernel speed):

Поэтому Mach3 умеет формировать импульсы только на границах периодов Kernel speed.

при частоте ядра 25kHz (период — 40мкс), то импульсы будут следовать неравномерно — с периодами, кратными 40мкс:

Из осциллограммы на выходе оптрона видно, что время восстановления для уверенного чтения “1” микроконтроллером составляет примерно 50мкс.

После этого нужно выдержать “единицу” один цикл программы (26мкс), итого

Для этого должно соблюдаться условие:

Steps per * Velocity / 60 < 12500

Полярность импульсов Step выставляется положительной:

Напряжение на токоизмерительном резисторе, низкая и средняя скорость вращения (Microstep 8x):

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

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

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

Платы силовой части разводились “на все случаи жизни”. Возможно имеет смысл убрать посадочные места для опциональных деталей и уменьшить габариты. Или сделать весь контроллер на одной большой плате в SMD варианте.

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

Контроллер не проверялся с токами больше 2А — возможно, следует уделить больше внимания разводке.

Напряжение питания двигателей можно поднять вплоть до 60В. При этом нужно установить транзисторы в большим Vdss и подобрать сопротивление R8 в цепи питания UC3842 (микросхема содержит внутренний стабилитрон на 30В). Напряжение питания нельзя поднимать бесконечно, потому что можно получить пробой в обмотках двигателя.

Также обратите внимание на (нестандартный) разъём программатора.

Сразу хочу предупредить, что для настройки контроллера обязательно нужен осциллограф.

Без него понять, что происходит в обмотках, будет невозможно.

UC3842 CURRENT MODE PWM CONTROLLER

DMOS Microstepping Driver with Translator A4983

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

Ускорение шаговых двигателей 2

Losing steps in Mach3: Kernel Speed, Pulse Width and «Sherline 1/2 Pulse mode»

Электроника и механика домашнего 3-х координатного станка ЧПУ (Hobby CNC).

hCNC3+ (ATMega16, StepDir, 3 axis, ШИМ, ручное управление).

Простой биполярный драйвер на Pic

Микрошаговый контроллер шагового двигателя на базе PIC18F2320 V4.1

STEP/DIR контроллер 3-х шаговых двигателей на микроконтроллере (для станка ЧПУ)

3 axis STEP-DIR controller

Источник: http://radiokot.ru/circuit/digital/security/26/

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

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

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

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

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

Момент инерции: 56 oz-in

Момент инерции: 4 кг/см

Для соединителя: 5 мм

Максимальный ток: 15 A

Напряжение: AC 220V

Контакты: 2 (N / L)

Макс. напряжение: 250V

Не горит: Ноль (N)

Для двигателей: Nema 17

Диаметр 2: 10 мм

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

Шаговый двигатель работает от подачи комбинаций напряжения в разных направлениях на его обмотки, у этого шагового двигателя 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 управлением, который я собрал:

На картинке сверху — биполярный (гибридный) шаговый двигатель 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 — ATmega16, если вы не знаете как с ними работать (записывать программу), сначало ознакомьтесь с основами такой работы, которые подробно описаны в первой статье

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

Слева от ATmega16 находятся компоненты для организации связи по протоколу 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 линии ставится сглаживающий пленочный конденсатор.

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

Сразу подключать питание высокого уровня (24V) к схеме и шаговый двигатель не рекомендую. Сначало лучше проверьте правильность работы устройства. Для этого можно использовать 5 светодиодов и отсек для батареек в качестве источника питания (3V). 1 светодиод подключается к контакту PA0 длинной стороной (+) и короткой стороной (-) к минусу питания. Этот желтый диод показан на первом фото сверху, на схеме его нет. С его помощью можно проверить работу USB контроллера, зажигать его и гасить по команде из программы. 2 других светодиода подключите на место первой обмотки шагового двигателя в разнонаправленном положении — один длинной стороной к первому контакту, другой длинной стороной ко второму контакту. Оставшиеся 2 светодиода таким же образом подключите на место второй обмотки. Вместо импульсного блока питания 24V подключите батарейный отсек и батарейки на 1.5V (2 батарейки — это 3V). Проверка устройства — при посылке команды кручения двигателя загораются различные светодиоды. Все светодиоды должны загораться в свое время при переборе комбинаций. Медленный перебор комбинаций позволяет точно убедиться в том, что все работает правильно.

Конец функции delay0

Ток регулируется изменением чисел 200 и 120. 200 — время включения, 120 — время выключения. Сумма 200+120=320 дает частоту ШИМ 25 кГц (при условии, что контроллер работает на частоте 8 МГц от внутреннего генератора, такая там стоит по умолчанию, получается 8000000/320=25000). Сумма должна оставаться такой, а числа можно менять, чем больше первое число, тем ток больше.

Кроме того существует аппаратный ШИМ, который автоматически включается на линиях в микроконтроллере AVR через таймер счетчик. Однако тут есть недостаток — нужно пользоваться прерыванием для считывания сигнала таймера счетчика и передачи его на несколько портов. В виду постоянной ШИМизации и при большом количестве таких портов, возникает проблема перегруженности прерываний — если прерывание не уложится в период ШИМ, то в его конце запустится еще одно такое прерывание и контроллер зависнит, а ведь есть еще и другие прерывания, которые могут возникнуть в любое время! Аппаратный ШИМ есть в текущей версии программы для микроконтроллера.

Программа для Windows

Уже готовую программу для Windows на USB контроллер нужно немного изменить. В итоге должны перебираться комбинации для подачи напряжения в разных направлениях, нам нужно менять значения на портах PB0, PB1, PB2, PB3, следующие комбинации нужны для запуска двигателя 1010, 0110, 0101, 1001. Перебор их в одну сторону — кручение в эту сторону, в другую — кручение обратно. 0000 — отключает питание, необходимо в конце перебора, иначе двигатель нагреется. Сейчас над этой программой ведется работа, так что возьмите из USB контроллера, связь там работает.

Программа для микроконтроллера

Программа для микроконтроллера еще недоделана и находится в разработке, но то что было сделано вот оно, язык WinAVR C.

Источник: http://legkoe-delo.ru/remont-avtomobilya/avto/83511-drajver-shagovogo-dvigatelya-svoimi-rukami

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

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

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

Основные технические характеристики

  • Напряжение питания силовой части, В . 27
  • Напряжение питания логической части, В . 12
  • Максимальная амплитуда тока фазы двигателя, А, не менее . 5
  • Минимальная амплитуда тока фазы двигателя, А, не более . 0,25
  • Предустанавливаемый коэффициент деления шага . .1/8, 1/4, 1/2, 1/1
  • Автопонижение тока в режиме удержания, %. 65
  • Задержка автопонижения тока относительно последнего шага, с . 3,4
  • Уровни управляющих сигналов . ТТЛ,5 В
  • Максимальная частота шагов, кГц. 12
  • Габариты, мм . 102x68x40

Принципиальная схема драйвера приведена на рис. 1 . В его основу положены мостовые формирователи тока фаз А и В на полевых транзисторах VT1-VT4, VT5-VT8 соответственно, управляемые специализированными микросхемами-драйверами верхних и нижних ключей полумоста DA5-DA8 IR2104S. Для повышения помехоустойчивости применено раздельное питание силовой части (27 В) и логической части с драйверами силовых ключей (12 В).

Далее рассмотрим часть схемы, относящуюся к одной из фаз (фазе А), поскольку часть, относящаяся к фазе В, действует аналогично.

Мгновенное значение тока фазы устройство определяет по падению напряжения на резисторе R45, которое через интегрирующую цепь R5C6 поступает на неинвертирующий вход усилителя DA1.1 с регулируемым коэффициентом усиления, выполняющего также функцию ФНЧ первого порядка. С выхода усилителя сигнал приходит на инвертирующий вход компаратора DA3.1. Компаратор сравнивает сигнал, пропорциональный текущему через фазу двигателя току, с образцовым напряжением. Его формирует в виде ступенчатой синусоиды (для микрошагового режима работы) Таймер 1 микроконтроллера, работающий в режиме «Быстрая ШИМ» без предварительного деления. Сигнал с выхода таймера пропущен через многозвенный фильтр R1C1R3C4R7C8. Период следования широтно-модулированных импульсов — 12,7 мкс, что соответствует частоте 78,4 кГц. Резистор R23 в рабочем режиме в формировании образцового напряжения не участвует, так как выход PB3 микроконтроллера, к которому он подключён, находится в высокоимпедансном состоянии.

В режиме удержания (после отсутствия импульсов на входе «Шаг» в течение последних 3,4 с) программа устанавливает на выходе PB3 микроконтроллера низкий логический уровень, и амплитуда образцового сигнала понижается. С выхода компаратора DA3.1 с открытым коллектором, нагруженного резистором R25, результат сравнения поступает на вход компаратора DA3.2. Выход компаратора DA3.1 связан также с общим проводом через конденсатор C22. Совместно R25 и C22 — времязадающая цепь узла стабилизации тока. При его падении ниже некоторого образцового уровня происходит зарядка конденсатора C22 через резистор R25. В интервале времени от начала зарядки до достижения напряжением на конденсаторе значения, заданного делителем напряжения R27R28, питание обмотки двигателя отключено, что препятствует быстрым флюктуациям тока около образцового значения.

Этот алгоритм в классическом смысле не относится к алгоритмам стабилизации тока “Fixed-Frequency PWM” или “Fixed-Off-Time PWM”, однако на практике он показал хорошую работоспособность. При превышении током образцового значения на выходе компаратора DA3.2 установлен низкий логический уровень. Микроконтроллер реагирует на это отключением обмотки одновременным закрыванием транзисторов VT1-VT4 с помощью сигнала SD, подаваемого на драйверы DA5 и DA6. Этим достигается быстрый спад тока в обмотках двигателя. В случае спада тока ниже образцового происходит обратное, на драйверы DA5 и DA6 поступает сигнал SD высокого уровня, открывающий упомянутые транзисторы, что не препятствует нарастанию тока в обмотке.

Смена ступеней образцового напряжения, а также смена комбинаций открытых и закрытых транзисторов моста происходит с приходом очередного импульса на вход «Шаг» по алгоритмам, зависящим от предустановленного коэффициента деления шага (наличия перемычек между контактами 1-2 и 3-4 разъёма XP1) и текущего направления вращения (логического уровня сигнала на входе «Напр.»). Вход «Разр.» был задуман для разрешения и запрета работы двигателя, но в прилагаемой к статье версии программы он не действует.

Драйвер выполнен на двухсторонней печатной плате, чертёж печатных проводников которой изображён на рис. 2, а расположение элементов — на рис. 3. Транзисторы VT1-VT8 расположены с одной стороны платы теплоотводящими поверхностями от неё. К этим поверхностям прижат через изоляционные прокладки теплоотвод — в простейшем случае алюминиевая пластина размерами 60х60 мм. Следует заметить, что при токе фаз более 4. 5 А и длительном режиме работы теплоотвода в виде пластины может оказаться недостаточно и его поверхность следует увеличить, сделав теплоотвод ребристым или игольчатым.

Материал платы следует выбрать толщиной не менее 1 . 1,5 мм, толщина фольги — не менее 35 мкм. Печатные проводники, по которым течёт большой ток, следует обильно залудить или бандажировать медной проволокой, припаяв её по всей длине проводника.

Большая часть компонентов конструкции применена в оформлении для поверхностного монтажа. Резисторы и конденсаторы — типоразмера 1206. Резисторы R45, R50 имеют проволочные выводы и мощность — не менее 2 Вт. оксидные конденсаторы в цепях питания — с малым ESR. Подстроечные резисторы R18 и R19 — многооборотные 3296W.

Амплитудные значения тока фаз двигателя регулируют подстроечными резисторами R18, R19. Проще всего это делать, переведя драйвер в режим микрошага 1/8 и контролируя цифровым вольтметром падение напряжения на резисторах-датчикахтока R45 и R50. Подавая на вход «Шаг» одиночные импульсы, добиваются максимальных значений тока поочерёдно в фазах А и В. Подстроечными резисторами устанавливают эти значения одинаковыми и соответствующими требуемой амплитуде тока. Уменьшение сопротивления под-строечных резисторов приводит к снижению тока, и наоборот. Для ориентировки можно воспользоваться табл. 1, в которой приведена зависимость амплитуды тока фазы Imф от введённого сопротивления подстроечного резистора.

Источник: http://meandr.org/archives/34044

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

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

Страницы

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

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

%D1%88%D0%B0%D0%B3%D0%BE%D0%B2%D0%B8%D0%BA

%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9

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

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

IMG 2594

wrerdf%D0%BA

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

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

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

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

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

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

Источник

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

Шаг 1.

От старого сканера:

Для управляющего компьютера:

Шаг 2.

Берем детали от старого сканера. Чтобы построить собственный ЧПУ контроллер нужно для начала извлечь из сканера шаговый двигатель и плату управления. Здесь не приведено никаких фотографий, потому что каждый сканер выглядит по-своему, но обычно нужно просто снять стекло и вывернуть несколько винтов. Кроме двигателя и платы можно оставить еще металлические стержни, которые потребуются для тестирования шагового двигателя.

Шаг 3.

Извлекаем микросхему из платы управления Теперь нужно найти на плате управления шаговым двигателем микросхему ULN2003. Если вы не смогли обнаружить ее на своем устройстве, ULN2003 можно купить отдельно. Если она есть, ее нужно выпаять. Это потребует некоторого умения, но не так уж сложно. Сначала при помощи отсоса удалите как можно больше припоя. После этого осторожно просуньте под микросхему конец отвертки. Осторожно прикоснитесь концом паяльника к каждому выводу, продолжая при этом нажимать на отвертку.

2

Шаг 4.

3

4

5

6

7

8

9

Шаг 5.

10

11

12

13

14

Шаг 6.

Настройка программного обеспечения Перезагрузите компьютер чтобы перейти к работе в MS-DOS. В командной строке наберите «C: cncTURBOCNC». Иногда лучше использовать загрузочный диск, тогда копия TURBOCNC помещается на него и нужно набирать, соответственно «A: cncTURBOCNC». Возникнет экран, похожий на изображенный на рис. 3. Нажмите пробел. Теперь вы находитесь в главном меню программы. Нажмите F1, и при помощи клавиш со стрелками выберите меню «Configure». При помощи клавиш со стрелками выберите «number of axis». Нажмите Enter. Введите количество осей, которые будут использоваться. Поскольку у нас только один мотор, выбираем «1». Нажмите Enter чтобы продолжить. Снова нажмите F1 и в меню «Configure» выберите пункт «Configure axes», затем дважды нажмите Enter.

Появится следующий экран. Нажимайте Tab пока не перейдете к ячейке «Drive Type». При помощи стрелки вниз выберите пункт «Phase». Снова при помощи Tab выберите ячейку «Scale». Чтобы использовать калькулятор, нам нужно найти число шагов, которые двигатель делает за один оборот. Зная номер модели двигателя, можно установить на сколько градусов он поворачивается за один шаг. Чтобы найти число шагов, которые двигатель делает за один оборот, теперь нужно поделить 360 на число градусов за один шаг. Например, если мотор поворачивается за один шаг на 7,5 градусов, 360 поделить на 7,5 получится 48. Число, которое получится у вас, забейте в калькулятор шкалы (scale calculator).

Скопируйте следующее в четыре первых ячейки:

1000XXXXXXXX
0100XXXXXXXX
0010XXXXXXXX
0001XXXXXXXX

Остальные ячейки оставьте без изменений. Выберите OK. Теперь вы настроили программное обеспечение.

15

16

17

18

19

20

21

22

23

Шаг 7.

Строим тестовый вал Следующим этапом работы будет сборка простого вала для тестовой системы. Отрежьте 3 бруска дерева и скрепите их друг с другом. Чтобы получить ровные отверстия проведите на поверхности дерева ровную линию. Просверлите на линии два отверстия. Еще 1 отверстие просверлите посередине ниже первых двух. Отсоедините бруски. Через два отверстия, что находятся на одной линии, проденьте стальные пруты. Чтобы закрепить пруты воспользуйтесь небольшими шурупами. Проденьте пруты сквозь второй брусок. На последнем бруске закрепите двигатель. Не имеет значения, как вы это сделаете, будьте изобретательны.

Чтобы закрепить двигатель, имевшийся в наличии, использовали два отрезка стержня с резьбой 1/8. Брусок с прикрепленным двигателем надевается на свободный конец стальных прутов. Снова закрепите их шурупами. Сквозь третье отверстие на первом бруске проденьте стержень с резьбой. Заверните на стержне гайку. Проденьте стержень сквозь отверстие во втором бруске. Поворачивайте стержень до тех пор, пока он не пройдет сквозь все отверстия и не дойдет до вала двигателя. Соедините вал двигателя и стержень при помощи шланга и зажимов из проволоки. На втором бруске гайка удерживается при помощи дополнительных гаек и винтов. В завершение, отрежьте брусок дерева для подставки. Привинтите ее шурупами ко второму бруску. Проверьте, установлена ли подставка ровно на поверхности. Регулировать положение подставки на поверхности можно при помощи дополнительных винтов и гаек. Так делается вал для тестовой системы.

24

25

26

27

28

29

30

31

33

Шаг 8.

Подсоединяем и тестируем двигатель Теперь нужно соединить двигатель с контроллером. Во-первых, соедините общий провод (смотрите документацию к двигателю) с проводом, который был припаян к положительной шине питания. Другие четыре провода соединяются путем проб и ошибок. Соедините их все, и затем меняйте порядок соединения, если ваш двигатель делает два шага вперед и один назад или что-либо подобное. Для проведения тестирования подключите 12 В 350 мА источник питания постоянного тока в цилиндрическое гнездо. Затем соедините разъем DB25 c компьютером. В TurboCNC проверьте как соединен двигатель. В результате тестирования и проверки правильного подсоединения двигателя у вас должен получиться полностью работоспособный вал. Чтобы проверить масштабирование вашего устройства, прикрепите к нему маркер и запустите тестовую программу. Измерьте получившуюся линию. Если длина линии составляет порядка 2-3 см, устройство работает правильно. В противном случае, проверьте вычисления в шаге 6. Если у вас все получилось, поздравляем, самое трудное уже позади.

34

35

Шаг 9.

Изготовление корпуса

Часть 1

36

37

38

39

40

41

42

43

44

45

46

47

48

Шаг 10.

Изготовление корпуса

Часть 2

Теперь нужно приклеить все компоненты внутрь корпуса. Убедитесь, что на разъемы попало достаточно много клея, потому что они будут подвергаться большим нагрузкам. Чтобы коробка оставалась закрытой, нужно сделать защелки. Из пенопласта вырежьте пару ушек. Затем вырежьте пару полос и четыре небольших квадратика. Приклейте по два квадратика к каждой из полос как показано на рисунке. Приклейте ушки по обеим сторонам корпуса. Сверху коробки приклейте полосы. Этим завершается изготовление корпуса.

114

Шаг 11.

Для настройки первой оси делайте все как было сказано выше, для второй оси тоже, но в строках первых четырех фаз введите следующее:

«XXXX1000XXXX
XXXX0100XXXX
XXXX0010XXXX
XXXX0001XXXX»

Для третьей оси в строках первых четырех фаз введите:

«XXXXXXXX1000
XXXXXXXX0100
XXXXXXXX0010
XXXXXXXX0001″

49

113

Перевод: Piyavka, по заказу РадиоЛоцман

Источник

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

1457870999 photo main

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

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

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

↑ Привод

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

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

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

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

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

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

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

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

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

1456680208 step motors

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

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

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

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

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

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

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

1456680155 a4988 drv8825

Из готовых — наиболее распространённые и недорогие драйверы на микросхемах 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

1456680214 block a3982

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

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

1456680120 block a3977

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

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

1456680177 a3982 a3977

1456680208 shema a3982

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

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

1456680209 img50

1456680132 img51

↑ Работа

1456846265 img19

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

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

↑ Файлы

В архиве схема и плата в формате DipTrace
▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

Даташит на микросхему Allegro A3982
▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

Камрад, рассмотри датагорские рекомендации

? Купон до 1000₽ для новичка на Aliexpress

Никогда не затаривался у китайцев? Пришло время начать!
Камрад, регистрируйся на Али по нашей ссылке. Ты получишь скидочный купон на первый заказ. Не тяни, условия акции меняются.

? Полезные и проверенные железяки, можно брать

Куплено и опробовано читателями или в лаборатории редакции.

Источник

Подключение драйвера ШД на TB6560 к Ардуино, шаговому двигателю и БП

Разобравшись с драйверами ШД DM420, я понял, что они обладают не сбалансированным набором возможностей. Например, совсем не требуется использование режимов дискретизации шага на более чем 16 шагов.
Также хотелось бы, чтобы при простое драйвер понижал выдаваемый ток до 1/4 рабочего. Кроме того, корпуса драйверов DM420A довольно громоздки.
Двигатели при работе с DM420 быстро нагреваются, особенно при длительных простоях — работе в режиме удержание.
Существенным недостатком DM420A является его довольно высокая стоимость. Самая низкая цена с доставкой в Россию на aliexpress.com составляет 22$.

Я занимался разработкой 3D-принтера из простого станка с ЧПУ на Arduino и мне как раз не хватало драйвера для шагового двигателя в экструдере.
Порывшись на aliexpress.com я нашёл драйвер на базе микросхемы TB6560. Этот драйвер мне обошёлся менее чем в 8$. Он имеет более удачный набор настроек.

фото драйвера ШД на базе TB6560

Фотография драйвера ШД на базе TB6560 позволяет рассмотреть возможные настройки, описанные таблицами на плате, на которой смонтирован драйвер ШД.

Возможности драйвера ШД на базе TB6560

  • Предназначение: управление биполярными двигателями (можно подключить 6-проводной униполярный);
  • Рабочее напряжение: 10-24 В (у продавца было написано 10-35 В, однако на плате написано 24 В);
  • Настраиваемый выходной ток (Running Current): от 0.3 до 3 А;
  • Дискретизация шага — это количество шагов на один реальный шаг ШД (Execution Mode): 1, 2, 4, 8, 16;
  • Регулировка тока удержания (Stop Current): 20%, 50%;
  • Режимы спада тока (Decay Settings): 0%, 25%, 50%, 100%;
  • Габариты: 75 x 50 x 33 мм (гораздо меньше чем DM420A).

Набор режимов сбалансирован и это явно в пользу драйвера ШД на TB6560, если сравнивать с DM420. Наперёд замечу, что двигатели с TB6560 греются гораздо меньше, что обеспечивается более тонкой настройкой тока удержания и режима спада тока.

Подключение драйвера на TB6560 к Ардуино, шаговому двигателю и блоку питания

Корпус драйвера на TB6560 маловат, так что его нельзя использовать в качестве «земли», как это было при подключении DM420A.
Ниже представлена схема подключения драйвера ШД на TB6560 к Arduino, шаговому двигателю и блоку питания шагового двигателя.

Схема подключения TB6560 к ардуино, шаговому двигателю и БП

При таком подключении драйвер ШД находится в состоянии «включен».
Если вы захотите управлять включением драйвера TB6560, то EN- необходимо подключить к «земле» (Gnd), а EN+ — к цифровому выводу (Digital Pin).
Интересным отличием от DM420A является то, что для включения драйвера в таком случае требуется на EN+ подать значение LOW, а для выключенияHIGH.

Указанная схема подключения биполярного двигателя к ардуино через драйвер ШД на TB6560 полностью совместима с прошивками, написанными для мощного станка с ЧПУ на DM420.

Драйвер шагового двигателя
— электронное устройство, которое заставляет «шагать» по . Стандартом де-факто в области управления ШД являются . 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. Также генератор будет полезен для построения простых систем перемещения без применения ПК.

Здравствуйте Юрий Валерьевич! Опишу изменения в схеме > Что меня подвигло к изменению схемы? В исходной схеме управление двигателем производится двумя кнопками каждая, из которых содержит по две группы контактов. Одна группа подаёт высокий логический уровень на вход микросхем, другая подаёт питание на двигатель. В виду того, что некоторые двигатели потребляют значительный ток, группа контактов, управляющая двигателем должна быть достаточно мощной, а, следовательно, и габаритной.

Это конечно не удобно и не желательно в виду снижения надёжности устройства по причине использования механических контактов в сильноточных цепях. Я предлагаю управлять питанием двигателя при помощи мощного полевого транзистора, который в свою очередь управляется теми же кнопками. При замыкании кнопок SB-1 или SB-2 высокий логический уровень через логический элемент ИЛИ образованный диодами VD-6 и VD-7 поступает на затвор полевого транзистора VT-5,открывая его, и тем самым замыкая цепь питания двигателя. Это даёт возможность разделить цепи питания и управления, и использовать для управления миниатюрные слаботочные кнопки например тактовые кнопки и кроме того даёт возможность производить управление от внешнего устройства (например компьютера) подачей соответствующих логических уровней. Естественно через дополнительное устройство согласования. Можно ещё реализовать пошаговое управление, но не буду усложнять. Ведь это ПРОСТОЕ устройство. Диоды можно применить любые, кремниевые, какие влезут. Полевой транзистор следует выбирать исходя из напряжения питания и потребляемого тока применяемого двигателя. Полевых транзисторов сейчас продаётся много различной мощности с напряжениями сток-исток до сотен вольт и с токами стока до десятков ампер. Если применяется низковольтный двигатель, то желательно и транзистор выбирать низковольтный, так как у них меньшее сопротивление сток-исток, что предполагает меньшее падение напряжения и меньший нагрев и потери мощности.

По этой же причине желательно и в качестве VT1-VT5, так же использовать полевики с N-каналом. В этом случае сопротивление резисторов в цепи базы можно уменьшить, это не приведёт к перегрузке логических элементов. В исходной схеме не указан тип применённого стабилизатора, но я думаю, что 12вольт будет как раз. Следует учитывать, что мощные полевики, как правило, начинают интенсивно открываться при напряжении на затворе около 4 вольт и насыщаются при напряжении около 10 вольт. Вот вроде и всё. Изменённая схема и изменённая печатка прилагаются.

Недавно приобрел ARDUINO в Китае. Мыслей по изготовление различных устройств- море. Мигать светодиодом на плате очень быстро надоело, захотелось чего то более существенного. Конечно надо бы заказать набор но цена его несколько завышена и пришлось что то искать в интернете, что то придумывать самому. В итоге все равно заказал в том же Китае различные датчики, реле, индикаторы… Немного попозже пришел знаменитый индикатор 1602. С ним поучился работать, тоже довольно быстро освоился. Захотелось поуправлять шаговым двигателем от CD-DVD привода. Ждать с Востока посылку 1-2 месяца не захотелось и я решил попробовать сделать драйвер самостоятельно. Нашел вот такую схему включения биполярного шагового двигателя:

Микросхемы в нашей глуши я не нашел, или заказывать микросхемы в российских интернет-магазинах по стоимости 2-3 готовых драйверов за 1 микросхему. Микросхема представляет собой Н- мост из транзисторов. Кстати включать в мост надо или составные биполярные транзисторы (так называемые сборки Дарлингтона), или полевые транзисторы. Одиночным биполярным транзисторам нужна хорошая раскачка, которую контроллер дать не может, иначе получается очень высокое падение напряжение на транзисторе из за того что он открыться не может. Т.к. хороший товарищ занимается ремонтом компьютеров, то с полевиками проблем не возникло. Сначала хотел сделать на биполярниках- но получается в 2 раза больше транзисторов, что не совсем хорошо для габаритов драйвера, да и ток они выдержат гораздо меньший. Выпаяв около десятка полевых транзисторов и почитав на них даташиты я снова впал в уныние- в интернете есть схемы только на парах полевых транзисторов n- и p- типов. И ниодной схемы на транзисторах одного типа я просто не нашел. В компьютерах же используются транзисторы n- типа. Пришлось мудрить на макетной плате небольшой девайс на полевиках, попробовал управлять светодиодами, получилось и я решил собрать готовое устройство. Драйвер не нуждается в налаживании ибо налаживать здесь практически нечего. Единственная проблема возникла с программным обеспечением. Нашел даташит на похожий двигатель и по графикам работы выставил состояния выходов. После этого осталось только подобрать delay и все- устройство готово! Собственно схема замены микросхемы L293D.

Данные транзисторов даны просто так- в мультисиме никак не смог их изменить. Я использовал транзисторы P60N03LDG в корпусе ТО-252 . В ней все довольно просто: при поступлении напряжения на один из входов U1 или U2 открываются 2 транзистора в верхнем и нижнем плече, причем крест- накрест. Таким образом переключается полярность напряжения на двигателе. А чтобы не подавалось напряжение сразу на 2 входа (это вызовет КЗ цепи питания) и использовал схему включения L293D. При таком включении NPN-транзистор не позволяет открывать сразу все 4 транзистора Н-моста. Кстати 1 двигатель будет управляться по 2 выходам Arduino, что крайне важно для экономии выходов и входов микроконтроллера. Еще условие- минусовой провод транзисторных ключей обязательно должен быть соединен с минусовым выводом платы управления. Питание подается на плату управления от Arduino, на ключи- от внешнего БП. Это позволяет подключить достаточно мощные двигатели. Все зависит от характеристик транзисторов. Итак для одного драйвера вам нужно 8 полевых транзисторов (P60N03LDG или любые другие n-канальные), любые 2 SMD-биполярных транзистора NPN (у меня стоят с маркировкой t04), smd-резисторы типоразмера 0805, и 4 такие же перемычки того же размера (на них написано 000 или просто 0). Все эти детали можно найти на старых и негодных материнских платах. Обязательно проверьте детали перед установкой.

Плата драйвера Arduino

Выкладываю плату в формате Layout6. . Замечу что у вас должен получится именно такой вид- надписи должны быть читабельными а не перевернутыми, учитывайте это при печати платы, детали ведь будут установлены со стороны дорожек. Разъемы тоже выпаиваем из материнки феном, отрезаем сколько по надо количеству пинов и впаиваем в нашу плату- так гораздо удобнее и надежнее нежели чем паять провода в плату. Разберемся с назначением выводов: выводы Out1 и Out2- подключение обмоток шагового двигателя, In1,2- вход от Arduino, ±5V- питание управления от Arduino (сделал двойной разъем т.к. подключать питание можно шлейфом сразу к нескольким блокам), 2 перемычки располагаются на другой стороне платы, по ним подается напряжение на ключи. Размер платы- 43х33мм. Кто желает- может еще больше минимизировать.

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

Диаграмма работы шагового двигателя

Цифрами указаны номера шагов. Исходя из того что при переключении контроллером высокого уровня на низкий драйвер сам переключит нужные ключи, то пишем, например, состояния только для верхних графиков каждой обмотки. Первый шаг: первая обмотка- первый провод +(HIGH), другой автоматически переключится драйвером на минус (LOW), напоминаю что описываем по первому проводу каждой обмотки. Вторая обмотка: первый провод — (LOW), второй + (HIGH), второй провод переключится драйвером автоматически. Переходим к первому изменению графика. Это 2 шаг. Описываем состояние только первых проводов. 1 провод первой обмотки остался HIGH, 1 провод второй сменился с LOW на HIGH . Третий шаг- 1 провод первой обмотки сменился HIGH на LOW, 1 провод второй остался HIGH. Четвертый шаг: 1 провод первой обмотки остался LOW, 1 провод второй обмотки сменился с HIGH на LOW. Описывать можно с любого шага, главное сохранять последовательность. Чтобы двигатель вращался в другую сторону нужно просто сдвинуть в диаграмме значения любой обмотки на полцикла в любую сторону. Таким образом можно писать программное обеспечение для драйверов. Нужно лишь знать диаграмму и правильно описать ее состояние на выходные пины.

Теперь подключаем плату к Arduino, двигателю. Забрасываем такой скетч:

// подключаемся к 8,9 выводам arduino
int input1 = 8;
int input2 = 9;
int stepCount = 5; //задержка между шагами регулирует скорость двигателя

void setup()
{
pinMode(input1,OUTPUT);
pinMode(input2,OUTPUT);
}

void loop()
{
//1-ый шаг
digitalWrite(input1,LOW);
digitalWrite(input2,HIGH);
delay(stepCount);

//2-ой шаг
digitalWrite(input1,HIGH);
digitalWrite(input2,HIGH);
delay(stepCount);

//3-ий шаг
digitalWrite(input1,HIGH);
digitalWrite(input2,LOW);
delay(stepCount);

digitalWrite(input1,LOW);
digitalWrite(input2,LOW);
delay(stepCount);

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

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

Ниже представлена принципиальная схема драйвера шагового двигателя. Драйвер построен с использованием трех микросхем 4000 серии и четырех силовых MOSFET транзисторов.

Схема тактируется генератором прямоугольных импульсов, построенного на логических элементах 2И-НЕ с триггером Шмитта на выходе. Рабочая частота генератора определяется общим сопротивлением PR1 + R2 и емкостью конденсатора С1, и может быть изменена в широком диапазоне с помощью PR1.

Фрагмент схемы на элементах EXOR и J-K триггере создает счетчик по модулю 4, с тактами высокого уровня. Переключатель SB1 (JP1) предназначен для изменения направления работы счетчика, а, следовательно, для изменения направления вращения шагового двигателя. С помощью переключателя SB2 (JP2) можно запускать и останавливать двигатель.

Управление катушками 4-фазного шагового двигателя осуществляется с помощью четырех MOSFET транзисторов (VT1…VT4). Использование в данной схеме транзисторов высокой мощности типа BUZ11 — это решение, гарантирующее надлежащую работу двигателя высокой мощности.

Ниже показаны формы сигналов на разъеме Х2, к которому подключаются обмотки шагового двигателя.

Драйвер собран на печатной плате, рисунок которой приведен ниже. Монтаж следует начать с установки резисторов, панельки под микросхемы и закончить разъемами и силовыми транзисторами.

Разъемы JP1 и JP2 имеют ту же функцию, что и нажатие кнопки SB1 и SB2, так что вы можете подключить к ним кнопки и вынести их за пределы платы.
Печатная плата разработана таким образом, что вы можете установить транзисторы на общий радиатор, предварительно изолировав их слюдяными или силиконовыми прокладками.

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

Следует, упомянуть о способе подключения питания и обмоток двигателя к плате драйвера. В случае питания схемы управления и двигателя тем же напряжением, которое находится в диапазоне от 5…15 В, и ток потребления не превышает 1 А, то необходимо установить перемычку JP3 и питание подать к разъему VDD.

Если параметры питания шагового двигателя не находится в пределах напряжения питания схемы драйвера, то необходимо снять перемычку JP3, и к разъему VDD подвести напряжение питания от 5…15 В, а к разъему X2 подать питание в соответствии с параметрами шагового двигателя.

(8,5 Kb, скачано: 1 486)

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

Рисунок 1

Рисунок 1. Одна микросхема в корпусе для поверхностного монтажа и несколько пассивных компонентов могут управлять биполярным шаговым двигателем.

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

Драйвер шагового двигателя своими руками
— на Рисунке 1 показана альтернативная схема драйвера двигателя, основанная на аудио усилителе класса D компании Maxim. Микросхема МАХ9715 в миниатюрном корпусе для поверхностного монтажа может отдавать мощность до 2.8 Вт в типичную нагрузку 4 или 8 Ом. Каждый из двух выходов микросхемы образован Н-мостами из мощных MOSFET, управляющими парами линий OUTR+, OUTR- и OUTL+, OUTL-, которые подключаются к обмоткам А и В шагового двигателя, соответственно. Каждая пара формирует дифференциальный широтно-модулированный импульсный сигнал с номинальной частотой переключения 1.22 МГц. Малый уровень помех, создаваемых схемой, исключает необходимость в выходных фильтрах.

Конденсаторы развязки

Конденсаторы С1, С3, С4 и С6 служат развязкой для входов питания и смещения, а С5 и С7 выполняют накопительные функции для мощных выходных усилителей класса D. Конденсаторы С8 и С9 ограничивают полосу пропускания усилителя до 16 Гц, а ферритовые бусины L2 и L3 ослабляют электрические помехи, наводимые на длинные кабели. П-образный фильтр C1, C2, L1 подавляет помехи на входе питания микросхемы IС1. Входные сигналы микросхемы Шаг_А и Шаг_В, управляющие, соответственно, правым и левым каналами двигателя, могут формироваться любым подходящим контроллером. Внутренние цепи защищают усилитель от коротких замыканий и перегрева в случае неисправности шагового двигателя или неправильного подключения его выводов.

Таблица 1

Иллюстрация последовательности импульсов

Таблица 1 иллюстрирует последовательность импульсов Шаг_А и Шаг_В, управляющих вращением типичного шагового двигателя в одном направлении путем непрерывной подачи комбинаций сигналов от 0 до 4. Шаг 4 возвращает вал двигателя в исходное положение, завершая оборот в 360°. Чтобы изменить направление вращения мотора, начинайте формировать временную диаграмму импульсов снизу таблицы и последовательно двигайтесь по ней вверх. Подав напряжение низкого логического уровня на вход SHDN микросхемы (вывод 8), можно отключить оба канала усилителя. Формы сигналов на входах и выходах схемы представлены на Рисунке 2.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *