Как настроить количество шагов на миллиметр? Arduino uno.

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
voverrr
Мастер
Сообщения: 242
Зарегистрирован: 07 июн 2019, 01:22
Репутация: 4
Настоящее имя: Vladimir Mironov
Откуда: Moscow
Контактная информация:

Как настроить количество шагов на миллиметр? Arduino uno.

Сообщение 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 выглядит непрадоподобно.

Что я делаю не так?
sas_75
Мастер
Сообщения: 463
Зарегистрирован: 10 мар 2015, 11:03
Репутация: 115
Настоящее имя: Сергей
Откуда: Владивосток
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение sas_75 »

Все верно. Если пугает число, убавьте увеличьте микрошаг (убавьте количество микрошагов)
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4520
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 925
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение 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.
Даже можете сфотографировать и сюда выложить. Так же таблицу положений.
Аватара пользователя
voverrr
Мастер
Сообщения: 242
Зарегистрирован: 07 июн 2019, 01:22
Репутация: 4
Настоящее имя: Vladimir Mironov
Откуда: Moscow
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение voverrr »

sas_75 писал(а):убавьте количество микрошагов
дык меньше 400 нет.
xenon-alien писал(а):Первая позиция на драйвере обычно 1/2 микрошага
Шаг винта 1,75 - да, неудобный. Опробую на этой шпильке, а потом буду нарезать или покупать трапециевидную резьбу.

Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Вот фотки драйвера.
Вложения
IMG_6915.JPG (22108 просмотров) <a class='original' href='./download/file.php?id=164070&mode=view' target=_blank>Загрузить оригинал (1.53 МБ)</a>
IMG_6914.JPG (22108 просмотров) <a class='original' href='./download/file.php?id=164071&mode=view' target=_blank>Загрузить оригинал (1.68 МБ)</a>
Аватара пользователя
Taganrog
Мастер
Сообщения: 1238
Зарегистрирован: 15 апр 2015, 16:32
Репутация: 284
Настоящее имя: Евгений
Откуда: Брянск
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение Taganrog »

voverrr писал(а):Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Это одно и тоже. На некоторых драйверах пишут сам делитель 1/2,1/4,1/8,1/16 а на некоторых как у тебя - результат 400,800,1600... (реальное число импульсов на оборот, считается что у тебя стандартный двигатель с 200 имп/об)
Аватара пользователя
daemon78
Мастер
Сообщения: 1693
Зарегистрирован: 02 окт 2018, 15:02
Репутация: 103
Настоящее имя: Владимир
Откуда: Москва
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение daemon78 »

voverrr писал(а):дык меньше 400 нет.
400, это уже посчитано сразу для движков на 1.8 градуса, то есть тут делитель 1/2
Далее у Вас идет 800, это 1/4. Короче умножайте на 200 число обратное написанному и получите делитель.
У меня такие же дравйвера, после ТБ6600 не нарадуюсь на них.

Упссс, Taganrog опередил
Аватара пользователя
voverrr
Мастер
Сообщения: 242
Зарегистрирован: 07 июн 2019, 01:22
Репутация: 4
Настоящее имя: Vladimir Mironov
Откуда: Moscow
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение 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, но от разных производителей? Я купил сначала только один, думал, он умеет управлять сразу тремя движками. Оказалось, что один драйвер=один двигатель. Сейчас оплатил второй, он пока где-то в пути.
Последний раз редактировалось voverrr 07 июн 2019, 08:32, всего редактировалось 1 раз.
Аватара пользователя
daemon78
Мастер
Сообщения: 1693
Зарегистрирован: 02 окт 2018, 15:02
Репутация: 103
Настоящее имя: Владимир
Откуда: Москва
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение daemon78 »

voverrr писал(а):Получается, количество шагов влияет ещё и на скорость. Как так?
Ну тут не все так просто, надо учесть максимальную частоту сигналов, которую выдает контроллер, затем поделить на делитель. Чем больше делитель, тем меньше максимальная скорость станка, так как упираемся в частоту генерации сигналов контроллера. Но в любом случае, Вам не сюда надо копать.
Вот, почитайте комментарии, по моему Ваш случай https://3dtoday.ru/questions/trapetseid ... vo-shagov/
voverrr писал(а):А скажите, есть ли разница, если на оси Х и У будут оба ДМ542, но от разных производителей? Я купил сначала только один, думал, он умеет управлять сразу тремя движками. Оказалось, что один драйвер=один двигатель. Сейчас оплатил второй, он пока где-то в пути.
Нет, разницы нет, если не совсем галимая подделка. У меня была ситуация такая же, пришли 2 DM542 и 1 DM546 (я его для 4-ой) оси хотел использовать. Пока не приехал трети DM542 стояло два 542 и 1 546. Все норм было.
nevkon
Почётный участник
Почётный участник
Сообщения: 2471
Зарегистрирован: 17 июл 2015, 10:25
Репутация: 310
Настоящее имя: Константин
Откуда: Балаково (Саратовская обл.)
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение nevkon »

