Нужна помошь! скейч для шагового двигателя откоректировать.

Pensioner
Offline
Зарегистрирован: 09.09.2017
 
AccelStepper Stepper1(1,13,12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)

int dir = 1; //используется для смены направления

void setup() {

Stepper1.setMaxSpeed(9); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду) 

Stepper1.setAcceleration(1300); //устанавливаем ускорение (шагов/секунду^2)

}

void loop() {

if(Stepper1.distanceToGo()==0){ //проверка, отработал ли двигатель предыдущее движение

Stepper1.move(3420*dir); //устанавливает следующее перемещение на 3420 шагов (если dir равен -1 будет перемещаться -3420 -> противоположное направление)

dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении

delay(500); //задержка на 0.5 секунду

}

Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя

}

При намотке КАК ЗАПРОГРАМИРОВАТЬ???-уменьшение оборотов при каждом новом слое нити

 
 
 
b707
Offline
Зарегистрирован: 26.05.2017

Pensioner пишет:

При намотке КАК ЗАПРОГРАМИРОВАТЬ???-уменьшение оборотов при каждом новом слое нити

 
попробуйте еще раз задать вопрос, четко и подробно изложив, что вам нужно сделать, что вы уже сделали и в чем проблемы
vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Если Вашскетч рабочий то попробуйте так но я не проверял

AccelStepper Stepper1(1, 13, 12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)
int dir = 1; //используется для смены направления

int sped = 80;//Начальная скорость

void setup() {

  Stepper1.setMaxSpeed(9); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)

  Stepper1.setAcceleration(1300); //устанавливаем ускорение (шагов/секунду^2)
  Stepper1.setSpeed(sped);
}

void loop() {

  if (Stepper1.distanceToGo() == 0) { //проверка, отработал ли двигатель предыдущее движение

    Stepper1.move(3420 * dir); //устанавливает следующее перемещение на 3420 шагов (если dir равен -1 будет перемещаться -3420 -> противоположное направление)

    --sped; // Уменьшаем на единицу
    Stepper1.setSpeed(sped); //Устанавливаем новую скорость

    dir = dir * (-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении

    delay(500); //задержка на 0.5 секунду

  }

  Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя

}