Semáforo con botón peatonal (para pasar)

Al final quedo así el código, con su ayuda

int led_red = 13;
int led_yellow = 12;
int led_green = 11;
int estado;

void setup() {

  pinMode(led_red, OUTPUT);
  pinMode(led_yellow, OUTPUT);
  pinMode(led_green, OUTPUT);
  pinMode(2, INPUT_PULLUP);
    Serial.begin(9600);
}

void loop() {
    estado = digitalRead(2);
  Serial.println(estado);

    do{ 
 Verde();
      for(int i=0;i<15;i++){
     estado = digitalRead(2);
        delay(1000);
        if(estado==LOW){
          delay(2000);
          Rojo();
          break;
        }
      }
  }while(estado==LOW);
  for(int i=0;i<5;i++){
    BlinkVerde();
  }
  Amarillo();
    for(int i=0;i<2;i++){
    BlinkAmarillo();
  }
  Rojo();
}


void Verde(){
  
  digitalWrite(led_red, LOW); 
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_green, HIGH);

}

void BlinkVerde(){
   delay(250); 
   digitalWrite(led_red, LOW); 
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_green, LOW);
 delay(500); 
    digitalWrite(led_red, LOW); 
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_green, HIGH);
  delay(750); 
  digitalWrite(led_red, LOW); 
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_green, LOW);
  
}

void Amarillo(){

 digitalWrite(led_red, LOW);
  digitalWrite(led_yellow, HIGH);
  digitalWrite(led_green, LOW);
  delay(5000);  
}

void BlinkAmarillo(){
  delay(250); 
   digitalWrite(led_red, LOW); 
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_green, LOW);
 delay(500); 
    digitalWrite(led_red, LOW); 
  digitalWrite(led_yellow, HIGH);
  digitalWrite(led_green, LOW);
  delay(750); 
   digitalWrite(led_red, LOW); 
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_green, LOW);
 
}
void Rojo(){
  
 digitalWrite(led_red, HIGH);  
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_green, LOW);
   delay(20500);
}

El semáforo cambia a rojo después de dos segundos de haber presionado el botón, únicamente cuando esta en verde (no tiene mucho propósito que lo haga en amarillo, o en rojo), y la secuencia del semáforo es continua, hasta que se apague el mismo
Dejo el enlace al Tinkercad, por si alguien necesita ver conexiones o cualquier otra cosa

Y de nuevo gracias a las dos personas que me ayudaron.