programacion de led y servos con arduino

hola buenas tardes:

tengo un pequeño proyecto que involucra el encendido de led y servos con una aplicacion que esta en proceso de creacion y es el siguiente

#include <Servo.h>   // ya esta la libreria
Servo servo1;       // ya esta declaro el servo como servo1

int led1 = 2;
int led2 = 3;
 
int estado = 0;

void setup()
{
  servo1.attach(5); // ya esta el pin donde va a mandar la señal
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  
}

void loop()
{
  if( Serial.available()>0)
  {
    estado = Serial.read();
  }
  switch( estado)
  {
    case '1':
    digitalWrite(led1, HIGH);
    break;
    
    case '2':
    digitalWrite(led1, LOW);
    break;    
    
    case '3':
    digitalWrite(led2, HIGH);
    break;
    
    case '4':
    digitalWrite(led2, LOW);
    break;

    case '5': // girar el servo a 90 grados
    servo1.write(90);
    break;

    
  }
}

como pueden ver ya esta lo que se refiere al encendido de dos led pero en lo que se refiere al case 5 queria saber si esta bien asi como lo he puesto o si hay que añadirle algo mas

Gracias.

El código como está parece bien, exepto que una vez que selecciones una opcion, la misma se quedará seleccionada hasta que selecciones otra. El loop() la continuará ejecutando ya que la variable "estado" es global y mantiene su valor. Para evitar esto deberías hacer la variable local o reiniciarla con cada iteracion del loop().

Disculpe pero no entendi casi nada en lo que me dijo y es que al iniciarme en el arduino queria saber si me podrias a ayudar a arreglarlo por favor o modificarlo en lo que ya tengo para probarlo y ver si me funciona pues he probado con mi aplicacion y llega a encenderme los led pero el servo no se mueve nada.
Gracias