voverrr писал(а):тогда получается, что:
Неправильно получается. Умножать надо на делитель, т.е. если микрошаг 1/2, то умножаем на 2, если 1/16, то на 16.
А вообще у вас на двигателе ведь почти по русски написано - "импульсов на оборот", а не делитель или микрошаг. Если двигатель классический (99% что классика), то берите сразу цифру из таблицы - она для ленивых.
Аватара пользователя
Alex lamaka
Мастер
Сообщения: 230
Зарегистрирован: 17 окт 2017, 10:30
Репутация: 100
Настоящее имя: Алексей
Откуда: Нижний Новгород
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение Alex lamaka »

.
Аватара пользователя
Alex lamaka
Мастер
Сообщения: 230
Зарегистрирован: 17 окт 2017, 10:30
Репутация: 100
Настоящее имя: Алексей
Откуда: Нижний Новгород
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение Alex lamaka »

228.571429 шагов на мм. Скорость и ускорение не зависят от шагов. Проезжать должен сколько нужно. На шпильке лазер - это содомия для нервов.
sas_75
Мастер
Сообщения: 463
Зарегистрирован: 10 мар 2015, 11:03
Репутация: 115
Настоящее имя: Сергей
Откуда: Владивосток
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение sas_75 »

На контроллере указано количество шагов (микрошагов) на оборот (для двигателя с 200 полными шагами на оборот, 1.8 град). Берете это число и делите на шаг винта, получаете кол-во импульсов на 1мм
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4520
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 925
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение xenon-alien »

voverrr писал(а):Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Вот фотки драйвера.
Пример википедии относится к таким драйверам. Что на вашем 400 то на этих 2, или 1/2. Это всё одно и тоже.
stepper-motor-drive-500x500.jpg (22027 просмотров) <a class='original' href='./download/file.php?id=164085&mode=view' target=_blank>Загрузить оригинал (39.58 КБ)</a>
cw8060-1.jpg (22025 просмотров) <a class='original' href='./download/file.php?id=164086&mode=view' target=_blank>Загрузить оригинал (324.84 КБ)</a>
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 микрошагов
Понятней не могу объяснить... :wik:
Аватара пользователя
voverrr
Мастер
Сообщения: 242
Зарегистрирован: 07 июн 2019, 01:22
Репутация: 4
Настоящее имя: Vladimir Mironov
Откуда: Moscow
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение voverrr »

Я весь день бегал по объектам, вернулся, а вы тут вон сколько понаписали!
Спасибо!
xenon-alien
правильно ли я понимаю, что при моих условиях на драйвере можно выставить шаг и больше, чем 400, но переменные $100-$102 пересчитать и в этом случае количество шагов на один оборот будет больше, а значит и плавность подачи будет лучше? При одной и той же скорости хода каретки.

Сегодня вечером доберусь до дома и всё это опробую.
Аватара пользователя
daemon78
Мастер
Сообщения: 1693
Зарегистрирован: 02 окт 2018, 15:02
Репутация: 103
Настоящее имя: Владимир
Откуда: Москва
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение daemon78 »

voverrr писал(а):оличество шагов на один оборот будет больше, а значит и плавность подачи будет лучше?
Но максимальная скорость будет меньше, так как ардуино вроде 20 КГц держит.
Для лазера вроде это критично
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4520
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 925
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение 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).
Аватара пользователя
voverrr
Мастер
Сообщения: 242
Зарегистрирован: 07 июн 2019, 01:22
Репутация: 4
Настоящее имя: Vladimir Mironov
Откуда: Moscow
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение voverrr »

всё получилось.
при выставленном 400 шаге, суть 1/2 $100=228.57142
и при выставленном 800 шаге, множитель $100=457,14
каретка проходит одно и то же расстояние. Скорость, по-моему, та же самая. Про плавность судить не могу.
>И если пропускает шаги
А как вы понимаете, что он пропускает шаги? Это когда в GRBL-controller при возвращении в ноль на табло остаются какие-то десятые/сотые?
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4520
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 925
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Как настроить количество шагов на миллиметр? Arduino uno

Сообщение xenon-alien »

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

Сообщение 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
Вложения
2019-06-09_12-23-06.png (21894 просмотра) <a class='original' href='./download/file.php?id=164182&mode=view' target=_blank>Загрузить оригинал (103.51 КБ)</a>
2019-06-09_12-24-03.png (21894 просмотра) <a class='original' href='./download/file.php?id=164183&mode=view' target=_blank>Загрузить оригинал (368.84 КБ)</a>
Ответить

Вернуться в «Электроника»