Управление шаговым двигателем.

ИльяК

✩✩✩✩✩✩✩
10 Мар 2020
5
0
Оформи код соответствующим тэгом
Всем привет. Подскажите логику работы библиотеки.
За основу взят пример работы двигателя с концевым выключателем из библиотеки


C++:
<pinMode(11, INPUT_PULLUP); //концевик

  pinMode(10, INPUT_PULLUP);

  stepper.setRunMode(KEEP_SPEED);//режим движения мотора " с постоянной скоростью"

  stepper.setSpeed(300);



   while(digitalRead(11))

   {

     stepper.tick();

   }

   stepper.reset();

   stepper.setRunMode(FOLLOW_POS);

   stepper.setMaxSpeed(300);

   stepper.setAcceleration(300);



}





void loop()

{

  butt1.tick();

  stepper.tick();

  if(butt1.isPress() && !stepper.tick())

    {

      stepper.setTarget(-1200, RELATIVE);

      stepper.tick();

      if (!stepper.tick())

        {stepper.setTarget(1200, RELATIVE);}

    }

}
Как я это понимаю : Двигатель доходит до конц.выкл. > остановка > Опрос кнопки и состояние мотора >условие выполняется > делает 1200 шагов в одном направлении > видим остановку в этом положении > обратное вращение 1200шагов > остановка > Опрос кнопки и состояние мотора > и т.д.

Прошу пояснить в чем ошибка, почему после остановки в -1200 не фиксируется изменение в stepper.tick(); и не происходит обратного вращения?
 
Изменено: