- 3d-принтер и ЧПУ станок в одном устройстве своими руками
- Страницы
- воскресенье, 1 июня 2014 г.
- 3. Изготовление драйвера шагового двигателя (для экспериментов).
- Схема простого драйвера для униполярного шагового двигателя
- ОБОРУДОВАНИЕ ТЕХНОЛОГИИ РАЗРАБОТКИ
- Блог технической поддержки моих разработок
- Драйверы шагового двигателя: униполярный, биполярный, L298N.
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)
Схема простого драйвера для униполярного шагового двигателя
Схема драйвера униполярного шагового двигателя, описанная в данной статье, реализует следующие задачи:
• управление 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 KiB, скачано: 1 923)
ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ
Блог технической поддержки моих разработок
Драйверы шагового двигателя: униполярный, биполярный, 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.
1 | Sense A | Между этими выводами и землей подключаются резисторы — датчики тока для контроля тока нагрузки. Если контроль тока не используется, они соединяются с землей. |
15 | Sense B | |
2 | Out 1 | Выходы моста A. |
3 | Out 2 | |
4 | Vs | Питание нагрузки. Между этим выводом и землей должен быть подключен низкоимпедансный конденсатор емкостью не менее 100 нФ. |
5 | In 1 | Входы управления мостом A. TTL совместимые уровни. |
7 | In 2 | |
6 | En A | Входы разрешения работы мостов. TTL совместимые уровни. Низкий уровень сигналов запрещает работу моста. |
11 | En B | |
8 | GND | Общий вывод. |
9 | Vss | Питание логической части микросхемы (+ 5 В). Между этим выводом и землей должен быть подключен низкоимпедансный конденсатор емкостью не менее 100 нФ. |
10 | In 3 | Входы управления мостом B. TTL совместимые уровни. |
12 | In 4 | |
13 | Out 3 | Выходы моста B. |
14 | Out 4 |
Предельно допустимые параметры L298N.
Обозначение | Параметр | Значение |
Vs | Напряжение питания | 50 В |
Vss | Напряжение питания логики | 7 В |
Vi, Ven | Напряжение логических входов | -0,3. 7 В |
Io | Выходной ток (для каждого канала)
| |
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.
Обозначение | Параметр | Значение |
Vs | Напряжение питания (вывод 4) | Vih+2.5 . 46 В |
Vss | Питание логики | 4,5. 5 . 7 В |
Is | Потребляемый ток покоя (вывод 4)
| |
Iss | Потребляемый ток покоя (вывод 9)
| |
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) | Напряжение насыщения верхнего ключа
| |
Vce sat (l) | Напряжение насыщения нижнего ключа
| |
Vce sat | Общее падение напряжения на открытых ключах
| |
Vsens | Напряжение датчиков тока (выводы 1, 15) | -1 . 2 В |
Fc | Частота коммутаций | 25 . 40 кГц |
Схема подключения шагового двигателя к микроконтроллеру с помощью драйвера L298N.
Диаграмма работы этой схемы в полношаговом режиме выглядит так.
Если не используются разрешающие входы и датчики тока, схема выглядит так.
По функциям это аналог контроллера описанного в главе про униполярные двигатели, только для биполярного. Он также собран на PIC контроллере фирмы Microchip и управляет двумя биполярными шаговыми двигателями с током фаз до 2 А. Функциональные возможности и режимы управления двигателем те же.
К достоинствам управления шаговым двигателем в биполярном режиме следует отнести:
- крутящий момент примерно на 40 % больше по сравнению с униполярным режимом.
- можно подключать шаговые двигатели с любой конфигурацией обмоток.