Conectamos un zumbador y haremos que suene de forma intermitente
- ¿Qué es un led?
- Circuito: Cómo conectar los leds a Arduino
- 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 conectar los leds a Arduino
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
- 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 a los siguientes pines de la placa Arduino:
- 12 – Led rojo
- 9 – Led amarillo
- 6 – 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
3. Programación con mBlock
El objetivo de este programa es muy sencillo: conseguir que los leds emulen la secuencia de un semáforo.
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 durante s 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.
El último paso será apagar el led rojo y volver a empezar.
Pulsa la bandera verde y comprueba que los leds emulan la secuencia de un semáforo. ¡Objetivo conseguido!
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 |
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. Podemos utilizar variables que identifiquen los pines de los leds para facilitar el seguimiento del código escrito.
int rojo=12;
int amarillo=9;
int verde=6;
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
}
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
delay(3000); // pausa 3 segundos
digitalWrite(rojo, LOW); // se apaga el led rojo
}
Pulsa en el icono subir, y comprueba el resultado.