Как настроить количество шагов на миллиметр? Arduino uno.
- voverrr
- Мастер
- Сообщения: 242
- Зарегистрирован: 07 июн 2019, 01:22
- Репутация: 4
- Настоящее имя: Vladimir Mironov
- Откуда: Moscow
- Контактная информация:
Как настроить количество шагов на миллиметр? Arduino uno.
Здравствуйте.
Подскажите, как уже подсчитать количество этих самых шагов?
Прочитал километр руководств, так ничего не подходит.
Что имею:
Самодельный лазерный станок(его пока не имею. Его строю).
Двигатель 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 выглядит непрадоподобно.
Что я делаю не так?
Подскажите, как уже подсчитать количество этих самых шагов?
Прочитал километр руководств, так ничего не подходит.
Что имею:
Самодельный лазерный станок(его пока не имею. Его строю).
Двигатель 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 выглядит непрадоподобно.
Что я делаю не так?
-
sas_75
- Мастер
- Сообщения: 463
- Зарегистрирован: 10 мар 2015, 11:03
- Репутация: 115
- Настоящее имя: Сергей
- Откуда: Владивосток
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Все верно. Если пугает число, убавьте увеличьте микрошаг (убавьте количество микрошагов)
- xenon-alien
- Почётный участник

- Сообщения: 4520
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 925
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Отвечает за удержание ШД в простое. Полный ток, или половинаvoverrr писал(а):SW4=ON
Что за цифра 400?voverrr писал(а):Шагов на миллиметр = 200*400/1,75 = 45714 выглядит непрадоподобно.
Первая позиция на драйвере обычно 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.
Даже можете сфотографировать и сюда выложить. Так же таблицу положений.
- voverrr
- Мастер
- Сообщения: 242
- Зарегистрирован: 07 июн 2019, 01:22
- Репутация: 4
- Настоящее имя: Vladimir Mironov
- Откуда: Moscow
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
дык меньше 400 нет.sas_75 писал(а):убавьте количество микрошагов
Шаг винта 1,75 - да, неудобный. Опробую на этой шпильке, а потом буду нарезать или покупать трапециевидную резьбу.xenon-alien писал(а):Первая позиция на драйвере обычно 1/2 микрошага
Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Вот фотки драйвера.
- Taganrog
- Мастер
- Сообщения: 1238
- Зарегистрирован: 15 апр 2015, 16:32
- Репутация: 284
- Настоящее имя: Евгений
- Откуда: Брянск
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Это одно и тоже. На некоторых драйверах пишут сам делитель 1/2,1/4,1/8,1/16 а на некоторых как у тебя - результат 400,800,1600... (реальное число импульсов на оборот, считается что у тебя стандартный двигатель с 200 имп/об)voverrr писал(а):Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
- daemon78
- Мастер
- Сообщения: 1693
- Зарегистрирован: 02 окт 2018, 15:02
- Репутация: 103
- Настоящее имя: Владимир
- Откуда: Москва
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
400, это уже посчитано сразу для движков на 1.8 градуса, то есть тут делитель 1/2voverrr писал(а):дык меньше 400 нет.
Далее у Вас идет 800, это 1/4. Короче умножайте на 200 число обратное написанному и получите делитель.
У меня такие же дравйвера, после ТБ6600 не нарадуюсь на них.
Упссс, Taganrog опередил
Мой первый станок Первый станок Кусака 1 и куча вопросов #1
Мой второй станок Кусака 2.0 и вопросы к форумчанам #1
Мой второй станок Кусака 2.0 и вопросы к форумчанам #1
- voverrr
- Мастер
- Сообщения: 242
- Зарегистрирован: 07 июн 2019, 01:22
- Репутация: 4
- Настоящее имя: Vladimir Mironov
- Откуда: Moscow
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
тогда получается, что:
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, но от разных производителей? Я купил сначала только один, думал, он умеет управлять сразу тремя движками. Оказалось, что один драйвер=один двигатель. Сейчас оплатил второй, он пока где-то в пути.
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, но от разных производителей? Я купил сначала только один, думал, он умеет управлять сразу тремя движками. Оказалось, что один драйвер=один двигатель. Сейчас оплатил второй, он пока где-то в пути.
Последний раз редактировалось voverrr 07 июн 2019, 08:32, всего редактировалось 1 раз.
- daemon78
- Мастер
- Сообщения: 1693
- Зарегистрирован: 02 окт 2018, 15:02
- Репутация: 103
- Настоящее имя: Владимир
- Откуда: Москва
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Ну тут не все так просто, надо учесть максимальную частоту сигналов, которую выдает контроллер, затем поделить на делитель. Чем больше делитель, тем меньше максимальная скорость станка, так как упираемся в частоту генерации сигналов контроллера. Но в любом случае, Вам не сюда надо копать.voverrr писал(а):Получается, количество шагов влияет ещё и на скорость. Как так?
Вот, почитайте комментарии, по моему Ваш случай https://3dtoday.ru/questions/trapetseid ... vo-shagov/
Нет, разницы нет, если не совсем галимая подделка. У меня была ситуация такая же, пришли 2 DM542 и 1 DM546 (я его для 4-ой) оси хотел использовать. Пока не приехал трети DM542 стояло два 542 и 1 546. Все норм было.voverrr писал(а):А скажите, есть ли разница, если на оси Х и У будут оба ДМ542, но от разных производителей? Я купил сначала только один, думал, он умеет управлять сразу тремя движками. Оказалось, что один драйвер=один двигатель. Сейчас оплатил второй, он пока где-то в пути.
Мой первый станок Первый станок Кусака 1 и куча вопросов #1
Мой второй станок Кусака 2.0 и вопросы к форумчанам #1
Мой второй станок Кусака 2.0 и вопросы к форумчанам #1
-
nevkon
- Почётный участник

