AIUTO CON SWICH CASE

salve ragazzi ho un problema con lo swich case, praticamente quando avviene la conversione da binario/intero con l’identificazione del case, i motori compiono la rotazione si fermano e si muovono di nuovo con gli stessi passi, fin quando quella conversione rimane ad uno, io invece vorrei che si fermassero e che quindi non compiessero di nuovo la rotazione anche se la conversione rimane ad uno. premetto che inizialmente ho utilizzato la libreria stepper ma dava problemi nella visualizzazione dei passi e quindi il movimento dei motori l’ho fatto in maniera artigianale, vi allego lo sketch grazie mille.

#include <Stepper.h>

const int stepsPerRevolution1 = 200;
const int NumeroPassi = 1;
const int stepPerstepsPerRevolution2 = 200;
const int NumeroPassi1 = 1;


//Stepper myStepper1(stepsPerRevolution1, 5, 6, 22, 23);
int ms1=23;
int ms2=22;
int dir=5;
int steps=6;
int dir1=13;
int steps1=12;
int Block;
int pos0=0;
int SINISTRA=14;
int DESTRA=15;
int SOPRA=19;
int SOTTO=18;
int pos1=0;
int stepCount1 = 0;
int stepCount2 = 0;
 int PulsManuale=44;
int PulsAutomatico=46;
 
int StatoAutoMan=0;//auto=1, man=0
int ledautomatico=3;
int ledmanuale=9;



int ConvertToInt1=0;

bool BIT0=0,BIT1=0,BIT2=0,BIT3=0,BIT4=0,BIT5=0,BIT6=0,BIT7=0; // assegnazione come variabile booleana a bit
int PinA=31; //primo pin che arriva dal plc 
int PinB=33; //secondo pin che arriva dal plc
int PinC=35; //terzo pin che arriva dal plc
int PinD=37; //quarto pin che arriva dal plc
int PinE=39; //quinto pin che arriva dal plc
int PinF=41; //sesto pin che arriva dal plc
int PinG=43; //settimo pin che arriva dal plc
int PinH=45; //ottavo pin che arriva dal plc


void setup() {
pinMode(ms1, OUTPUT);
 pinMode(ms2, OUTPUT );
pinMode(SINISTRA, INPUT);
pinMode(DESTRA, INPUT);

pinMode(SOPRA, INPUT);
pinMode(SOTTO, INPUT);

pinMode(dir, OUTPUT);
 pinMode(steps, OUTPUT);
 pinMode(dir1, OUTPUT);
 pinMode(steps1, OUTPUT);
 digitalWrite(dir,LOW);
 digitalWrite(steps,LOW);
 
  digitalWrite(dir1,LOW);
 digitalWrite(steps1,LOW);

  digitalWrite(ms2,LOW);
 digitalWrite(ms1,LOW);
   pinMode(PulsManuale, INPUT);
      pinMode(PulsAutomatico, INPUT);

      pinMode(ledautomatico, OUTPUT);
      pinMode(ledmanuale, OUTPUT);
       
   
Serial.begin(9600);      

}

void loop() 
 


