- ¿Qué es un led?
- Circuito: Cómo realizar el circuito
- Programación con Mblock
- 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:
- 1 Arduino UNO LOG 8431
- 1 Cable USB LOG 7509
- 1 Board LOG 886
- 1 Led Rojo LOG 724
- 1 Led Amarillo LOG 723
- 1 Led Verde LOG 722
- 3 Resistencias de 222 ohmios (rojo – rojo – marrón) LOG 748 220
- 1 Zumbador activo LOG 714
- 4 Latiguillos board macho – macho LOG 7519
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
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 |
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.