Step/dir, электропривод 2D, это просто

Содержание

Управление движением шагового двигателя на основе микроконтроллера ATmega.

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

В исследовательских целях, сделал свой вариант любительской программы управления для двух шаговых двигателей, которые управляемо перемещаются по оси координат X и Y.

Применение этой схемы, возможно для управления электроприводом веб-камеры, камеры наблюдения, прожектором освещения и т.д. и т.п.
Схема 1. 2. 3.

В этой схеме возможно применение таких МК ; ATmega48, ATmega88, ATmega168 (соответствующие прошивки находятся в архиве файлов) .

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

Испытания производились с униполярным ШД типа 28BYJ-48,

небольшой, недорогой, в продаже доступен. По выгодной цене сделать покупку можно здесь aliexpress.com/motor-28BYJ-48-5V

Соотношение 64:1 создает на валу ШД достаточное усилие, чтобы производить управление – движение какими либо приборами.

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

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

Интересное заключается в том, вместо 380 гр./см при униполярном подключении, можно получить крутящий момент 800 гр./см при биполярном включении.

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

Чтобы переделать 28BYJ-48 из униполярного типа в биполярный, это нужно отрезать красный провод на схеме выше (справа) и не использовать центральное соединение, промаркированное 2+3+6+7, и аккуратно перезать на плате двигателя одну соединительную дорожку. В результате получим схему, показанную слева.

Переделка делается это без разборки двигателя , пример показан на картинке и в видео

С шаговыми моторчиками типа 28BYJ-48 такую операцию можно проделать довольно просто. Вам потребуется острый нож и маленькая отвертка. Сначала нужно снять синюю пластиковую крышку, чтобы получить доступ к печатной плате. На ней можно увидеть одиннадцать точек припоя. Они фиксируют проводку однополярного шагового двигателя.

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

Драйвер биполярного двигателя отличается от униполярного , теперь например, подойдет драйвер с микросхемой L293D или SN754410.

В программе к данной схеме возможно, как ручное управление движения шаговыми двигателями по оси координат X и Y ( с помощью кнопок Кн1….Кн4 ), так и с возможностью установки 4-х фиксированных положений, для кнопок Кн_п1….Кн_п4.

Программное ограничение крайних положений движения ШД, калибровка начала и окончания движения, производится с помощью кнопок Кн5 и Кн1….Кн4..

Индикация режимов работы программы производится светодиодом L-1.

При нормальной работе устройства ( дежурный режим ) светодиод L-1 , кратковременно мигает 1 раз в три секунды.

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

К примеру, нам нужно задать диапазон движения ШД по оси Y. Нажатием кнопки Кн2 задаем нужное положение ШД, или это будет считаться как « », условный отсчет начала движения.

После корректировки кнопкой Кн2, начала координаты Y, действие сопровождается миганием светодиода L-1 с частотой 3Гц, чтобы закончить процесс и внести в память МК эту координату, кратковременно нажимаем Кн5 , в подтверждение действия светодиод L-1 горит постоянно. Программа далее готова к установке следующего параметра по оси Y, т.е. максимальной точки движения.

Нажатием кнопки Кн1, достигаем нужной крайней точки, и далее аналогично описанному выше, вносим нужную нам крайнюю координату в память МК, кратковременным нажатием на Кн5.
Настройка диапазона движения по оси Х производится кнопками Кн3 и Кн4 , аналогично описанному выше для оси Y.

Возможность 4х программных предустановок положения ШД, по осям X и Y.
Фиксированное положение ШД по X и Y , для кнопок Кн_п1….Кн_п4, задать просто.
Пример для кнопки Кн_п1, сначала запись координаты – с помощью кнопок Кн1…..Кн4 задаем нужное нам положение ШД, затем кратковременно нажать Кн5 , светодиод L-1 начинает мигать с частотой 0.5Гц, после этого можно нажать Кн_п1 , данная координата будет записана в память МК.

Теперь в каком бы положении не находились ШД, при нажатии на Кн_п1 ШД вернется на то место, где была произведена запись этой координаты.
Запись координат для кнопок Кн_п2, Кн_п3, Кн_п4, аналогично описанию выше для Кн_п1.

При обесточке схемы, с помощью использования встроенного в микроконтроллер аналогового компаратора, установленное положение ШД по осям X и Y , в момент исчезновения питания схемы, сохраняются в память МК.

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

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

Подключение по схеме №2, теоретически по качеству определения, уступает схеме №1. Мной были проведены испытания именно по варианту №2 , разницу качества не заметил, преимущество включения аналогового компаратора схеме №2 не требуется никаких настроек (разве что по питанию 5 вольт конденсатор 470мкф*, желательно увеличить емкость) .

Пример работы аналогового компаратора подключение по схеме №2. Осциллограмма снята с соответствующих выводов МК – AIN0 и AIN1.

Работа двигателей реализована типичным режимом полушага Half step

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

Перемычка Jp1 предназначена для способа удержания тока в обмотках ШД.

  • Если перемычка установлена, после окончания движения ШД питание на обмотках остается подключено постоянно.
  • Если перемычка отсутствует, после окончания движения ШД питание на обмотках отключается.

Для каждой оси движения X и Y возможно установить по одной из 5-ти скоростей частоты управления для ШД.

Два способа изменить частоту управления ШД (скорость ШД).

1-й кнопками. Во время включения устройства или считается как первая подача питания на схему управления.

Удерживать нажатой кнопку Кн5 и любую из Кн1 . Кн4.

Например, при включении пару секунд удерживаем Кн5 и Кн2 , результат действия будет уменьшение скорости ШД по оси Х, если это будет Кн5 и Кн1 результат будет увеличение скорости ШД по оси Х на один шаг.

Действие можно производить несколько раз пока не будет достигнута нужная вам скорость. Процедура выбора скорости для оси Y аналогична, с применением кнопок Кн5, Кн3 и Кн4.

2-й способ, выбор скорости производится правкой значений в файле .еер

Нужно считать с вашего МК данные энергонезависимой памяти (.еер), и в ячейки указанные на рисунке выше, вносится правка чисел от 0 до 4.

Что соответствует частоте сигнала управления для ШД, 0=120 кГц, 1=60 кГц, 2=30 кГц, 3=15 кГц, 4=7.5 кГц

FUSE

Программа тактуется от внутреннего генератора МК, с частотой 8 МНz.

Комплектующие для станков с ЧПУ и систем автоматизации

Драйверы 3-х фазных шаговых двигателей

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

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

Драйвер 3DM580, код ER-00010135

Драйвер трехфазного шагового двигателя Leadshine 3DM580 50В/8А/500кГц для 3х фазных двигателей 3PL42 и 3PL57. 16 режимов деления шага от 1:2 до 1:512. Оптоизолированные входы управления STEP, DIR, ENABLE. Выбор режима работы STEP/DIR или CW/CCW. Настройка драйвера с ПК через RS232, автонастройка под ШД. Компенсация резонанса и определение останова ротора ШД. Защита от КЗ обмоток ШД, от обратной ЭДС ШД, режим удержания ротора ШД.

Драйвер 3DM683, код ER-00010143

Драйвер трехфазного шагового двигателя Leadshine 3DM683 60В/8.3А/500кГц для 3х фазных двигателей 3PL57 и 3PL86. 16 режимов деления шага от 1:2 до 1:512. Оптоизолированные входы управления STEP, DIR, ENABLE. Выбор режима работы STEP/DIR или CW/CCW. Настройка драйвера с ПК через RS232, автонастройка под ШД. Компенсация резонанса и определение останова ротора ШД. Защита от КЗ обмоток ШД, от обратной ЭДС ШД, режим удержания ротора ШД.

Драйвер 3DM2283, код ER-00010144

Драйвер трехфазного шагового двигателя Leadshine 3DM2283

220В/11.7А/200кГц. Деления шага от 1:2 до 1:512. Оптоизолированные входы управления STEP, DIR, ENABLE. Выбор режима работы STEP/DIR или CW/CCW. Настройка драйвера с ПК через RS232, автонастройка под ШД. Компенсация резонанса и определение останова ротора ШД. Защита от КЗ обмоток ШД, от обратной ЭДС ШД, режим удержания ротора ШД.

Драйвер YKD3606M, код ER-00010147

DSP драйвер трехфазного шагового двигателя Yako YKD3606M 60В/5.9А/300кГц для 3х фазных двигателей 3PL57 и 3PL86. 16 режимов деления шага от 1:2 до 1:200. Оптоизолированные входы управления STEP, DIR, ENABLE. Защита от КЗ обмоток ШД, от обратной ЭДС ШД, датчик температуры, режим удержания ротора ШД половинным током.

Драйвер YKD3608MH, код ER-00010148

DSP драйвер трехфазного шагового двигателя Yako YKD3608MH

80В/6А/300кГц для 3х фазных двигателей 3PL86. 16 режимов деления шага от 1:2 до 1:200. Оптоизолированные входы управления STEP, DIR, ENABLE. Защита от КЗ обмоток ШД, от обратной ЭДС ШД, датчик температуры, режим удержания ротора ШД половинным током.

Драйвер YKD3722M, код ER-00012221

DSP драйвер трехфазного шагового двигателя Yako YKD3722M

220В/7А/400кГц для 3х фазных двигателей 3PL110 и 3PL130. 16 режимов деления шага от 1:2 до 1:200. Оптоизолированные входы управления STEP, DIR, ENABLE. Защита от КЗ обмоток ШД, от обратной ЭДС ШД, режим удержания ротора ШД половинным током. Питание от сети переменного тока

Драйверы 3-х фазных шаговых двигателей имеют следующие особенности:

  • 16 режимов деления шага;
  • оптоизолированные входы управления STEP, DIR, ENABLE;
  • выбор режимов работы STEP/DIR и CW/CCW;
  • автонастройка параметров под шаговый двигатель;
  • настройка драйвера с ПК через RS232;
  • компенсация резонанса и определение останова ротора ШД;
  • датчик температуры;
  • защита от КЗ обмоток ШД, от обратной ЭДС ШД, режим удержания ротора ШД.

Трехфазные шаговые двигатели обладают рядом важных преимуществ перед стандартными двухфазными ШД:

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

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

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

Как правильно выбрать

При выборе драйвера трехфазного ШД необходимо учитывать следующие параметры:

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

С этим товаром покупают:

—>Персональный сайт Пьяных А.В. —>

Мой первый станок оказался без блока управления. Беда. Дело было так…

У нового станка был сильный резонанс с потерей шагов и даже заклиниванием вала по оси Х, причем на невысоких скоростях. Я попробовал подключить ШД оси Х через драйвер Geckodrive. У него было заявлено подавление резонансов. Geckodrive был установлен в блоке управления первым станком, пришлось изъять его оттуда. С ним все заработало. Резонанс остался, но сильно уменьшился. Пропуска шагов и заклинивания не стало. Я все так и оставил.

Для другого проекта я заказывал Arduino CNC Shield V3.0 и драйверы шаговых двигателей DRV8825 к шилду. Тот проект пока находится в стадии обдумывания исполнения механической части. В ближайшее время его реализация не предвидится.

Решил я посмотреть, что может Arduino Uno с установленным CNC Shield и DRV8825, надеясь применить его для управления первым станком.

Модуль управления шаговым двигателем DRV8825.

Основой модуля драйвера ШД является микросхема DRV8825.

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

  • Напряжение питания – 8,2-45В;
  • Ток обмотки двигателя – до 2,5А;
  • Деление шага – до 1/32;
  • Частота step/dir – 250кГц;
  • Защита – по току от перегрева, перенапряжения.

Как выставить ток ШД на драйвере DRV8825? А вот так. Ток выставляется переменным резистором, расположенным на плате драйвера.

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

Ток двигателя = Измеренное напряжение * 2

С модулем в комплекте идет микроскопический радиатор.

Может быть этого радиатора и достаточно для двигателей с током 0,5А и при условии интенсивного обдува, но у меня на станке установлены двигатели NEMA23 с 57 фланцем и номинальным током 2,8А. Попытка включить двигатель с установленным током 2А без интенсивного обдува (небольшой ветерок от потолочного вентилятора все таки был) привела к сильному нагреву.

Дальше я греть не стал, запахло канифолью и я выключил питание.

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

На плате под этой площадкой сделаны металлизированные переходы для распределения тепла на обе стороны платы.

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

Для сравнения старый и новый радиатор.

Модуль, установленный на плату.

Теперь в тех же условиях температура колебалась от 37 до 40 градусов в зависимости от нагрузки на двигатель.

CNC shield V3.0

Плата предназначена для управления станком с ЧПУ.

Цена на Али порядка 250 рублей. Устанавливается на Arduino UNO или другие совместимые платы. На плату устанавливаются 4 драйвера шаговых двигателей. Ось А может дублировать одну из осей X, Y или Z (выставляется джамперами). Отдельно на плате выведены интерфейсы UART, I2C. Ходят слухи, что есть прошивка GRBL с поддержкой экрана. Также к плате можно подключить 4 кнопки (reset/abort, feed hold, start/resume, E-stop) и концевики осей X, Y и Z. Есть еще и управление охлаждением/подачей смазывающе-охлаждающей жидкости. Есть выход Enable для драйверов ШД.

В версии прошивки GRBL 0.9 ребята что-то придумали по-другому, и в итоге получилось так, что в CNC Shield v3.0 поменялись местами контакты Z+ (контакт концевика) и SpnEn (запуск шпинделя). Я думаю, что они освободили ШИМ вывод 11 Arduino для PWM управления оборотами шпинделя, который был занят концевиком. Если Вам в руки попала плата CNC Shield RGBL 0.9 Compatible, то на ней изменение выводов учтено.

Запуск «бутерброда»

Для того, чтобы двигатели ожили, необходимо прошить в Arduino прошивку c «нежным» названием GRBL. Прошивка ориентирована на станки с ЧПУ в отличие от Marlin, которая ориентирована в первую очередь на 3D принтеры. Далее отправляем команды G-кода с компьютера в Arduino, прошивка рассчитывает количество импульсов для драйверов в соответствии с настройками прошивки.

Прошивка GRBL.

GRBL доступна на Github. Скачиваем архив. А теперь внимание! Распаковываем архив в любую директорию. Из распакованного архива папку grbl копируем в директорию, содержащую библиотеки Arduino IDE.

Копировать содержимое всего архива не надо. Только содержимое папки grbl. Перезагружаем Arduino IDE. Заходим в меню ЭСКИЗ – Include Library выбираем grbl.

Получаем нечто подобное.

Нажимаем прошить. Соответственно COM-порт и тип платы уже должны быть выбраны. После завершения прошивки открываем консоль.

Видим строку Grbl 0.9j [‘$’ for help] (1). Пишем команду $$ в поле (2), жмем ввод. В ответ получаем список настроек (3). Для изменения настроек набираем (например, для изменения количества шагов на мм по оси Х) $100=3200 и жмем ввод. В моем случае 3200 шагов на один мм.

Расчет, кому интересно.

  • Двигатель 1,8 градуса на шаг, 360 градусов на оборот — 360/1,8 =200 шагов на один оборот
  • режим микрошага 1/32, 200*32=6400 шагов на оборот
  • шаг винта 2мм, 6400/2=3200 шагов на мм.

Основные параметры прошивки для первоначальной настройки:

  • количество шагов на мм $100, $101, $102
  • максимальная скорость $110, $111, $112
  • ускорение $120, $121, $122.

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

Программа отправки G-кода.

Самая популярная GRBL Controller.

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

Вторая программа Universal G-code Sender. Качать здесь.

Очень похожа на первую. Работает на Яве. Антивирус у меня по умолчанию запустил ее в песочнице, пришлось ему объяснять, что все хорошо, все свои.

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

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

Законченный микрошаговый STEP/DIR контроллер шагового двигателя на базе микросхемы Allegro A4988 DMOS.

Умеет ограничивать ток (регулируется потенциометром на плате) и дробить шаг (устанавливается лог уровнями на MS1-MS3).

  • Напряжение питания силовой части (VMOT) 8 — 35В
  • Напряжения питания логической части (VDD) 3-5,5В
  • Ток максимальный, непрерывный, без дополнительного охлаждения 1А
  • Ток максимальный, с дополнительным охлаждением 2A
  • Дробление шага 2/4/8/16

Настоятельно рекомендуется устанавливать радиатор и электролитический конденсатор 100мкф по питанию (VMOT-GND) в непосредственной близости от платы.

Схема подключения драйвера;

Ограничение тока

Для достижения высоких темпов шага , питания двигателя , как правило, гораздо выше, чем это было бы допустимо без ограничение активного тока . Например , типичный шаговый двигатель может иметь номинальный ток не более 1 А с сопротивлением 5Ω катушки , при максимальном питании электродвигателя 5 В. Использование такого двигателя с 12 V позволит иметь более высокие темпы шага, но ток должен активно ограничивается до 1 А , чтобы предотвратить повреждение двигателя .

A4988 поддерживает такое ​​активное ограничения тока , и потенциометр на плате может быть использован для установки текущего предела . Один из способов установить ограничение тока это поставить драйвер в режим полного шага и измерить ток, протекающий по одной катушке двигателя без тактирования STEP входа . Измеренный ток будет 0,7 раза превышает нынешний предел ( так как обе катушки всегда ограничивается 70% от установленного предельного значения тока в полном объеме пошаговом режиме ) . Пожалуйста, обратите внимание , что изменение логическое напряжение , Vdd , на другое значение можно изменить значение параметра предельного тока с напряжением на исх контактный является функцией Vdd .

Еще один способ , чтобы установить ограничение тока является измерение напряжения на REF штифта и расчета конечного предела тока ( ток резисторы являются 0.05Ω ) . К онтактная площадка для измерения напряжения доступна на нижней стороне печатной платы . Предел тока относится к опорному напряжению следующим образом:

Ограничение тока = VREF × 2,5

Так , например, если опорное напряжение 0,3 В , предельный ток 0,75 А. Как уже упоминалось выше , в полном пошаговом режиме , ток через катушки ограничены до 70% от текущего ограничения , таким образом, чтобы получить полный дуплекс шаг катушки ток 1 А , предельный ток должен быть 1 / 0,7 = 1,4 , что соответствует VREF 1,4 A / 2,5 = 0,56 V. Смотрите A4988 технический паспорт для получения дополнительной информации .

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


Источник: avtoargon.ru