¿Cómo tener un orden al crear un programa?

Hola!
Mi pregunta quizá pueda parecer algo sin sentido pero apenas estoy empezando con Arduino. Resulta que debo hacer un programa para un semáforo.
Las instrucciones son algo largas por lo que en resumen lo que debo hacer es esto:
Si se activa el switch de encendido enciende el bombillo rojo del carro y verde del peatón por 15 segundos y apaga los demás bombillos.

  • Pasados los 15 segundos enciende y apaga el bombillo verde del peatón 5 veces cada medio segundo indicando que el semáforo del carro va a pasar a verde. (Despues tengo que seguir añadiendo instrucciones)

Con la primera parte no tengo problema, tengo el programa hecho de la siguiente manera:

int verdec = 22;
int amarillo = 23
int rojoc = 24;
int verdep = 25;
int rojop = 26
int suiche = 37;


void setup() {

 pinMode(suiche, INPUT);
 pinMode(verdec, OUTPUT);
 pinMode(amarillo, OUTPUT);
 pinMode(verdep, OUTPUT);
 pinMode(rojoc, OUTPUT);
 pinMode(rojop, INPUT);

 Serial.begin(9600);
}

void loop() {
 if (digitalRead(suiche, HIGH))
 {
   digitalWrite(rojoc, HIGH);
   delay(15000);
   digitalWrite(verdep, HIGH);
   delay(15000);
   digitalWrite(verdec,LOW);
   digitalWrite(amarillo,LOW);
   digitalWrite(rojop,LOW);
 
 }
}

El problema es que no sé hacer que ahí mismo se cambie el delay para poder seguir con lo otro, no sé si mi pregunta sea válida, muchas gracias de antemano :slight_smile: