Страница 1 из 1
Как настроить количество шагов на миллиметр? Arduino uno.
Добавлено: 07 июн 2019, 01:35
voverrr
Здравствуйте.
Подскажите, как уже подсчитать количество этих самых шагов?
Прочитал километр руководств, так ничего не подходит.
Что имею:
Самодельный лазерный станок(его пока не имею. Его строю).
Двигатель NEMA 23. 200 шагов на оборот.
Драйвер DM 542, выставлено 400 микрошагов, Это самое маленькое значение.1 ампер. SW4=ON
Шаг резьбы на шпильке = 1,75. Шпилька М12 из леруи. Да, знаю. Мне попробовать, чтобы всё закрутилось хотя бы.
Arduino UNO + GRBL 1.1
Artcam 2018
GRBLcontroller
Нашёл методику расчёта шагов:
http://www.cnc-club.ru/wiki/index.php/ArduinoGRBL
В самом низу страницы предпоследний абзац.
Что там говорится:
Для ШВП. Вводные:
1. Шаг винта мм/оборот
2. Число полных шагов на один оборот вала двигателя, для шагового двигателя обычно 200 но может быть и меньше (смотрите документацию на двигатель).
3. Микрошаг (деление шага, установленное на драйвере двигателя) если полный шаг берем 1.
Шагов на миллиметр = Число полных шагов * микрошаг / Шаг винта.
Пример для оси Y: Шаг винта = 5, Число полных шагов = 200, микрошаг = 8; 200 * 8 / 5 = 320
Задаем новое значение для оси Y: $101 = 320 OK, делаем сброс CTRL-X и проверяем перемещение (например F500 G1 Y30).
Тоже самое для других осей.
В моём случае
Шагов на миллиметр = 200*400/1,75 = 45714 выглядит непрадоподобно.
Что я делаю не так?
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 02:07
sas_75
Все верно. Если пугает число, убавьте увеличьте микрошаг (убавьте количество микрошагов)
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 02:34
xenon-alien
voverrr писал(а):SW4=ON
Отвечает за удержание ШД в простое. Полный ток, или половина
voverrr писал(а):Шагов на миллиметр = 200*400/1,75 = 45714 выглядит непрадоподобно.
Что за цифра 400?
Первая позиция на драйвере обычно 1/2 микрошага
200 шагов и 1/2 микрошага на драйвере - это 400 микрошагов (т.е 200*2) Если на драйвере только микрошаги, то на 200 умножать не надо.
(бывают ШД и на 400 шагов на оборот и на вашем драйвере минимальным будет уже будет 800 микрошагов в позиции первой)
400 микрошагов / 1,75 = 228,5714285714286....
Что бы по формуле, то 200 * 2 / 1,75 = 228,5714285714286....
Очень не удобный шаг винта. Так что лучше присмотритесь к шагу 1,5мм, или 2мм
И перепроверьте положения SW.
Даже можете сфотографировать и сюда выложить. Так же таблицу положений.
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 07:46
voverrr
sas_75 писал(а):убавьте количество микрошагов
дык меньше 400 нет.
xenon-alien писал(а):Первая позиция на драйвере обычно 1/2 микрошага
Шаг винта 1,75 - да, неудобный. Опробую на этой шпильке, а потом буду нарезать или покупать трапециевидную резьбу.
Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Вот фотки драйвера.
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 07:52
Taganrog
voverrr писал(а):Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Это одно и тоже. На некоторых драйверах пишут сам делитель 1/2,1/4,1/8,1/16 а на некоторых как у тебя - результат 400,800,1600... (реальное число импульсов на оборот, считается что у тебя стандартный двигатель с 200 имп/об)
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 07:56
daemon78
voverrr писал(а):дык меньше 400 нет.
400, это уже посчитано сразу для движков на 1.8 градуса, то есть тут делитель 1/2
Далее у Вас идет 800, это 1/4. Короче умножайте на 200 число обратное написанному и получите делитель.
У меня такие же дравйвера, после ТБ6600 не нарадуюсь на них.
Упссс, Taganrog опередил
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 08:23
voverrr
тогда получается, что:
200*0,5/1,75 = 57,142
вот эти 57,142 я выставляю
$100=57.142
$101=57.142
$102=57.142(необязательно, т.к. у меня для лазера оси Z нет).
И он ползает меееедленно-меееедленно и всё равно каретка проходит не 10см(я нарисовал в задании квадрат 100х100мм), а меньше.
Получается, количество шагов влияет ещё и на скорость. Как так?
>У меня такие же дравйвера, после ТБ6600 не нарадуюсь на них.
Мне сравнивать не с чем, это моё первое поделие, но я несколько раз читал, что ДМ542 лучше, чем ТБ6600 и покупал уже целенаправленно их.
А скажите, есть ли разница, если на оси Х и У будут оба ДМ542, но от разных производителей? Я купил сначала только один, думал, он умеет управлять сразу тремя движками. Оказалось, что один драйвер=один двигатель. Сейчас оплатил второй, он пока где-то в пути.
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 08:32
daemon78
voverrr писал(а):Получается, количество шагов влияет ещё и на скорость. Как так?
Ну тут не все так просто, надо учесть максимальную частоту сигналов, которую выдает контроллер, затем поделить на делитель. Чем больше делитель, тем меньше максимальная скорость станка, так как упираемся в частоту генерации сигналов контроллера. Но в любом случае, Вам не сюда надо копать.
Вот, почитайте комментарии, по моему Ваш случай
https://3dtoday.ru/questions/trapetseid ... vo-shagov/
voverrr писал(а):А скажите, есть ли разница, если на оси Х и У будут оба ДМ542, но от разных производителей? Я купил сначала только один, думал, он умеет управлять сразу тремя движками. Оказалось, что один драйвер=один двигатель. Сейчас оплатил второй, он пока где-то в пути.
Нет, разницы нет, если не совсем галимая подделка. У меня была ситуация такая же, пришли 2 DM542 и 1 DM546 (я его для 4-ой) оси хотел использовать. Пока не приехал трети DM542 стояло два 542 и 1 546. Все норм было.
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 09:19
nevkon
voverrr писал(а):тогда получается, что:
Неправильно получается. Умножать надо на делитель, т.е. если микрошаг 1/2, то умножаем на 2, если 1/16, то на 16.
А вообще у вас на двигателе ведь почти по русски написано - "импульсов на оборот", а не делитель или микрошаг. Если двигатель классический (99% что классика), то берите сразу цифру из таблицы - она для ленивых.
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 09:37
Alex lamaka
.
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 09:49
Alex lamaka
228.571429 шагов на мм. Скорость и ускорение не зависят от шагов. Проезжать должен сколько нужно. На шпильке лазер - это содомия для нервов.
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 10:04
sas_75
На контроллере указано количество шагов (микрошагов) на оборот (для двигателя с 200 полными шагами на оборот, 1.8 град). Берете это число и делите на шаг винта, получаете кол-во импульсов на 1мм
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 15:02
xenon-alien
voverrr писал(а):Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Вот фотки драйвера.
Пример википедии относится к таким драйверам. Что на вашем 400 то на этих 2, или 1/2. Это всё одно и тоже.
xenon-alien писал(а):Что бы по формуле, то 200 * 2 / 1,75 = 228,5714285714286....
voverrr писал(а):тогда получается, что:
200*0,5/1,75 = 57,142
xenon-alien писал(а):400 микрошагов / 1,75 = 228,5714285714286....
xenon-alien писал(а): Если на драйвере только микрошаги, то на 200 умножать не надо.
У вас на драйвере уже посчитан микрошаг. Т.е вам не нужно на 200 умножать. (400 pulse/rev - импульсов на оборот) То ктайские цифры, так что это всё не так просто. Так как если верить написаному, То ШД дожнен был бы сделать 400 шагов а это уже 2 оборота при ШД 200 шагов и 1.8 градусов.
Но драйвер делит шаги и при 400 импульсов он действительно делает один оборот. (при ШД 200 шагов и 1.8 градусов.)
Попробую пояснить проще: деление шага это мы делим угол поворота. т.е 1.8 градусов / 2 = 0.9
А что бы двигатель сделал полный оборот это сколько микрошагов? 360 градусов (один оборот) / 0,9 = 400 микрошагов
Понятней не могу объяснить...

Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 17:44
voverrr
Я весь день бегал по объектам, вернулся, а вы тут вон сколько понаписали!
Спасибо!
xenon-alien
правильно ли я понимаю, что при моих условиях на драйвере можно выставить шаг и больше, чем 400, но переменные $100-$102 пересчитать и в этом случае количество шагов на один оборот будет больше, а значит и плавность подачи будет лучше? При одной и той же скорости хода каретки.
Сегодня вечером доберусь до дома и всё это опробую.
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 21:19
daemon78
voverrr писал(а):оличество шагов на один оборот будет больше, а значит и плавность подачи будет лучше?
Но максимальная скорость будет меньше, так как ардуино вроде 20 КГц держит.
Для лазера вроде это критично
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 07 июн 2019, 22:59
xenon-alien
voverrr писал(а):при моих условиях на драйвере можно выставить шаг и больше, чем 400, но переменные $100-$102 пересчитать и в этом случае количество шагов на один оборот будет больше, а значит и плавность подачи будет лучше? При одной и той же скорости хода каретки.
По идее да, НО:
Дробление шага придумано для плавной работы ШД, но чем больше дробление, тем меньше крутящий момент. Обычно в даташитах бывают таблицы зависимости импульсов в секунду к моменту. Т.е. для метрической шпильки не желателен максимально возможное дробление. Обычно это 1/4, или 1/8 шага, в вашем случае это в таблице 800 и 1600 микрошагов. Что бы при фрезеровке не пропускались шаги.
Так что вероятный и такой исход, что бы была приемлемая скорость перемещения придется остаться на 400 микрошагаг (т.е. дробление 1/2)
daemon78 писал(а):Но максимальная скорость будет меньше, так как ардуино вроде 20 КГц держит.
Т.е. это означает, что электроника ограничена максимальным количеством импульсов.
К примеру 1600/1,75 = 914,29 импульсов-шагов /мм округлим это значение к 1000 что бы было проще считать.
20 КГц = 20 000 импульсов, т.е. 20 мм/сек будет максимальная скорость, или же 1200 мм/мин (это если я ничего не путаю...) при дроблении шага 1/8.
Но это всё теория и нужно проверять на практике.
И если пропускает шаги, то снижать дробление до 1/4, или 1/2 (800, или 400).
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 08 июн 2019, 00:49
voverrr
всё получилось.
при выставленном 400 шаге, суть 1/2 $100=228.57142
и при выставленном 800 шаге, множитель $100=457,14
каретка проходит одно и то же расстояние. Скорость, по-моему, та же самая. Про плавность судить не могу.
>И если пропускает шаги
А как вы понимаете, что он пропускает шаги? Это когда в GRBL-controller при возвращении в ноль на табло остаются какие-то десятые/сотые?
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 08 июн 2019, 01:19
xenon-alien
voverrr писал(а):Скорость, по-моему, та же самая.
Скорость перемещения зависит от другого параметра
$110, $111, $112, или что пропишите в коде F50, или F1200 (это мм/мин)
$120, $121, $122 (выставите слишком большое ускорение - может пропустить шаги, просто не успеет разогнаться)
voverrr писал(а):А как вы понимаете, что он пропускает шаги? Это когда в GRBL-controller при возвращении в ноль на табло остаются какие-то десятые/сотые?
Вот как раз на табло будет как надо, а в реале нет.
Это уже практика покажет. Когда ШД гудит-трещит и при этом не движется никуда каретка.
Но на глаз это может быть и не заметно, только после измерений.
У меня был перегрев, но это сути не меняет. (в конце видео будет видно)
https://www.youtube.com/watch?v=e9WGdacYF5o
Re: Как настроить количество шагов на миллиметр? Arduino uno
Добавлено: 09 июн 2019, 12:25
voverrr
ну, вроде проясняется.
Подскажите тогда ещё вот такую штуку?
Создаю контуры в автокаде, открываю в арткаме, потом /nc открываю в GRBL controller
Запускаю на выполнение, он проходит одну линию и останавливается.
подозреваю, что как-то не так делаю траекторию в арткаме.
В то же время один файлик в арткаме получился из того же самого DXF, просто делал пару дней назад и его отрабатывает нормально.
Что нужно указать в арткаме, чтобы оно нормально поехало?
На первом скриншоте место, где место, где останавливается каретка.
На втором - настройки арткама. Создал инструмент "лазер" с толщиной 0,1мм, его использовал во всех случаях при создании траектории.
настройки грбл
Grbl 1.1g ['$' for help]
$0=10
$1=25
$2=0
$3=0
$4=0
$5=0
$6=0
$10=1
$11=0.010
$12=0.002
$13=0
$20=0
$21=0
$22=0
$23=0
$24=25.000
$25=500.000
$26=250
$27=1.000
$30=1000
$31=0
$32=1
$100=457.142
$101=457.142
$102=457.142
$110=500.000
$111=500.000
$112=500.000
$120=10.000
$121=10.000
$122=10.000
$130=800.000
$131=800.000
$132=800.000