Moteur pas à pas commande en boucle

Bonjour,

Avec ce code, je souhaite commander un moteur pas à pas LIEN via le port série. J'ai essayé avec une Uno et Mega et j'ai le même problème; La Uno ne dépasse pas positionMoteur 87 et la mega positionMoteur 391.

int positionMoteur = 0;
int consigneMoteur = 0;

#define motorPin1               8
#define motorPin2               9
#define motorPin3               10
#define motorPin4               11
#define pause_entre_pas         5   // ms

void setup() 
{
  Serial.begin(9600);
  
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}

void loop()
{
  if(Serial.available())
  {
    consigneMoteur = Serial.readString().toInt();

    if(consigneMoteur > positionMoteur)
    {
       mvt_moteur("av");
    }
    if(consigneMoteur < positionMoteur)
    {
      mvt_moteur("ar");
    }
  }
  
  delay(100);
  
}

void mvt_moteur(String sens)
{

  if((positionMoteur % 4) == 0)
  {
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
  }
  if((positionMoteur % 4) == 1)
  {
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
  }
  if((positionMoteur % 4) == 2)
  {
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
  }
  if((positionMoteur % 4) == 3)
  {
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
  }
  
  if(sens == "av")
  {
    positionMoteur++;
  }
  if(sens == "ar")
  {
     positionMoteur--;
  }
  
 // Serial.print(consigneMoteur);
 // Serial.print("   ");
  Serial.println(positionMoteur);
  
  delay(pause_entre_pas);

  if(consigneMoteur > positionMoteur)
  {
     mvt_moteur("av");
  }
  if(consigneMoteur < positionMoteur)
  {
    mvt_moteur("ar");
  }
}