Codigo para semaforo

muchas gracias, mas o menos me salió, ahora tengo dos dudas, cuando pongo un numero par el verde se prende 1 seg. y se apaga (si pongo impar se prende amarrillo y queda prendido perfecto), como hago para que se mantenga prendido hasta que apriete otro numero, y la otra duda, es como limito todo para usar números del 1 al 9

const int SalidaLedVerde = 2;
const int SalidaLedAmarillo = 3;

int numero = 0;

void setup()
{
 Serial.begin(9600);
  
 pinMode(SalidaLedVerde, OUTPUT);
 pinMode(SalidaLedAmarillo, OUTPUT);
 
  
}

void loop()
  {
  if (Serial.available()>0)
   {
   		numero = Serial.read();

if (numero % 2 == 0)  // se cumple cuando es par
  	{
    digitalWrite(SalidaLedVerde,HIGH); 
    digitalWrite(SalidaLedAmarillo, LOW); 
  	}
  
else 
	{
  
  digitalWrite(SalidaLedVerde, LOW); 
  digitalWrite(SalidaLedAmarillo, LOW); 
	}
  
  }
 

{
if (numero % 2 == 1)  // se cumple cuando es impar
  	{
    digitalWrite(SalidaLedVerde,LOW); 
    digitalWrite(SalidaLedAmarillo, HIGH); 
  	}
  
else 
	{
  digitalWrite(SalidaLedVerde, LOW); 
  digitalWrite(SalidaLedAmarillo, LOW); 
	}
  }
  
}