Semaforo Peatonal

Tengo un miniproyecto de hacer un semaforo en arduino UNO y he intentado hacer el codigo para que el semaforo vehicular este en bucle hasta que se accione el pulsador sin embargo no logro dar con la funcion correcta para ello.
Seria de gran ayuda ya que soy nuevo en arduino y no entiendo mucho.

// declaración de las variables

// establece el semáforo peatonal
int pedRojo = 13;
int pedVerd = 12;
// establece semáforo para carros
int carRojo = 11;
int carAmar = 10;
int carVerd = 9;
//Presion de boton
int boton = 2;
// tiempo desde que el botón fue presionado
unsigned long botPress;

void setup(){

pinMode(carRojo, OUTPUT);
pinMode(carAmar, OUTPUT);
pinMode(carVerd, OUTPUT);
pinMode(pedRojo, OUTPUT);
pinMode(pedVerd, OUTPUT);
pinMode(boton, INPUT);

// se enciende en verde (coches) y en rojo (peatones)

digitalWrite(pedRojo, HIGH);
digitalWrite(pedVerd, LOW);
digitalWrite(carRojo, LOW);
digitalWrite(carAmar, LOW);
digitalWrite(carVerd, HIGH);
}

void loop() {

int estado = digitalRead(boton);
botPress = millis();
// comprueba si el botón ha sido presionado

if (estado == HIGH && botPress > 1000 ) {
}
// Llama a la función para cambiar las luces
pedestriaBoton();

}
void pedestriaBoton(){

digitalWrite(carVerd, HIGH); // enciende el verde
delay(4000);
digitalWrite(carVerd, LOW); // apaga el verde
digitalWrite(carAmar, HIGH); // enciende el amrillo

delay(4000); // espera 4 segundos

digitalWrite(carAmar, LOW); // apaga el amarillo
digitalWrite(carRojo, HIGH); // enciende el rojo

delay(2000); // espera 1 segundo, por seguridad

digitalWrite(pedRojo, LOW); // apagar el rojo de los peatones
digitalWrite(pedVerd, HIGH); // encender el verde de los peatones
delay(5000); // esperar un intervalo de tiempo predefinido (variable = 5 seg)

{
digitalWrite(pedVerd, HIGH);
delay(250);
digitalWrite(pedVerd, LOW);
delay(250);
}
digitalWrite(pedRojo, HIGH);
delay(250);

digitalWrite(carRojo, LOW); // apaga el rojo
// registra el tiempo desde el último cambio en el semáforo
botPress = millis();
// luego regresa al bucle principal del programa
}

Semaforo (sin terminar).ino (1.9 KB)

Moderador
Por favor edita tu post usando etiquetas de código.
Normas del foro

Cuando edites responderé.