Приветствую Вас, Гость! Регистрация

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

Суббота, 27.04.2024


Главная » Статьи » Станки CNC » Электроника

Arduino UNO + CNC shield + DRV8825

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

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

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

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

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

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

Драйвер DRV8825

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

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

Схема драйвера DRV8825

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

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

Измерение напряжения для расчета тока ШД

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

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

Драйвер DRV8825

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

Температура драйвера со штатным радиатором

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

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

Теплоотводная площадка

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

Площадка на модуле драйвера DRV8825

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

Новые радиаторы закрепленные пружинной скобой

Новые радиаторы закрепленные пружинной скобой. Вид снизу

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

Сравнение радиаторов

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

CNC Shield с установленным драйвером с новым радиатором

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

Температура с новым радиатором

   CNC shield V3.0

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

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, то на ней изменение выводов учтено.

Принципиальная схема CNC Shield V3.0

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

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

   Прошивка GRBL.

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

Папка для копирования в Arduino libraries

    Копировать содержимое всего архива не надо. Только содержимое папки 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.

Программа GRBL Controller

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

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

Программа Universal Gcode Sender

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

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

 

 

 

 

Категория: Электроника | Добавил: Zlitos (19.10.2016) | Автор: А.В. Пьяных
Просмотров: 64158 | Комментарии: 5 | Теги: DRV8825, CNC shield, Adruino UNO | Рейтинг: 4.0/7
Всего комментариев: 5
5 plasmacut2002  
0
Спасибо за статью. Толково, доходчиво. Ждем новых статей и идей по применению ЧПУ

3 flashstrong  
0
Здравствуйте , тоже планирую сборку станочка с движками на 2 ампера и такой же электроникой, интерисуюсь вашими впечатлениями от вашей связке электроники и движков, всё ли работает стабильно ?

4 Zlitos  
0
Приветствую. На столе работает стабильно. На станок я все это так и не поставил. Был один сбой. Лежало все это дело на столе пару дней, потом включил и обнаружил, что ардуина зыбыла все настройки. Настроил заново. Месяц пролежало, пока я не получил новые двигатели. Включил проверить новые движки, все работает.

1 Yuferss  
0
Отличная статья. А с Grbl v1.1 не пробовали, работает?

2 Zlitos  
0
Приветствую! Версию 1.1 пока не пробовал. Она вышла совсем недавно. Чуть позже попробую. GRBL мне как раз пригодится.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]