CRUCE DE SEMÁFOROS

El objetivo de esta práctica es emular la iluminación de 2 semáforos para regular el tráfico de un cruce de calles.

1. Circuito: Cómo realizar el circuito

Para realizar este circuito necesitas los siguientes materiales:

Para trabajar en una protoboard, es importante conocer las conexiones que existen en ella. Puedes utilizar el siguiente enlace para leer información detallada sobre las conexiones de la protoboard.

Conectamos los componentes a los siguientes pines de la placa Arduino:

  • 12 – Led rojo
  • 11  – Led amarillo
  • 10  – Led verde
  • 9   – Led rojo
  • 6   – Led amarillo
  • 5   – Led verde

¡Ya sólo nos queda programar!

Para programar la placa Arduino puedes utilizar diferentes lenguajes. Nosotros nos vamos a centrar en dos opciones

  • MBlock – programación basada en bloques
  • Arduino IDE – programación basada en líneas de código

2. Programación con mBlock

El objetivo de este programa es muy sencillo: conseguir que los leds emulen la secuencia de un semáforo y emita un sonido cuando el tráfico esté detenido.

El primer paso es configurar la tarjeta, sigue los pasos que te indicamos en «Mblock: primeros pasos«

Una vez configurada la tarjeta comenzamos con la programación.

Os recomendamos el uso de variables para facilitar la identificación de pines.

Utilizamos dos bloques evento «cuando clic en bandera». De cada bloque colgará el conjunto de bloques encargado de iluminar cada semáforo.

Guardamos en las variables el número del pin al que se conectó cada led. A continuación, dentro de un bucle «por siempre» introducimos los bloques que iluminarán el primer semáforo en secuencia: verde – amarillo – rojo.

A continuación en un segundo evento «al presionar bandera» introducimos la secuencia del segundo semáforo «rojo – verde – amarillo»

Bucle infinito

Sólo falta revisar las pausas para que los semáforos estén correctamente coordinados.

Pulsa la bandera verde y comprueba el resultado.

3. Programación con Arduino IDE

Vamos a realizar el mismo programa, utilizando líneas de código con Arduino IDE

El primer paso es configurar la tarjeta, sigue los pasos que te indicamos en «Arduino IDE: primeros pasos«.

Una vez configurada la tarjeta comenzamos con la programación. Recuerda que al trabajar con código debemos respetar la sintaxis: Cuidado con las letras mayúsculas y minúsculas y con los signos de puntuación. ¡Son importantes!.

int 1_rojo=12;
int 1_amarillo=11;
int 1_verde=10;
int 2_rojo=9;
int 2_amarillo=6;
int 2_verde=5;

void setup(){
    pinMode(1_rojo, OUTPUT);          // led rojo - pin de salida
    pinMode(1_verde, OUTPUT);         // led verde - pin de salida 
    pinMode(1_amarillo, OUTPUT);      // led amarillo - pin de salida 

    pinMode(2_rojo, OUTPUT);          // led rojo - pin de salida
    pinMode(2_verde, OUTPUT);         // led verde - pin de salida 
    pinMode(2_amarillo, OUTPUT);      // led amarillo - pin de salida 

} 
  
void loop() { // bucle infinito 

    digitalWrite(1_verde, HIGH);          // verde - rojo
    digitalWrite(2_rojo, HIGH);          
    delay(2000);

    digitalWrite(1_verde, LOW);           // amarillo - rojo
    digitalWrite(1_amarillo, HIGH);       
    delay(1000);                        
    digitalWrite(1_amarillo, LOW);        // rojo - verde 
    digitalWrite(1_rojo, HIGH);           
    digitalWrite(2_rojo, LOW);           
    digitalWrite(2_verde, HIGH);          
    delay(2000);

    digitalWrite(2_verde, LOW);           // rojo - amarillo
    digitalWrite(2_amarillo, HIGH);         
    delay(1000);

    digitalWrite(2_amarillo, LOW);           
    digitalWrite(1_rojo, LOW);            
}

Pulsa en el icono subir, y comprueba el resultado.