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

Не могу понять почему не изменяется скорость шаговых двигетелй при упарвлении с ps2
недавно только занимаюсь этим.может кто-то подскажет

#include <PS2X_lib.h>
#include <GyverStepper.h>
PS2X ps2x;
int error = 0;
byte type = 0;
byte vibrate = 0;
int speed = 200;
int flright = 0;
int flleft = 0;
GStepper<STEPPER2WIRE> stepper(2048, 5, 6, 7);
GStepper<STEPPER2WIRE> stepper2(2048, 2, 3, 4);


void setup() {
 Serial.begin(9600);
 stepper.setRunMode(KEEP_SPEED);
 stepper2.setRunMode(KEEP_SPEED);
 stepper.setSpeed(speed);
 stepper2.setSpeed(-speed);

 error = ps2x.config_gamepad(13,11,10,12,true,true);
 delay(100);
 type = ps2x.readType();
 delay(100);

while(error !=0 and type!=1){
  error = ps2x.config_gamepad(13,11,10,12,true,true);
  delay(100);
  type = ps2x.readType();
  delay(100);
  Serial.print(error);
  Serial.println(type);
  delay(100);
}
Serial.println("Ok");
delay(1000);
}

void loop() {
  ps2x.read_gamepad(false,vibrate);
  
  if(ps2x.Button(PSB_R1)){
    flright =1;
    flleft= 0;
    if(ps2x.Analog(PSS_RY) == 0 ){
      stepper.reverse(0);
      stepper.tick(); 
      stepper2.reverse(0);
      stepper2.tick();
       }
      }
  
  if(ps2x.Button(PSB_L1)){
    flright = 0;
    flleft = 1;
    if(ps2x.Analog(PSS_LY) == 0 ){
      stepper.reverse(1);
      stepper.tick();
      
      stepper2.reverse(1);
      stepper2.tick();
     }
  }
  if(flright == 1  and ps2x.ButtonPressed(PSB_PAD_UP)) {
      speed += 20;
    Serial.print("скорость  увеличиваеься :");
    Serial.println(speed);
    }  
  if(flright == 1 and ps2x.ButtonPressed(PSB_PAD_DOWN)){
    if(speed >= 25){
     speed-=20;
    Serial.print("скорость  уменьшается :");
    Serial.println(speed);
   }
  }
  if(ps2x.ButtonPressed(PSB_GREEN) and flleft == 1){
  
    speed += 20;
    Serial.print("скорость  увеличиваеься :");
    Serial.println(speed);
    }
  
 if(ps2x.ButtonPressed(PSB_BLUE) and flleft == 1){
   if(speed >= 25){
     speed-=20;
    Serial.print("скорость  уменьшается :");
    Serial.println(speed);
   }
 }


  delay(50);
}

Что такое stepper.tick(); ?

запуск шагового двигателя

Наврядли. Попробуйте в документации почитать - с какой частотой нужно вызывать этот метод.

Со стандартными примерами с этой библиотеки все работает с этим методом,когда управление идет через ps2 ,то скорость практически не изменяется

вообще написано как можно чаще вызывать этот метод.как задать частоту его вызова?не собо шарю просто

Значит вызывать его нужно постоянно в loop, а не под условием, как сейчас.

и как это должно выглядеть?

А с чего ей меняться, если вы переменную speed для управления моторами никак не используете?

Покажите, в какой строке программы вы меняете скорость двигателей?

хотя бы вот тут,и дальше в таких же 4-х if

но я и в ручную пробовал менять,ничего не происзодит.какую бы скорость не задавал в методе setSpeed(); ,остается одна и та же

В этом месте вы меняете значение переменной speed. А где вы меняете скорость двигателей?

Вот вы открыли кошелек, посчитали деньги. Допустим 1000 рублей. Записали сумму на бумажку, закрыли кошелек.
Теперь если исправить цифру на бумажке, скажем, на 3000 рублей - думаете от этого сумма в кошельке изменится?

Ваша переменная speed всего лишь такая же бумажка. От того что вы ее изменили, скорость мотора не поменяется.

тут да,согласен.но вопрос в другом,что в стандартном примере с библиотеки все работает,когда задаешь методом setSpeed() в ручную в setup() скорость,тут с джостиком так не работает

выше вы писали, что все работает

или все-таки не работает?

Вам надо сначала проверить, меняетеся ли скорость в стандартном примере, без управления по ps2. Если нет - то ps2 нет смысла и подключать, сначала надо разобраться библиотекой

там все работает,в том то и дело.если бы и там не работало без джостика,то не стал бы просить помощи

кстати,такая же проблемы ,когда подключаешь датчики расстояния,скорость тоже перестает меняться

И что?
вам не понятно, что я вам написал в сообщении 12?

Вы меняете переменную, а скорость моторам не задаете.

это я понял

ответ в этой фразе

Кто за вас будет давать команду setSpeed() ? Пушкин?

сомневаюсь…

Если поняли - то исправляйте ошибку в коде.