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

Контроллеры, драйверы, датчики, управляющие устройства.

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

Сообщение voverrr » 07 июн 2019, 01:35

Здравствуйте.
Подскажите, как уже подсчитать количество этих самых шагов?
Прочитал километр руководств, так ничего не подходит.
Что имею:
Самодельный лазерный станок(его пока не имею. Его строю).
Двигатель 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 выглядит непрадоподобно.

Что я делаю не так?
voverrr
Новичок
 
Сообщения: 6
Зарегистрирован: 07 июн 2019, 01:22
Откуда: Moscow
Репутация: 0
Настоящее имя: Vladimir Mironov

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

Сообщение sas_75 » 07 июн 2019, 02:07

Все верно. Если пугает число, убавьте увеличьте микрошаг (убавьте количество микрошагов)
sas_75
Мастер
 
Сообщения: 374
Зарегистрирован: 10 мар 2015, 11:03
Откуда: Владивосток
Репутация: 101
Настоящее имя: Сергей

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

Сообщение xenon-alien » 07 июн 2019, 02:34

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.
Даже можете сфотографировать и сюда выложить. Так же таблицу положений.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
 
Сообщения: 1501
Зарегистрирован: 01 янв 2013, 13:13
Откуда: Закарпатская обл. Украина
Репутация: 441
Медальки:
Настоящее имя: Daniel

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

Сообщение voverrr » 07 июн 2019, 07:46

sas_75 писал(а):убавьте количество микрошагов

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

Шаг винта 1,75 - да, неудобный. Опробую на этой шпильке, а потом буду нарезать или покупать трапециевидную резьбу.

Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Вот фотки драйвера.
Вложения
Как настроить количество шагов на миллиметр? Arduino uno. IMG_6915.JPG
Как настроить количество шагов на миллиметр? Arduino uno. IMG_6914.JPG
voverrr
Новичок
 
Сообщения: 6
Зарегистрирован: 07 июн 2019, 01:22
Откуда: Moscow
Репутация: 0
Настоящее имя: Vladimir Mironov

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

Сообщение Taganrog » 07 июн 2019, 07:52

voverrr писал(а):Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.

Это одно и тоже. На некоторых драйверах пишут сам делитель 1/2,1/4,1/8,1/16 а на некоторых как у тебя - результат 400,800,1600... (реальное число импульсов на оборот, считается что у тебя стандартный двигатель с 200 имп/об)
Аватара пользователя
Taganrog
Мастер
 
Сообщения: 1208
Зарегистрирован: 15 апр 2015, 16:32
Откуда: Брянск
Репутация: 248
Настоящее имя: Евгений

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

Сообщение daemon78 » 07 июн 2019, 07:56

voverrr писал(а):дык меньше 400 нет.

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

Упссс, Taganrog опередил
Аватара пользователя
daemon78
Мастер
 
Сообщения: 1038
Зарегистрирован: 02 окт 2018, 15:02
Откуда: Москва
Репутация: 37
Настоящее имя: Владимир

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

Сообщение voverrr » 07 июн 2019, 08:23

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

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

Сообщение daemon78 » 07 июн 2019, 08:32

voverrr писал(а):Получается, количество шагов влияет ещё и на скорость. Как так?

Ну тут не все так просто, надо учесть максимальную частоту сигналов, которую выдает контроллер, затем поделить на делитель. Чем больше делитель, тем меньше максимальная скорость станка, так как упираемся в частоту генерации сигналов контроллера. Но в любом случае, Вам не сюда надо копать.
Вот, почитайте комментарии, по моему Ваш случай https://3dtoday.ru/questions/trapetseidalnye-shpilki-8-mm-kolichestvo-shagov/

voverrr писал(а):А скажите, есть ли разница, если на оси Х и У будут оба ДМ542, но от разных производителей? Я купил сначала только один, думал, он умеет управлять сразу тремя движками. Оказалось, что один драйвер=один двигатель. Сейчас оплатил второй, он пока где-то в пути.

Нет, разницы нет, если не совсем галимая подделка. У меня была ситуация такая же, пришли 2 DM542 и 1 DM546 (я его для 4-ой) оси хотел использовать. Пока не приехал трети DM542 стояло два 542 и 1 546. Все норм было.
Аватара пользователя
daemon78
Мастер
 
Сообщения: 1038
Зарегистрирован: 02 окт 2018, 15:02
Откуда: Москва
Репутация: 37
Настоящее имя: Владимир

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

Сообщение nevkon » 07 июн 2019, 09:19

voverrr писал(а):тогда получается, что:

Неправильно получается. Умножать надо на делитель, т.е. если микрошаг 1/2, то умножаем на 2, если 1/16, то на 16.
А вообще у вас на двигателе ведь почти по русски написано - "импульсов на оборот", а не делитель или микрошаг. Если двигатель классический (99% что классика), то берите сразу цифру из таблицы - она для ленивых.
nevkon
Мастер
 
Сообщения: 1547
Зарегистрирован: 17 июл 2015, 10:25
Откуда: Балаково (Саратовская обл.)
Репутация: 196
Настоящее имя: Константин

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

Сообщение Alex lamaka » 07 июн 2019, 09:37

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

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

Сообщение Alex lamaka » 07 июн 2019, 09:49

228.571429 шагов на мм. Скорость и ускорение не зависят от шагов. Проезжать должен сколько нужно. На шпильке лазер - это содомия для нервов.
Аватара пользователя
Alex lamaka
Мастер
 
