// Variables de asignación de pines.
int rojo=11;
int amarillo=12;
int verde=13;
int pulsador=10;
void semaforoRojo();
void setup()
{
// Configuro pines como salida
pinMode(rojo, OUTPUT);
pinMode(amarillo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(pulsador, INPUT);
// Inicio estado de los LED, rojo encendido, verde y amarillo apagado.
digitalWrite(rojo, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(verde, LOW);
}
void loop()
{
// Código para cambiar de el LED encendido
digitalWrite(verde, HIGH);
semaforoRojo();
}
// Funciones
void semaforoRojo() //Esta función cambia el semaforo a rojo pasando por ambar
{
if(digitalRead(pulsador)==HIGH)
{
delay(1000);
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH);
delay(1000);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, HIGH);
delay(5000);
digitalWrite(rojo, LOW);
}
}