#include <ESP32Servo.h>

Servo SRA1,SRA2,SRA3,SRB1,SRB2,SRB3,SRC1,SRC2,SRC3,
      SLA1,SLA2,SLA3,SLB1,SLB2,SLB3,SLC1,SLC2,SLC3; 

int posRA1,posRa2,posRa3,posRB1,posRB2,posRB3,posRC1,posRC2,posRC3,
    posLA1,posLa2,posLa3,posLB1,posLB2,posLB3,posLC1,posLC2,posLC3;

 int speed=5; 
 int pos, setpos=0; 
 int loope;  
 char data; 
 String databyte =""; 

 String loopsts ="x";   

void setservo(){ 
  SRA1.attach(4); 
  SRA2.attach(16); 
  SRA3.attach(17); 
  SRB1.attach(5); 
  SRB2.attach(18); 
  SRB3.attach(19); 
  SRC1.attach(21); 
  SRC2.attach(22); 
  SRC3.attach(23);

  SRA1.attach(15); 
  SRA2.attach(13); 
  SRA3.attach(12); 
  SRB1.attach(14); 
  SRB2.attach(27); 
  SRB3.attach(26); 
  SRC1.attach(25); 
  SRC2.attach(33); 
  SRC3.attach(32); 
}

void runservo(){
  SRA1.write(pos);     
  SRA2.write(pos);  
  SRA3.write(pos); 
  SRB1.write(pos);     
  SRB2.write(pos);  
  SRB3.write(pos);
  SRC1.write(pos);     
  SRC2.write(pos);  
  SRC3.write(pos);

  SLA1.write(pos);     
  SLA2.write(pos);  
  SLA3.write(pos); 
  SLB1.write(pos);     
  SLB2.write(pos);  
  SLB3.write(pos);
  SLC1.write(pos);     
  SLC2.write(pos);  
  SLC3.write(pos);
}

void setup() { 
  Serial.begin(115200);
  Serial.println("Hello, ESP32!");
  setservo();   
  pos=0;loope=1;
}

void loop() {
if(Serial.available() > 0)  
  { 
    data = char(Serial.read()); 
    if(data == '0'){ 
    databyte=databyte+"0"; 
    } 
    if(data == '1'){ 
    databyte=databyte+"1"; 
    }
    if(data == '2'){ 
    databyte=databyte+"2"; 
    }
    if(data == '3'){ 
    databyte=databyte+"3"; 
    }
    if(data == '4'){ 
    databyte=databyte+"4"; 
    } 
    if(data == '5'){ 
    databyte=databyte+"5"; 
    } 
    if(data == '6'){ 
    databyte=databyte+"6"; 
    } 
    if(data == '7'){ 
    databyte=databyte+"7"; 
    }
    if(data == '8'){ 
    databyte=databyte+"8"; 
    }
    if(data == '9'){ 
    databyte=databyte+"9"; 
    }  
    if(databyte.length()>=3){
      Serial.println(databyte);
      pos=(databyte.toInt()); 

      if(pos>=150){pos=150;} 
      if(databyte=="123"){
        loopsts="y";  }
      else{loopsts="x";} 
      databyte="";
      runservo(); 
       }
    
         }








   
 if(loopsts=="y"){   
  if(pos>=150)
  {loope=-10;}  
  if(pos<=30)
  {loope=10;}  
  pos=pos+loope;
 
 }

  runservo(); 
  Serial.println(String(pos)); 
  delay(1);  
 
}