Сообщения: 218
Зарегистрирован: 17 окт 2017, 10:30
Откуда: Нижний Новгород
Репутация: 99
Настоящее имя: Алексей

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

Сообщение sas_75 » 07 июн 2019, 10:04

На контроллере указано количество шагов (микрошагов) на оборот (для двигателя с 200 полными шагами на оборот, 1.8 град). Берете это число и делите на шаг винта, получаете кол-во импульсов на 1мм
sas_75
Мастер
 
Сообщения: 374
Зарегистрирован: 10 мар 2015, 11:03
Откуда: Владивосток
Репутация: 101
Настоящее имя: Сергей

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

Сообщение xenon-alien » 07 июн 2019, 15:02

voverrr писал(а):Я стопудово не туда смотрю, потоу что первой позицией считаю 400, а никаких 1/2 тут и близко нет.
Вот фотки драйвера.

Пример википедии относится к таким драйверам. Что на вашем 400 то на этих 2, или 1/2. Это всё одно и тоже.
Как настроить количество шагов на миллиметр? Arduino uno. stepper-motor-drive-500x500.jpg

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

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:
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
 
Сообщения: 1501
Зарегистрирован: 01 янв 2013, 13:13
Откуда: Закарпатская обл. Украина
Репутация: 441
Медальки:
Настоящее имя: Daniel

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

Сообщение voverrr » 07 июн 2019, 17:44

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

Сегодня вечером доберусь до дома и всё это опробую.
voverrr
Новичок
 
Сообщения: 6
Зарегистрирован: 07 июн 2019, 01:22
Откуда: Moscow
Репутация: 0
Настоящее имя: Vladimir Mironov

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

Сообщение daemon78 » 07 июн 2019, 21:19

voverrr писал(а):оличество шагов на один оборот будет больше, а значит и плавность подачи будет лучше?

Но максимальная скорость будет меньше, так как ардуино вроде 20 КГц держит.
Для лазера вроде это критично
Аватара пользователя
daemon78
Мастер
 
Сообщения: 1038
Зарегистрирован: 02 окт 2018, 15:02
Откуда: Москва
Репутация: 37
Настоящее имя: Владимир

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

Сообщение xenon-alien » 07 июн 2019, 22:59

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).
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
 
Сообщения: 1501
Зарегистрирован: 01 янв 2013, 13:13
Откуда: Закарпатская обл. Украина
Репутация: 441
Медальки:
Настоящее имя: Daniel

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

Сообщение voverrr » 08 июн 2019, 00:49

всё получилось.
при выставленном 400 шаге, суть 1/2 $100=228.57142
и при выставленном 800 шаге, множитель $100=457,14
каретка проходит одно и то же расстояние. Скорость, по-моему, та же самая. Про плавность судить не могу.
>И если пропускает шаги
А как вы понимаете, что он пропускает шаги? Это когда в GRBL-controller при возвращении в ноль на табло остаются какие-то десятые/сотые?
voverrr
Новичок
 
Сообщения: 6
Зарегистрирован: 07 июн 2019, 01:22
Откуда: Moscow
Репутация: 0
Настоящее имя: Vladimir Mironov

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

Сообщение xenon-alien » 08 июн 2019, 01:19

voverrr писал(а):Скорость, по-моему, та же самая.

Скорость перемещения зависит от другого параметра
$110, $111, $112, или что пропишите в коде F50, или F1200 (это мм/мин)
$120, $121, $122 (выставите слишком большое ускорение - может пропустить шаги, просто не успеет разогнаться)
voverrr писал(а):А как вы понимаете, что он пропускает шаги? Это когда в GRBL-controller при возвращении в ноль на табло остаются какие-то десятые/сотые?

Вот как раз на табло будет как надо, а в реале нет.
Это уже практика покажет. Когда ШД гудит-трещит и при этом не движется никуда каретка.
Но на глаз это может быть и не заметно, только после измерений.
У меня был перегрев, но это сути не меняет. (в конце видео будет видно)
https://www.youtube.com/watch?v=e9WGdacYF5o
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
 
Сообщения: 1501
Зарегистрирован: 01 янв 2013, 13:13
Откуда: Закарпатская обл. Украина
Репутация: 441
Медальки:
Настоящее имя: Daniel

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

Сообщение voverrr » 09 июн 2019, 12:25

ну, вроде проясняется.
Подскажите тогда ещё вот такую штуку?
Создаю контуры в автокаде, открываю в арткаме, потом /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
Вложения
Как настроить количество шагов на миллиметр? Arduino uno. 2019-06-09_12-23-06.png
Как настроить количество шагов на миллиметр? Arduino uno. 2019-06-09_12-24-03.png
voverrr
Новичок
 
Сообщения: 6
Зарегистрирован: 07 июн 2019, 01:22
Откуда: Moscow
Репутация: 0
Настоящее имя: Vladimir Mironov


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

Кто сейчас на конференции

Зарегистрированные пользователи: -=MiXeR=-, Argon-11, Алексей063, Bing [Bot], Brynet83, desertEA, dpss-2, frezeryga, furer, Gestap, Google [Bot], grandPrix, light-winged, Mamont, MGG, Гагарин, Sacha56, shalek, sivolap36, Smlua, VAT, Yandex [bot], Питерский

Reputation System ©'