{
 
       
  if (digitalRead(PulsManuale) == 1)
   {
       digitalWrite(ledautomatico,LOW);//funzionamento in manuale 
      digitalWrite(ledmanuale,HIGH);
     Serial.print("pulsmanu");
  
       StatoAutoMan=0;    
      
   }
   else  if (digitalRead(PulsAutomatico) == 1)
   {
    
     digitalWrite(ledautomatico,HIGH);
    digitalWrite(ledmanuale,LOW); //funzionamento in AUTOMATICO 
    Serial.print("pulsau");
       StatoAutoMan=1;
            
   }
   
if (StatoAutoMan ==1)


      {  
        delay(500);


            BIT0=digitalRead(PinA); //assegnazione bit a pin che arriva dal plc
            BIT1=digitalRead(PinB); //assegnazione bit a pin che arriva dal plc
            BIT2=digitalRead(PinC); //assegnazione bit a pin che arriva dal plc
            BIT3=digitalRead(PinD); //assegnazione bit a pin che arriva dal plc
            BIT4=digitalRead(PinE); //assegnazione bit a pin che arriva dal plc
            BIT5=digitalRead(PinF); //assegnazione bit a pin che arriva dal plc
            BIT6=digitalRead(PinG); //assegnazione bit a pin che arriva dal plc
            BIT7=digitalRead(PinH); //assegnazione bit a pin che arriva dal plc
           ConvertToInt1=conversione(BIT0,BIT1,BIT2,BIT3,BIT4,BIT5,BIT6,BIT7);  //richiamo sottoprogramma conversione e assegnazione valore inizale a zero
          
           if (ConvertToInt1 == 0)
           {


            
            }
           else 
                            
            switch(ConvertToInt1) //comando switch
              {
               
            
             case 1:
           
                  {
                 Ruota (50,LOW);
                  Ruota1 (10,LOW);
             
               
                 
                 
                  }
                break;
          
           
              case 10:
                  {
                      Ruota (200,HIGH);
               Ruota1 (120,LOW);
             
                  }
                break;
             
             
         
              case 80:
                  {

                  }
                break;

                
               default:;
                
             }//fine switch
       
       
          
        
        
        
        
        
        
        }
  
  
  if (StatoAutoMan==0){//inizio gestione in manuale
     
           if (digitalRead(SINISTRA) == HIGH)
              {
              // myStepper1.step(NumeroPassi);
                 Ruota (1,LOW);
                 }
               if (digitalRead(SOPRA) == HIGH)
              {
         
                 Ruota1 (1,LOW); 
              }
          
                 if (digitalRead(DESTRA) == HIGH)
              {
               // myStepper1.step(-NumeroPassi);
          
                 Ruota (1,HIGH);
           
              }


            if (digitalRead(SOTTO) == HIGH)
              {
               // myStepper1.step(-NumeroPassi);
          
                 Ruota1 (1,HIGH);
             
              }
  }


}

void Ruota (int Passi, bool DirezioneDX)

{
     
  for (int i=1; i<=Passi;i++)
  {
    
      digitalWrite(dir,DirezioneDX);
      delay(10);
      digitalWrite(steps,HIGH);
      delay(10);
      digitalWrite(steps,LOW);
                 
                Serial.print("steps:" );
      if(DirezioneDX)
      {
        stepCount1++;
      }
      if(!DirezioneDX)
      {
        stepCount1--;
      }    
      Serial.println(stepCount1);
    
  }
}
  void Ruota1 (int Passi1, bool DirezioneDX1)
  {
     
  for (int i=1; i<=Passi1;i++)
  {
    
      digitalWrite(dir1,DirezioneDX1);
      delay(10);
      digitalWrite(steps1,HIGH);
      delay(10);
      digitalWrite(steps1,LOW);
                 
                Serial.print("steps1:" );
      if(DirezioneDX1){
        stepCount2++;
      }
      if(!DirezioneDX1){
        stepCount2--;
      }    
      Serial.println(stepCount2);
    
  }


}

 int conversione(bool BIT0,bool BIT1 ,bool BIT2,bool BIT3,bool BIT4,bool BIT5,bool BIT6,bool BIT7) //dichiarazione variabile booleana a bit

  {
    int ConvertToInt=0;
    ConvertToInt=(BIT0*(1))+(BIT1*(2))+(BIT2*(4))+(BIT3*(8))+(BIT4*(16))+(BIT5*(32))+(BIT6*(64))+(BIT7*(128)); //conversione da binario a digitale
    return ConvertToInt;
  }

Abituati ad eliminare le righe bianche nello sketch prima di presentarlo in modo da favorire la lettura.

Il loop non contiene istruzioni!

ho risolto grazie comunque non era quello il problema