/*
---------------------------------------------
Cruce de semaforos Solución
---------------------------------------------
Se trata de un cruce de semáforos controlado por arduino, para ello utilizaremos en el primer semáforo los
pines 3 (led rojo), 4 (led ambar), 5 (led verde), en el segundo semáforo utilizaremos los pines 6 (led rojo),
(led ambar) y 8 (led verde). La secuencia de funcionamiento debe ser : rojo 1 – verde 2 durante 3 segundos,
rojo 1 – ambar 2 durante 500 ms, verde 1 – rojo 2 durante 3 segundos, ambar 1 - , rojo 2 durante 500 ms.
Objetivos:
Familiarizarse con el entorno de programación.
Aprender a declarar variables tipo lista de valores.
*/
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
int leds[]={3,4,5,6,7,8}; // Declaro variables tipo lista de valores
int n; //Declaro la variable n,
int tiempo1 = 6000; //Declaro una variable como entero y de valor 3000
int tiempo2 = 2000; //Declaro una variable como entero y de valor 500
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
//Bucle for (inicialización; condición; incremento)
for(n=0;n<6;n++)// Bucle para obtener los valores del vector
//o indice
{
pinMode(leds[n],OUTPUT);// Configuración de los pines del
//3 al 8 como salidas
} // Fin de la funcción for
} // Fin de ela función setup
//------------------------------------
//Funcion ciclica
//------------------------------------
void loop() // Bucle principal del programa
{
digitalWrite(leds[0], HIGH);// Led Rojo semaforo 1 (pin 3)
digitalWrite(leds[5], HIGH);//Led Verde semaforo 2 (pin 8)
digitalWrite(leds[1], LOW);//Led ambar semaforo 1 (pin 4)
digitalWrite(leds[3], LOW);// Led Rojo semaforo 2 (pin 6)
delay (tiempo1);//Cuando transcurra el tiempo en ms de la variable
//digitalWrite (leds[0], HIGH);// Led Rojo semaforo 1 (pin 3)
digitalWrite(leds[4], HIGH);// Led Ambar semaforo 2 (pin 7)
digitalWrite(leds[5], LOW);//Led Verde semaforo 2 (pin 8)
delay (tiempo2);//Cuando transcurra el tiempo en ms de la variable
digitalWrite (leds[0], LOW);// Led Rojo semaforo 1 (pin 3)
digitalWrite(leds[2], HIGH);//Led Verde semaforo 1 (pin 5)
digitalWrite(leds[4], LOW);// Led Ambar semaforo 2 (pin 7)
digitalWrite(leds[3], HIGH);// Led Rojo semaforo 2 (pin 6)
delay (tiempo1);// Cuando transcurra el tiempo en ms de la variable
digitalWrite(leds[2], LOW);//Led Verde semaforo 1 (pin 5)
digitalWrite(leds[1], HIGH);//Led ambar semaforo 1 (pin 4)
delay (tiempo2);//Cuando transcurra el tiempo en ms de la variable
} // Fin de la función secuencial