Помогите в прошивке GRBL повесить 2 мотора на ось.

Artist666
Offline
Зарегистрирован: 26.02.2022

В общем делаю лезерный гравер, всё готово, но у меня в конструкции на оси Х стоят 2 шаговика.
А в прошивке для ардуино https://github.com/gnea/grbl на каждую ось только 1 шаговик.
Я уже пробовал движки повесить на один драйвер - получилась фигня, толи тока не хватает, толи ещё чего, движки глючат.
Да и сами шаговики без маркировок, и неизвестно сколько им чего нужно, знаю только что они примерно на 200 шагов/об.
EM-483 на оси Х(2шт) и EM-326 на оси У.
Ну это не так важно, не могу найти функцию где крутятся движки.

Нашел где пины устанавливаются:
#define X_STEP_BIT 2 // Uno Digital Pin 2
#define Y_STEP_BIT 3 // Uno Digital Pin 3
#define Z_STEP_BIT 4 // Uno Digital Pin 4
#define STEP_MASK ((1<

Начал колхозить:
#define X_R_STEP_BIT 5 // Uno Digital Pin 2
#define X_L_STEP_BIT 6 // Uno Digital Pin 2
#define Y_STEP_BIT 7 // Uno Digital Pin 3
#define Z_STEP_BIT 1 // Uno Digital Pin 4
#define STEP_MASK ((1<

Kakmyc
Offline
Зарегистрирован: 15.01.2018

А два драйвера, но один сигнал на них подавать пробовал ?

Artist666
Offline
Зарегистрирован: 26.02.2022

Нет, можно конечно, но зачем я тогда плату расширения покупал, будет некрасиво. D

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

uint8_t get_step_pin_mask(uint8_t axis_idx)
{
  if ( axis_idx == X_AXIS ) { return((1<<X_STEP_BIT)); }
  if ( axis_idx == Y_AXIS ) { return((1<<Y_STEP_BIT)); }
  return((1<<Z_STEP_BIT));
}

>>>

uint8_t get_step_pin_mask(uint8_t axis_idx)
{
  if ( axis_idx == X_AXIS ) { return((1<<X_R_STEP_BIT)|(1<<X_L_STEP_BIT)); }
  if ( axis_idx == Y_AXIS ) { return((1<<Y_STEP_BIT)); }
  return((1<<Z_STEP_BIT));
}

Ну и в итоге у меня как подключил на плате, так и вращаются двигателя, правый - ось х, левый ось у, а z которая у меня у - стоит.

Наверное надо именно функцию найти, потому как нельзя же одновременно 2 пина у ардуино задействовать.
У меня получиласи битсумма из 2х пинов, я вообще не понимаю как оно может работать так.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Зачем все это ?
Тупо step и dir на оба драйвера нужной оси завести не судьба ?
Или ты будешь ставить два концевых выключателя ?

Artist666
Offline
Зарегистрирован: 26.02.2022

Концевики я планировал ставить, под них есть свободные пины.
Да соединить-то можно, просто кучей всё торчать будет...
Покопаюсь ещё, если не выйдет, придется так делать.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Artist666 пишет:

Концевики я планировал ставить, под них есть свободные пины.
Да соединить-то можно, просто кучей всё торчать будет...
Покопаюсь ещё, если не выйдет, придется так делать.

да не выйдет (у тебя), тебе жеж двигателями управлять надо синхронно!
Не плоди сущности

Artist666
Offline
Зарегистрирован: 26.02.2022

Да всё выйдет, надо просто проверку поставить что вращается ось Х, и прописать второй движок.