SEMÁFORO CON SEÑAL ACÚSTICA

El objetivo de esta práctica es emular la iluminación de un semáforo para vehículos que además emitirá un sonido cuando el tráfico esté detenido, dando paso a los peatones.
  1. ¿Qué es un led?
  2. Circuito: Cómo realizar el circuito
  3. Programación con Mblock
  4. Programación con Arduino IDE

1.  ¿Qué es un diodo led?

En prácticas anteriores os explicamos qué es un diodo led. Puedes leerlo en: Prácticas con Arduino: Luz intermitente

2. 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 leds y el zumbador a los siguientes pines de la placa Arduino:

  • 12 – Led rojo
  • 9  – Led amarillo
  • 6  – Led verde
  • 11 – Zumbador

¡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

3. 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. El primer bloque que necesitamos es un evento (pulsa en el círculo naranja para ver los eventos disponibles) , en este caso utilizaremos el evento «cuando clic en bandera verde«.

Utilizamos un bucle infinito con el bloque «para siempre» que localizarás en la sección naranja control. Así nuestro programa se ejecutará continuamente

Bucle infinito 

 

Bucle infinito

La secuencia de iluminación será:

  • Encender el led verde durante 3 segundos
  • Apagar el led verde y encender el led amarillo durante 1 segundo
  • Apagar el led amarillo y encender el led rojo
  • Emitir un sonido intermitente durante 3 segundos
  • Apagar el led rojo

Dentro del bucle, empezamos encendiendo el led verde.

A continuación apagamos el led verde y encendemos el amarillo.

El siguiente paso es apagar el led amarillo y encender el led rojo. Añadimos un bucle para generar el sonido intermitente con el zumbador. El último paso será apagar el led rojo y volver a empezar.

Pulsa la bandera verde y comprueba el resultado.

4. Programación con Arduino IDE

Vamos a programar con líneas de código. El objetivo consiste en iluminar los leds siguiendo la secuencia de un semáforo.

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!.

Los programas en Arduino IDE constan de dos secciones: setup y loop.

En setup vamos a configurar los pines de la placa que vamos a utilizar.

pinMode(12, OUTPUT); En el pin 12 conectamos un dispositivo de salida: el LED rojo
pinMode(9, OUTPUT); En el pin 9 conectamos un dispositivo de salida: el LED amarillo
pinMode(6, OUTPUT); En el pin 6 conectamos un dispositivo de salida: el LED verde
pinMode(11, OUTPUT); En el pin 11 conectamos un dispositivo de salida: el zumbador
Configuración de pines

En loop vamos a introducir el código que se va a ejecutar continuamente. Utilizando la instrucción digitalWrite encenderemos y apagaremos los leds para conseguir la secuencia de un semáforo. Además mientras que el led rojo esté encendido, se ejecutará un bucle encargado de emitir un sonido intermitente. Podemos utilizar variables que identifiquen los pines de los leds y del zumbador para facilitar el seguimiento del código escrito.

int rojo=12;
int amarillo=9;
int verde=6;
int zumbador=11; void setup(){ pinMode(rojo, OUTPUT); // led rojo - pin de salida pinMode(verde, OUTPUT); // led verde - pin de salida pinMode(amarillo, OUTPUT); // led amarillo - pin de salida
pinMode(zumbador, OUTPUT); // zumbador - pin de salida } void loop() { // bucle infinito digitalWrite(verde, HIGH); // se enciende el led verde delay(3000); // pausa 3 segundos
digitalWrite(verde, LOW); // se apaga el led verde digitalWrite(amarillo, HIGH); // se enciende el led amarillo delay(1000); // pausa 1 segundo
digitalWrite(amarillo, LOW); // se apaga el led amarillo digitalWrite(rojo, HIGH); // se enciende el led rojo
for (int i=0; i<10; i++){ // bucle que se repite 10 veces
digitalWrite(zumbador, HIGH); // sonido
delay(300); // pausa
digitalWrite(zumbador, LOW); // silencio
delay(300); // pausa
}

digitalWrite(rojo, LOW); // se apaga el led rojo }

Pulsa en el icono subir, y comprueba el resultado.