Función for()
¿Qué es el ciclo FOR?
Básicamente es una estructura de control que sirve para repetir ciertas instrucciones un número determinado de veces. Las instrucciones que se repiten son las que tú decidas, y el número de veces que se repiten también lo determinas tú.
Antes de continuar con su sintaxis, quiero que sepas que además del ciclo for también hay dos tipos de bucles más, el bucle while y el bucle do while. Veremos estos dos tipos de estructuras iterativas en otro capítulo más adelante.
Sintaxis del bucle FOR en Arduino
Como puedes ver más abajo, su sintaxis no es muy complicada. Lo primero que tienes que escribir es la palabra reservada «for» para indicar que empieza el bucle. Dentro de los paréntesis hay que escribir tres elementos.
El primero de ellos es la expresión de inicio. Básicamente es una variable de tipo entero que guarda cierto valor. Ya veremos que valor más adelante. El segundo elemento es una condición. Esta condición indica cuando termina el bucle, es decir, cuando terminan de ejecutarse las instrucciones que escribas dentro.
El último elemento es un incremento o decremento de la expresión de inicio con el que aumentaremos o disminuiremos su valor cada vez que se ejecuten todas las instrucciones que hay dentro del bucle. Lo último que tienes que escribir dentro del ciclo son las instrucciones que quieres que se repitan.
Ejemplo con el bucle FOR en Arduino - Hacer parpadear varios LEDs
El esquema eléctrico es muy sencillo, simplemente tienes que conectar 3 LEDs como vimos en la práctica 1. De todas formas te dejo la imagen del circuito más abajo por si no te acuerdas de como conectarlos.
Código sin utilizar el bucle
Primero voy a explicarte como obtener el mismo resultado, es decir, hacer parpadear los 3 LEDs, uno detrás de otro, sin utilizar la estructura iterativa. Para empezar tienes que declarar 3 variables constantes de tipo entero para guardar los números de los pines a los que tienes conectados los LEDs. En nuestro caso son el 10, el 11 y el 12.
Después en la función «void setup()» lo único que es necesario inicializar son los 3 pines, que los tenemos que configurar como salida para poder encender los LEDs. Para ello utiliza la función «pinMode()» que ya hemos visto en los capítulos anteriores.
Por último, en la función «void loop()» simplemente tienes que encender y apagar cada LED con la función «digitalWrite()». De esta manera, conseguimos hacer parpadear primero el LED del pin 10, después el del 11 y finalmente el del 12, aunque tu si quieres puedes cambiar el orden.
Código utilizando el ciclo FOR
Como puedes ver, tanto la creación de las variables como la función «void setup()» son exactamente iguales. Lo único que cambia es el contenido de la función «void loop()», donde hemos eliminado las instrucciones que habían antes y hemos añadido el bucle for.
Vamos a ver como funciona. El valor inicial de la expresión de inicio, que recuerda que es una variable de tipo entero, es 10. La condición es que el valor de la expresión de inicio tiene que ser menor que trece (i<13). Por lo tanto, mientras el valor de la «i», que es la expresión de inicio, sea menor que trece, el bucle no terminará.
Con «i++» le sumamos un 1 al valor de la «i» cada vez que se ejecuten todas las instrucciones que hay dentro del bucle. La variable «i» guardará los valores 10, 11 y 12 antes de que el bucle termine. Dentro del bucle simplemente utilizamos las funciones «digitalWrite()» y «delay()» para hacer parpadear cada LED.
Cosas a tener en cuenta
- El valor inicial y el nombre de la expresión de inicio puede ser el número entero que tu quieras, incluidos los números negativos.
- La condición también puede ser cualquiera, aunque se suelen utilizar las de menor, mayor, menor o igual que y mayor o igual que (<, >, <=, >=).
- Para disminuir en 1 el valor de la expresión de inicio cada vez que se ejecutan todas las instrucciones que hay dentro del bucle se utiliza «i–«.
- El incremento o decremento del valor de la expresión de inicio no tiene por qué ser siempre de uno en uno. También puede ser de dos en dos, de tres en tres, etc. Para ello se utiliza la siguientes sintaxis: «i = i + x» o «i = i – x», siendo la «i» la expresión de inicio y la «x» el valor que quieres que se le sume o reste.
- A continuación tienes un ejemplo de como hacer parpadear los 3 LEDs en sentido inverso, es decir, del 12 al 10, utilizando el bucle FOR.
La práctica que debéis realizar vosotros es la secuencia del encendido de 5 leds imitando las luces del coche fantástico.
Sube el código al aula virtual explicando las líneas del código.
No hay comentarios:
Publicar un comentario