- Сообщения: 2471
- Зарегистрирован: 17 июл 2015, 10:25
- Репутация: 310
- Настоящее имя: Константин
- Откуда: Балаково (Саратовская обл.)
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Неправильно получается. Умножать надо на делитель, т.е. если микрошаг 1/2, то умножаем на 2, если 1/16, то на 16.voverrr писал(а):тогда получается, что:
А вообще у вас на двигателе ведь почти по русски написано - "импульсов на оборот", а не делитель или микрошаг. Если двигатель классический (99% что классика), то берите сразу цифру из таблицы - она для ленивых.
- Alex lamaka
- Мастер
- Сообщения: 230
- Зарегистрирован: 17 окт 2017, 10:30
- Репутация: 100
- Настоящее имя: Алексей
- Откуда: Нижний Новгород
- Контактная информация:
- Alex lamaka
- Мастер
- Сообщения: 230
- Зарегистрирован: 17 окт 2017, 10:30
- Репутация: 100
- Настоящее имя: Алексей
- Откуда: Нижний Новгород
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
228.571429 шагов на мм. Скорость и ускорение не зависят от шагов. Проезжать должен сколько нужно. На шпильке лазер - это содомия для нервов.
-
sas_75
- Мастер
- Сообщения: 463
- Зарегистрирован: 10 мар 2015, 11:03
- Репутация: 115
- Настоящее имя: Сергей
- Откуда: Владивосток
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
На контроллере указано количество шагов (микрошагов) на оборот (для двигателя с 200 полными шагами на оборот, 1.8 град). Берете это число и делите на шаг винта, получаете кол-во импульсов на 1мм
- xenon-alien
- Почётный участник

- Сообщения: 4520
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 925
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Пример википедии относится к таким драйверам. Что на вашем 400 то на этих 2, или 1/2. Это всё одно и тоже.voverrr писал(а):Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 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....
У вас на драйвере уже посчитан микрошаг. Т.е вам не нужно на 200 умножать. (400 pulse/rev - импульсов на оборот) То ктайские цифры, так что это всё не так просто. Так как если верить написаному, То ШД дожнен был бы сделать 400 шагов а это уже 2 оборота при ШД 200 шагов и 1.8 градусов.xenon-alien писал(а): Если на драйвере только микрошаги, то на 200 умножать не надо.
Но драйвер делит шаги и при 400 импульсов он действительно делает один оборот. (при ШД 200 шагов и 1.8 градусов.)
Попробую пояснить проще: деление шага это мы делим угол поворота. т.е 1.8 градусов / 2 = 0.9
А что бы двигатель сделал полный оборот это сколько микрошагов? 360 градусов (один оборот) / 0,9 = 400 микрошагов
Понятней не могу объяснить...
- voverrr
- Мастер
- Сообщения: 242
- Зарегистрирован: 07 июн 2019, 01:22
- Репутация: 4
- Настоящее имя: Vladimir Mironov
- Откуда: Moscow
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Я весь день бегал по объектам, вернулся, а вы тут вон сколько понаписали!
Спасибо!
xenon-alien
правильно ли я понимаю, что при моих условиях на драйвере можно выставить шаг и больше, чем 400, но переменные $100-$102 пересчитать и в этом случае количество шагов на один оборот будет больше, а значит и плавность подачи будет лучше? При одной и той же скорости хода каретки.
Сегодня вечером доберусь до дома и всё это опробую.
Спасибо!
xenon-alien
правильно ли я понимаю, что при моих условиях на драйвере можно выставить шаг и больше, чем 400, но переменные $100-$102 пересчитать и в этом случае количество шагов на один оборот будет больше, а значит и плавность подачи будет лучше? При одной и той же скорости хода каретки.
Сегодня вечером доберусь до дома и всё это опробую.
- daemon78
- Мастер
- Сообщения: 1693
- Зарегистрирован: 02 окт 2018, 15:02
- Репутация: 103
- Настоящее имя: Владимир
- Откуда: Москва
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Но максимальная скорость будет меньше, так как ардуино вроде 20 КГц держит.voverrr писал(а):оличество шагов на один оборот будет больше, а значит и плавность подачи будет лучше?
Для лазера вроде это критично
Мой первый станок Первый станок Кусака 1 и куча вопросов #1
Мой второй станок Кусака 2.0 и вопросы к форумчанам #1
Мой второй станок Кусака 2.0 и вопросы к форумчанам #1
- xenon-alien
- Почётный участник

- Сообщения: 4520
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 925
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
По идее да, НО: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).
- voverrr
- Мастер
- Сообщения: 242
- Зарегистрирован: 07 июн 2019, 01:22
- Репутация: 4
- Настоящее имя: Vladimir Mironov
- Откуда: Moscow
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
всё получилось.
при выставленном 400 шаге, суть 1/2 $100=228.57142
и при выставленном 800 шаге, множитель $100=457,14
каретка проходит одно и то же расстояние. Скорость, по-моему, та же самая. Про плавность судить не могу.
>И если пропускает шаги
А как вы понимаете, что он пропускает шаги? Это когда в GRBL-controller при возвращении в ноль на табло остаются какие-то десятые/сотые?
при выставленном 400 шаге, суть 1/2 $100=228.57142
и при выставленном 800 шаге, множитель $100=457,14
каретка проходит одно и то же расстояние. Скорость, по-моему, та же самая. Про плавность судить не могу.
>И если пропускает шаги
А как вы понимаете, что он пропускает шаги? Это когда в GRBL-controller при возвращении в ноль на табло остаются какие-то десятые/сотые?
- xenon-alien
- Почётный участник

- Сообщения: 4520
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 925
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
Скорость перемещения зависит от другого параметраvoverrr писал(а):Скорость, по-моему, та же самая.
$110, $111, $112, или что пропишите в коде F50, или F1200 (это мм/мин)
$120, $121, $122 (выставите слишком большое ускорение - может пропустить шаги, просто не успеет разогнаться)
Вот как раз на табло будет как надо, а в реале нет.voverrr писал(а):А как вы понимаете, что он пропускает шаги? Это когда в GRBL-controller при возвращении в ноль на табло остаются какие-то десятые/сотые?
Это уже практика покажет. Когда ШД гудит-трещит и при этом не движется никуда каретка.
Но на глаз это может быть и не заметно, только после измерений.
У меня был перегрев, но это сути не меняет. (в конце видео будет видно)
https://www.youtube.com/watch?v=e9WGdacYF5o
- voverrr
- Мастер
- Сообщения: 242
- Зарегистрирован: 07 июн 2019, 01:22
- Репутация: 4
- Настоящее имя: Vladimir Mironov
- Откуда: Moscow
- Контактная информация:
Re: Как настроить количество шагов на миллиметр? Arduino uno
ну, вроде проясняется.
Подскажите тогда ещё вот такую штуку?
Создаю контуры в автокаде, открываю в арткаме, потом /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
Подскажите тогда ещё вот такую штуку?
Создаю контуры в автокаде, открываю в арткаме, потом /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